acpi: extend ACPI interface to provide send_event hook

send_event() hook will allow to send ACPI event in
a target specific way (GPE or GPIO based impl.)
it will also simplify proxy wrappers in piix4pm/ich9
that access ACPI regs and SCI which are part of
piix4pm/lcp_ich9 devices and call acpi_foo() API directly.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
This commit is contained in:
Igor Mammedov 2016-05-31 11:57:57 +02:00 committed by Michael S. Tsirkin
parent 6d42eefad8
commit eaf23bf794
6 changed files with 39 additions and 9 deletions

View file

@ -703,6 +703,13 @@ static Property ich9_lpc_properties[] = {
DEFINE_PROP_END_OF_LIST(),
};
static void ich9_send_gpe(AcpiDeviceIf *adev, AcpiEventStatusBits ev)
{
ICH9LPCState *s = ICH9_LPC_DEVICE(adev);
acpi_send_gpe_event(&s->pm.acpi_regs, s->pm.irq, ev);
}
static void ich9_lpc_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
@ -730,6 +737,7 @@ static void ich9_lpc_class_init(ObjectClass *klass, void *data)
hc->unplug_request = ich9_device_unplug_request_cb;
hc->unplug = ich9_device_unplug_cb;
adevc->ospm_status = ich9_pm_ospm_status;
adevc->send_event = ich9_send_gpe;
}
static const TypeInfo ich9_lpc_info = {