Re: [PATCH] libata: Register for dock events when the drive is inside a dock station
From: Jeff Garzik <hidden>
Date: 2008-02-20 17:13:33
Also in:
lkml
Holger Macht wrote:
quoted hunk ↗ jump to hunk
On Thu 14. Feb - 13:40:48, Holger Macht wrote:quoted
If a device/bay is inside a docking station, we need to register for dock events additionally to bay events. If a dock event occurs, the dock driver will call the appropriate handler (ata_acpi_ap_notify() or ata_acpi_dev_notify()) for us. Signed-off-by: Holger Macht <redacted>Updated patch which only includes the dock specific function if the dock driver is actually compiled. Signed-off-by: Holger Macht <redacted> ---diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c index 9e8ec19..5f16055 100644 --- a/drivers/ata/libata-acpi.c +++ b/drivers/ata/libata-acpi.c@@ -191,20 +191,33 @@ void ata_acpi_associate(struct ata_host *host) else ata_acpi_associate_ide_port(ap); - if (ap->acpi_handle) + if (ap->acpi_handle) { acpi_install_notify_handler (ap->acpi_handle, ACPI_SYSTEM_NOTIFY, ata_acpi_ap_notify, ap); +#ifdef CONFIG_ACPI_DOCK + /* we might be on a docking station */ + register_hotplug_dock_device(ap->acpi_handle, + ata_acpi_ap_notify, ap); +#endif + } for (j = 0; j < ata_link_max_devices(&ap->link); j++) { struct ata_device *dev = &ap->link.device[j]; - if (dev->acpi_handle) + if (dev->acpi_handle) { acpi_install_notify_handler (dev->acpi_handle, ACPI_SYSTEM_NOTIFY, ata_acpi_dev_notify, dev); +#ifdef CONFIG_ACPI_DOCK + /* we might be on a docking station */ + register_hotplug_dock_device(ap->acpi_handle, + ata_acpi_dev_notify, + ap); +#endif
CONFIG_ACPI_DOCK is a tristate, so you might have CONFIG_ACPI_DOCK_MODULE...