linux/include/acpi
Lv Zheng 2af52c2bd2 ACPICA: Events: Introduce acpi_mask_gpe() to implement GPE masking mechanism
ACPICA commit 23a417ca406a527e7ae1710893e59a8b6db30e14

There is a facility in Linux, developers can control the enabling/disabling
of a GPE via /sys/firmware/acpi/interrupts/gpexx. This is mainly for
debugging purposes.

But many users expect to use this facility to implement quirks to mask a
specific GPE when there is a gap in Linux causing this GPE to flood. This
is not working correctly because currently this facility invokes
enabling/disabling counting based GPE driver APIs:
 acpi_enable_gpe()/acpi_disable_gpe()
and the GPE drivers can still affect the count to mess up the GPE
masking purposes.

However, most of the IRQ chip designs allow masking/unmasking IRQs via a
masking bit which is different from the enabled bit to achieve the same
purpose. But the GPE hardware doesn't contain such a feature, this brings
the trouble.

In this patch, we introduce a software mechanism to implement the GPE
masking feature, and acpi_mask_gpe() are provided to the OSPMs to
mask/unmask GPEs in the above mentioned situation instead of
acpi_enable_gpe()/acpi_disable_gpe(). ACPICA BZ 1102. Lv Zheng.

Link: https://github.com/acpica/acpica/commit/23a417ca
Link: https://bugs.acpica.org/show_bug.cgi?id=1102
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-08-13 03:09:33 +02:00
..
platform ACPICA: Divergence: Port declarators back to ACPICA 2016-08-13 03:09:32 +02:00
acbuffer.h
acconfig.h ACPICA: Simplify configuration for "Max Loops" system parameter 2016-08-13 03:09:32 +02:00
acexcep.h
acnames.h
acoutput.h ACPICA: Fix deconstification warnings (-Wcast-qual) with function traces. 2016-08-13 03:09:31 +02:00
acpi_bus.h device property: Add function to search for named child of device 2016-06-26 12:39:03 +01:00
acpi_drivers.h Revert "ACPI, PCI, IRQ: remove redundant code in acpi_irq_penalty_init()" 2016-07-02 01:38:34 +02:00
acpi_io.h treewide: replace obsolete _refok by __ref 2016-08-02 17:31:41 -04:00
acpi_lpat.h
acpi_numa.h ACPI / NUMA: move bad_srat() and srat_disabled() to drivers/acpi/numa.c 2016-05-30 14:27:08 +02:00
acpi.h
acpiosxf.h
acpixf.h ACPICA: Events: Introduce acpi_mask_gpe() to implement GPE masking mechanism 2016-08-13 03:09:33 +02:00
acrestyp.h ACPICA: ACPI 6.0, tools/iasl: Add support for new resource descriptors 2016-05-05 15:22:26 +02:00
actbl1.h
actbl2.h
actbl3.h ACPICA: ACPI 6.1: Support for new PCCT subtable 2016-05-05 15:22:26 +02:00
actbl.h
actypes.h ACPICA: Events: Introduce acpi_mask_gpe() to implement GPE masking mechanism 2016-08-13 03:09:33 +02:00
acuuid.h
apei.h
button.h
cppc_acpi.h mailbox: pcc: Add PCC request and free channel declarations 2016-06-25 02:53:37 +02:00
ghes.h
hed.h
pcc.h mailbox: pcc: Add PCC request and free channel declarations 2016-06-25 02:53:37 +02:00
pdc_intel.h
processor.h Merge branches 'acpi-processor', 'acpi-cppc', 'acpi-apei' and 'acpi-sleep' 2016-07-25 13:42:25 +02:00
reboot.h
video.h ACPI / video: Dummy acpi_video_register should return error code 2016-06-25 02:56:59 +02:00