diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-02-23 21:15:05 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-02-23 21:15:05 -0500 |
commit | be64c970f601d5bb439b6cc88ea2bd208b3422a0 (patch) | |
tree | 8bf588711019bfef8fe111e2ac6283910ffe725e | |
parent | 34e3f91b4e66e52b3e189b2f778bd37d68963ca8 (diff) | |
parent | b2cb9dcb98cc7a3210e9138a05e0ae1863523a61 (diff) |
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6
* '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
-rw-r--r-- | drivers/acpi/processor_idle.c | 28 | ||||
-rw-r--r-- | drivers/acpi/processor_perflib.c | 6 | ||||
-rw-r--r-- | drivers/platform/x86/acer-wmi.c | 2 |
3 files changed, 22 insertions, 14 deletions
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index e88e8ae04fdb..cc978a8c00b7 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c | |||
@@ -880,12 +880,14 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev, | |||
880 | return(acpi_idle_enter_c1(dev, state)); | 880 | return(acpi_idle_enter_c1(dev, state)); |
881 | 881 | ||
882 | local_irq_disable(); | 882 | local_irq_disable(); |
883 | current_thread_info()->status &= ~TS_POLLING; | 883 | if (cx->entry_method != ACPI_CSTATE_FFH) { |
884 | /* | 884 | current_thread_info()->status &= ~TS_POLLING; |
885 | * TS_POLLING-cleared state must be visible before we test | 885 | /* |
886 | * NEED_RESCHED: | 886 | * TS_POLLING-cleared state must be visible before we test |
887 | */ | 887 | * NEED_RESCHED: |
888 | smp_mb(); | 888 | */ |
889 | smp_mb(); | ||
890 | } | ||
889 | 891 | ||
890 | if (unlikely(need_resched())) { | 892 | if (unlikely(need_resched())) { |
891 | current_thread_info()->status |= TS_POLLING; | 893 | current_thread_info()->status |= TS_POLLING; |
@@ -965,12 +967,14 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev, | |||
965 | } | 967 | } |
966 | 968 | ||
967 | local_irq_disable(); | 969 | local_irq_disable(); |
968 | current_thread_info()->status &= ~TS_POLLING; | 970 | if (cx->entry_method != ACPI_CSTATE_FFH) { |
969 | /* | 971 | current_thread_info()->status &= ~TS_POLLING; |
970 | * TS_POLLING-cleared state must be visible before we test | 972 | /* |
971 | * NEED_RESCHED: | 973 | * TS_POLLING-cleared state must be visible before we test |
972 | */ | 974 | * NEED_RESCHED: |
973 | smp_mb(); | 975 | */ |
976 | smp_mb(); | ||
977 | } | ||
974 | 978 | ||
975 | if (unlikely(need_resched())) { | 979 | if (unlikely(need_resched())) { |
976 | current_thread_info()->status |= TS_POLLING; | 980 | current_thread_info()->status |= TS_POLLING; |
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c index 2cabadcc4d8c..a959f6a07508 100644 --- a/drivers/acpi/processor_perflib.c +++ b/drivers/acpi/processor_perflib.c | |||
@@ -413,7 +413,11 @@ static int acpi_processor_get_performance_info(struct acpi_processor *pr) | |||
413 | if (result) | 413 | if (result) |
414 | goto update_bios; | 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 | * Having _PPC but missing frequencies (_PSS, _PCT) is a very good hint that | 423 | * Having _PPC but missing frequencies (_PSS, _PCT) is a very good hint that |
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index 07d14dfdf0b4..226b3e93498c 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c | |||
@@ -934,7 +934,7 @@ static int __devinit acer_backlight_init(struct device *dev) | |||
934 | acer_backlight_device = bd; | 934 | acer_backlight_device = bd; |
935 | 935 | ||
936 | bd->props.power = FB_BLANK_UNBLANK; | 936 | bd->props.power = FB_BLANK_UNBLANK; |
937 | bd->props.brightness = max_brightness; | 937 | bd->props.brightness = read_brightness(bd); |
938 | bd->props.max_brightness = max_brightness; | 938 | bd->props.max_brightness = max_brightness; |
939 | backlight_update_status(bd); | 939 | backlight_update_status(bd); |
940 | return 0; | 940 | return 0; |