summaryrefslogtreecommitdiff
path: root/include/acpi
diff options
context:
space:
mode:
authorLv Zheng <lv.zheng@intel.com>2013-09-23 05:52:05 +0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-09-24 03:46:24 +0400
commita2fd4b4b4e2884405c54a91514b0fad3853aea01 (patch)
tree8cc50104af68c2115dc5d0829941d304c156c71d /include/acpi
parentd53d820741806a5488d0f002b61765deb58371f3 (diff)
downloadlinux-a2fd4b4b4e2884405c54a91514b0fad3853aea01.tar.xz
ACPICA: Add support for host-installed SCI handlers.
This change adds support to allow hosts to install System Control Interrupt handlers. Certain ACPI functionality requires the host to handle raw SCIs. For example, the "SCI Doorbell" that is defined for memory power state support requires the host device driver to handle SCIs to examine if the doorbell has been activated. Multiple SCI handlers can be installed to allow for future expansion. Debugger support is included. Lv Zheng, Bob Moore. ACPICA BZ 1032. Bug summary: It is reported when the PCC (Platform Communication Channel, via MPST table, defined in ACPI specification 5.0) subchannel responds to the host, it issues an SCI and the host must probe the subchannel for channel status. Buglink: http://bugs.acpica.org/show_bug.cgi?id=1032 Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Reviewed-by: Len Brown <len.brown@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'include/acpi')
-rw-r--r--include/acpi/acpixf.h13
-rw-r--r--include/acpi/actypes.h3
2 files changed, 13 insertions, 3 deletions
diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h
index 85bfdbe17805..55a4d3ae1477 100644
--- a/include/acpi/acpixf.h
+++ b/include/acpi/acpixf.h
@@ -280,9 +280,16 @@ acpi_status
acpi_install_initialization_handler(acpi_init_handler handler, u32 function);
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_install_global_event_handler
- (acpi_gbl_event_handler handler, void *context))
-
+ acpi_install_sci_handler(acpi_sci_handler
+ address,
+ void *context))
+ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
+ acpi_remove_sci_handler(acpi_sci_handler
+ address))
+ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
+ acpi_install_global_event_handler
+ (acpi_gbl_event_handler handler,
+ void *context))
ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
acpi_install_fixed_event_handler(u32
acpi_event,
diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h
index b748aefce929..850f75027fb6 100644
--- a/include/acpi/actypes.h
+++ b/include/acpi/actypes.h
@@ -946,6 +946,9 @@ typedef void
* Various handlers and callback procedures
*/
typedef
+u32 (*acpi_sci_handler) (u32 interrupt_number, void *context);
+
+typedef
void (*acpi_gbl_event_handler) (u32 event_type,
acpi_handle device,
u32 event_number, void *context);