* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: ACPI: Be in TS_POLLING state during mwait based C-state entry ACPI: Fix regression where _PPC is not read at boot even when ignore_ppc=0 acer-wmi: Respect current backlight level when loading
Unified · Split
| @@ -880,12 +880,14 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev, · 879 unmodified lines | ||
| 880 | 880 | return(acpi_idle_enter_c1(dev, state)); |
| 881 | 881 | |
| 882 | 882 | local_irq_disable(); |
| 883 | − current_thread_info()->status &= ~TS_POLLING; | |
| 884 | − /* | |
| 885 | − * TS_POLLING-cleared state must be visible before we test | |
| 886 | − * NEED_RESCHED: | |
| 887 | − */ | |
| 888 | − smp_mb(); | |
| 883 | + if (cx->entry_method != ACPI_CSTATE_FFH) { | |
| 884 | + current_thread_info()->status &= ~TS_POLLING; | |
| 885 | + /* | |
| 886 | + * TS_POLLING-cleared state must be visible before we test | |
| 887 | + * NEED_RESCHED: | |
| 888 | + */ | |
| 889 | + smp_mb(); | |
| 890 | + } | |
| 889 | 891 | |
| 890 | 892 | if (unlikely(need_resched())) { |
| 891 | 893 | current_thread_info()->status |= TS_POLLING; |
| @@ -965,12 +967,14 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev, · 73 unmodified lines | ||
| 965 | 967 | } |
| 966 | 968 | |
| 967 | 969 | local_irq_disable(); |
| 968 | − current_thread_info()->status &= ~TS_POLLING; | |
| 969 | − /* | |
| 970 | − * TS_POLLING-cleared state must be visible before we test | |
| 971 | − * NEED_RESCHED: | |
| 972 | − */ | |
| 973 | − smp_mb(); | |
| 970 | + if (cx->entry_method != ACPI_CSTATE_FFH) { | |
| 971 | + current_thread_info()->status &= ~TS_POLLING; | |
| 972 | + /* | |
| 973 | + * TS_POLLING-cleared state must be visible before we test | |
| 974 | + * NEED_RESCHED: | |
| 975 | + */ | |
| 976 | + smp_mb(); | |
| 977 | + } | |
| 974 | 978 | |
| 975 | 979 | if (unlikely(need_resched())) { |
| 976 | 980 | current_thread_info()->status |= TS_POLLING; |
| @@ -413,7 +413,11 @@ static int acpi_processor_get_performance_info(struct acpi_processor *pr) · 412 unmodified lines | ||
| 413 | 413 | if (result) |
| 414 | 414 | goto update_bios; |
| 415 | 415 | |
| 416 | − return 0; | |
| 416 | + /* We need to call _PPC once when cpufreq starts */ | |
| 417 | + if (ignore_ppc != 1) | |
| 418 | + result = acpi_processor_get_platform_limit(pr); | |
| 419 | + | |
| 420 | + return result; | |
| 417 | 421 | |
| 418 | 422 | /* |
| 419 | 423 | * Having _PPC but missing frequencies (_PSS, _PCT) is a very good hint that |
| @@ -934,7 +934,7 @@ static int __devinit acer_backlight_init(struct device *dev) · 933 unmodified lines | ||
| 934 | 934 | acer_backlight_device = bd; |
| 935 | 935 | |
| 936 | 936 | bd->props.power = FB_BLANK_UNBLANK; |
| 937 | − bd->props.brightness = max_brightness; | |
| 937 | + bd->props.brightness = read_brightness(bd); | |
| 938 | 938 | bd->props.max_brightness = max_brightness; |
| 939 | 939 | backlight_update_status(bd); |
| 940 | 940 | return 0; |