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
This commit is contained in:
Linus Torvalds 2010-02-23 18:15:05 -08:00
commit be64c970f6
3 changed files with 22 additions and 14 deletions

View File

@ -880,12 +880,14 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev,
return(acpi_idle_enter_c1(dev, state)); return(acpi_idle_enter_c1(dev, state));
local_irq_disable(); local_irq_disable();
current_thread_info()->status &= ~TS_POLLING; if (cx->entry_method != ACPI_CSTATE_FFH) {
/* current_thread_info()->status &= ~TS_POLLING;
* TS_POLLING-cleared state must be visible before we test /*
* NEED_RESCHED: * TS_POLLING-cleared state must be visible before we test
*/ * NEED_RESCHED:
smp_mb(); */
smp_mb();
}
if (unlikely(need_resched())) { if (unlikely(need_resched())) {
current_thread_info()->status |= TS_POLLING; current_thread_info()->status |= TS_POLLING;
@ -965,12 +967,14 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
} }
local_irq_disable(); local_irq_disable();
current_thread_info()->status &= ~TS_POLLING; if (cx->entry_method != ACPI_CSTATE_FFH) {
/* current_thread_info()->status &= ~TS_POLLING;
* TS_POLLING-cleared state must be visible before we test /*
* NEED_RESCHED: * TS_POLLING-cleared state must be visible before we test
*/ * NEED_RESCHED:
smp_mb(); */
smp_mb();
}
if (unlikely(need_resched())) { if (unlikely(need_resched())) {
current_thread_info()->status |= TS_POLLING; current_thread_info()->status |= TS_POLLING;

View File

@ -413,7 +413,11 @@ static int acpi_processor_get_performance_info(struct acpi_processor *pr)
if (result) if (result)
goto update_bios; goto update_bios;
return 0; /* We need to call _PPC once when cpufreq starts */
if (ignore_ppc != 1)
result = acpi_processor_get_platform_limit(pr);
return result;
/* /*
* Having _PPC but missing frequencies (_PSS, _PCT) is a very good hint that * Having _PPC but missing frequencies (_PSS, _PCT) is a very good hint that

View File

@ -934,7 +934,7 @@ static int __devinit acer_backlight_init(struct device *dev)
acer_backlight_device = bd; acer_backlight_device = bd;
bd->props.power = FB_BLANK_UNBLANK; bd->props.power = FB_BLANK_UNBLANK;
bd->props.brightness = max_brightness; bd->props.brightness = read_brightness(bd);
bd->props.max_brightness = max_brightness; bd->props.max_brightness = max_brightness;
backlight_update_status(bd); backlight_update_status(bd);
return 0; return 0;