linux/drivers/acpi
Rafael J. Wysocki e8b6f97010 ACPICA: Introduce acpi_gpe_wakeup()
ACPICA uses reference counters to avoid disabling GPEs too early in
case they have been enabled for many times.  This is done separately
for runtime and for wakeup, but the wakeup GPE reference counter is
not really necessary, because GPEs are only enabled to wake up the
system at the hardware level by acpi_enter_sleep_state().  Thus it
only is necessary to set the corresponding bits in the wakeup enable
masks of these GPEs' registers right before the system enters a sleep
state.  Moreover, the GPE wakeup enable bits can only be set when the
target sleep state of the system is known and they need to be cleared
immediately after wakeup regardless of how many wakeup devices are
associated with a given GPE.

On the basis of the above observations, introduce function
acpi_gpe_wakeup() to be used for setting or clearing the enable bit
corresponding to a given GPE in its enable register's enable_for_wake
mask.  Modify the ACPI suspend and wakeup code the use
acpi_gpe_wakeup() instead of acpi_{enable|disable}_gpe() to set
and clear GPE enable bits in their registers' enable_for_wake masks
during system transitions to a sleep state and back to the working
state, respectively.  [This will allow us to drop the third
argument of acpi_{enable|disable}_gpe() and simplify the GPE
handling code.]

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2010-07-06 22:34:26 -04:00
..
acpica ACPICA: Introduce acpi_gpe_wakeup() 2010-07-06 22:34:26 -04:00
apei correct console log level when ERST ACPI table is not found 2010-07-01 18:40:29 -07:00
Kconfig ACPI Hardware Error Device (PNP0C33) support 2010-05-19 22:40:24 -04:00
Makefile ACPI Hardware Error Device (PNP0C33) support 2010-05-19 22:40:24 -04:00
ac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
acpi_memhotplug.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
acpi_pad.c ACPI: acpi_pad: Don't needlessly mark LAPIC unstable 2010-06-04 03:48:10 -04:00
atomicio.c acpi: update gfp/slab.h includes 2010-06-28 10:19:19 +10:00
battery.c Merge branches 'battery', 'bugzilla-14667', 'bugzilla-15096', 'bugzilla-15480', 'bugzilla-15521', 'bugzilla-15605', 'gpe-reference-counters', 'misc', 'pxm-fix' and 'video-random-key' into release 2010-04-06 17:06:22 -04:00
blacklist.c ACPI: Disable Vista compatibility for Sony VGN-NS50B_L 2010-06-10 11:31:03 -04:00
bus.c drivers: acpi: don't use own implementation of hex_to_bin() 2010-05-25 08:07:06 -07:00
button.c ACPI / PM: Do not enable GPEs for system wakeup in advance 2010-06-17 12:18:09 -04:00
cm_sbs.c ACPI: Move definition of PREFIX from acpi_bus.h to internal..h 2009-08-28 19:57:27 -04:00
container.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
debug.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
dock.c Merge branches 'battery', 'bugzilla-14667', 'bugzilla-15096', 'bugzilla-15480', 'bugzilla-15521', 'bugzilla-15605', 'gpe-reference-counters', 'misc', 'pxm-fix' and 'video-random-key' into release 2010-04-06 17:06:22 -04:00
ec.c Merge branches 'bugzilla-14668' and 'misc-2.6.35' into release 2010-06-01 22:53:36 -04:00
event.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
fan.c ACPI: fan: fix unbalanced code block 2010-06-10 11:24:51 -04:00
glue.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
hed.c ACPI Hardware Error Device (PNP0C33) support 2010-05-19 22:40:24 -04:00
internal.h ACPI / EC / PM: Fix names of functions that block/unblock EC transactions 2010-05-28 23:36:06 -04:00
numa.c ACPI: NUMA: map pxms to low node ids 2010-04-04 00:50:01 -04:00
osl.c hwmon: (asus_atk0110) Don't load if ACPI resources aren't enforced 2010-05-27 19:58:37 +02:00
pci_bind.c PCI / ACPI / PM: Platform support for PCI PME wake-up 2010-02-22 16:21:02 -08:00
pci_irq.c x86, acpi/irq: pci device dev->irq is an isa irq not a gsi 2010-05-04 13:34:30 -07:00
pci_link.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pci_root.c Merge branch 'bjorn-pci-root-v4-2.6.35' into release 2010-05-28 16:17:16 -04:00
pci_slot.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
power.c Merge branch 'master' into for-next 2010-04-23 02:08:44 +02:00
power_meter.c power_meter: acpi_device_class "power_meter_resource" too long 2010-05-06 02:38:24 -04:00
proc.c Fix misspellings of "separate" in strings. 2010-02-04 11:55:46 +01:00
processor_core.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
processor_driver.c ACPI: Do not try to set up acpi processor stuff on cores exceeding maxcpus= 2010-06-09 18:04:12 -04:00
processor_idle.c ACPI: Eliminate us to pm ticks conversion in common path 2010-06-04 15:22:28 -04:00
processor_perflib.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
processor_thermal.c ACPI: Remove unnecessary cast. 2010-01-15 23:06:44 -05:00
processor_throttling.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
reboot.c ACPI: reboot.c: use new acpi_reset interface 2008-12-31 01:15:00 -05:00
sbs.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sbshc.c sbshc: acpi_device_class "smbus_host_controller" too long 2010-05-06 02:38:25 -04:00
sbshc.h ACPI: SBS: Ignore alarms coming from unknown devices 2007-12-14 15:14:06 -05:00
scan.c ACPICA: Minimize the differences between linux GPE code and ACPICA code base 2010-04-20 10:43:16 -04:00
sleep.c ACPICA: Introduce acpi_gpe_wakeup() 2010-07-06 22:34:26 -04:00
sleep.h drivers/acpi/sleep.h: Checkpatch cleanup 2010-05-28 15:31:33 -04:00
system.c Merge branch 'gpe-regression-fixes' into release 2010-06-12 00:51:49 -04:00
tables.c ACPI: delete the "acpi=ht" boot option 2010-03-14 20:58:38 -04:00
thermal.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
utils.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
video.c Merge branch 'misc-2.6.35' into release 2010-05-28 16:18:20 -04:00
video_detect.c ACPI: video: fix acpi_backlight=video 2010-05-20 01:31:00 -04:00
wakeup.c ACPICA: Introduce acpi_gpe_wakeup() 2010-07-06 22:34:26 -04:00