linux-sg2042/drivers/acpi/acpica
Rafael J. Wysocki fd247447c1 ACPI / ACPICA: Fix low-level GPE manipulation code
ACPICA uses acpi_ev_enable_gpe() for enabling GPEs at the low level,
which is incorrect, because this function only enables the GPE if the
corresponding bit in its enable register's enable_for_run mask is set.
This causes acpi_set_gpe() to work incorrectly if used for enabling
GPEs that were not previously enabled with acpi_enable_gpe().  As a
result, among other things, wakeup-only GPEs are never enabled by
acpi_enable_wakeup_device(), so the devices that use them are unable
to wake up the system.

To fix this issue remove acpi_ev_enable_gpe() and its counterpart
acpi_ev_disable_gpe() and replace acpi_hw_low_disable_gpe() with
acpi_hw_low_set_gpe() that will be used instead to manipulate GPE
enable bits at the low level.  Make the users of acpi_ev_enable_gpe()
and acpi_ev_disable_gpe() call acpi_hw_low_set_gpe() instead and
make sure that GPE enable masks are only updated by acpi_enable_gpe()
and acpi_disable_gpe() when GPE reference counters change from 0
to 1 and from 1 to 0, respectively.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
2010-06-12 00:44:37 -04:00
..
Makefile ACPICA: Enhance configuration for output of AML Debug Object 2010-04-20 10:42:49 -04:00
accommon.h ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
acconfig.h ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
acdebug.h ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
acdispat.h ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
acevents.h ACPI / ACPICA: Fix low-level GPE manipulation code 2010-06-12 00:44:37 -04:00
acglobal.h ACPICA: Update DSDT copy/detection. 2010-04-20 10:43:16 -04:00
achware.h ACPI / ACPICA: Fix low-level GPE manipulation code 2010-06-12 00:44:37 -04:00
acinterp.h ACPICA: Enhance configuration for output of AML Debug Object 2010-04-20 10:42:49 -04:00
aclocal.h ACPICA: Minimize the differences between linux GPE code and ACPICA code base 2010-04-20 10:43:16 -04:00
acmacros.h ACPICA: Remove obsolete ACPI_INTEGER (acpi_integer) type 2010-01-22 12:30:06 -05:00
acnamesp.h ACPICA: Predefined name repair: fix NULL package elements 2010-01-22 12:30:06 -05:00
acobject.h Merge branch 'acpica' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2010-03-01 10:36:22 -08:00
acopcode.h ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
acparser.h ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
acpredef.h ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
acresrc.h ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
acstruct.h ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
actables.h ACPICA: Update DSDT copy/detection. 2010-04-20 10:43:16 -04:00
acutils.h ACPICA: Remove obsolete ACPI_INTEGER (acpi_integer) type 2010-01-22 12:30:06 -05:00
amlcode.h ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
amlresrc.h ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
dsfield.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
dsinit.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
dsmethod.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
dsmthdat.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
dsobject.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
dsopcode.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
dsutils.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
dswexec.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
dswload.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
dswscope.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
dswstate.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
evevent.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
evgpe.c ACPI / ACPICA: Fix low-level GPE manipulation code 2010-06-12 00:44:37 -04:00
evgpeblk.c ACPICA: Minimize the differences between linux GPE code and ACPICA code base 2010-04-20 10:43:16 -04:00
evmisc.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
evregion.c ACPICA: Remove obsolete ACPI_INTEGER (acpi_integer) type 2010-01-22 12:30:06 -05:00
evrgnini.c ACPICA: Remove obsolete ACPI_INTEGER (acpi_integer) type 2010-01-22 12:30:06 -05:00
evsci.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
evxface.c ACPI / ACPICA: Do not attempt to disable GPE when installing handler 2010-06-11 18:40:43 -04:00
evxfevnt.c ACPI / ACPICA: Fix low-level GPE manipulation code 2010-06-12 00:44:37 -04:00
evxfregn.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
exconfig.c ACPICA: Remove obsolete ACPI_INTEGER (acpi_integer) type 2010-01-22 12:30:06 -05:00
exconvrt.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
excreate.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
exdebug.c ACPICA: Enhance configuration for output of AML Debug Object 2010-04-20 10:42:49 -04:00
exdump.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
exfield.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
exfldio.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
exmisc.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
exmutex.c ACPICA: Update comments/headers, no functional change 2010-04-20 10:43:15 -04:00
exnames.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
exoparg1.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
exoparg2.c ACPICA: Minimize the differences between linux GPE code and ACPICA code base 2010-04-20 10:43:16 -04:00
exoparg3.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
exoparg6.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
exprep.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
exregion.c ACPICA: Add write support for DataTable operation regions 2010-04-20 10:43:15 -04:00
exresnte.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
exresolv.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
exresop.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
exstore.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
exstoren.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
exstorob.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
exsystem.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
exutils.c ACPICA: Remove obsolete ACPI_INTEGER (acpi_integer) type 2010-01-22 12:30:06 -05:00
hwacpi.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
hwgpe.c ACPI / ACPICA: Fix low-level GPE manipulation code 2010-06-12 00:44:37 -04:00
hwregs.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
hwsleep.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
hwtimer.c ACPICA: Remove obsolete ACPI_INTEGER (acpi_integer) type 2010-01-22 12:30:06 -05:00
hwvalid.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
hwxface.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
nsaccess.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
nsalloc.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
nsdump.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
nsdumpdv.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
nseval.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
nsinit.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
nsload.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
nsnames.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
nsobject.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
nsparse.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
nspredef.c ACPICA: Predefined name repair: fix NULL package elements 2010-01-22 12:30:06 -05:00
nsrepair.c ACPICA: Predefined name repair: fix NULL package elements 2010-01-22 12:30:06 -05:00
nsrepair2.c ACPICA: Predefined name repair: fix NULL package elements 2010-01-22 12:30:06 -05:00
nssearch.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
nsutils.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
nswalk.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
nsxfeval.c ACPICA: AcpiGetDevices: Eliminate unnecessary _STA calls 2010-01-22 12:30:05 -05:00
nsxfname.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
nsxfobj.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
psargs.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
psloop.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
psopcode.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
psparse.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
psscope.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
pstree.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
psutils.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
pswalk.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
psxface.c ACPICA: Add subsystem option to force copy of DSDT to local memory 2010-04-20 10:43:16 -04:00
rsaddr.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
rscalc.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
rscreate.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
rsdump.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
rsinfo.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
rsio.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
rsirq.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
rslist.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
rsmemory.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
rsmisc.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
rsutils.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
rsxface.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
tbfadt.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
tbfind.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
tbinstal.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
tbutils.c ACPI: add boot option acpi=copy_dsdt to fix corrupt DSDT 2010-04-20 10:43:16 -04:00
tbxface.c ACPICA: Update DSDT copy/detection. 2010-04-20 10:43:16 -04:00
tbxfroot.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
utalloc.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
utcopy.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
utdebug.c ACPICA: Remove obsolete ACPI_INTEGER (acpi_integer) type 2010-01-22 12:30:06 -05:00
utdelete.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
uteval.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
utglobal.c ACPICA: Update DSDT copy/detection. 2010-04-20 10:43:16 -04:00
utids.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
utinit.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
utlock.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
utmath.c ACPICA: Remove obsolete ACPI_INTEGER (acpi_integer) type 2010-01-22 12:30:06 -05:00
utmisc.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
utmutex.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
utobject.c ACPICA: Standardize integer output for ACPICA warnings/errors 2010-04-20 10:42:52 -04:00
utresrc.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
utstate.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00
utxface.c ACPICA: Update all ACPICA copyrights and signons to 2010 2010-01-22 12:30:05 -05:00