• Holger Macht's avatar
    [libata] ACPI: Properly handle bay devices in dock stations · 664d080c
    Holger Macht authored
    * Differentiate between bay devices in dock stations and others:
    
     - When an ACPI_NOTIFY_EJECT_REQUEST appears, just signal uevent to
       userspace (that is when the optional eject button on a bay device is
       pressed/pulled) giving the possibility to unmount file systems and to
       clean up. Also, only send uevent in case we get an EJECT_REQUEST
       without doing anything else. In other cases, you'll get an add/remove
       event because libata attaches/detaches the device.
    
     - In case of a dock event, which in turn signals an
       ACPI_NOTIFY_EJECT_REQUEST, immediately detach the device, because it
       may already have been gone
    
    * In case of an ACPI_NOTIFY_DEVICE/BUS_CHECK, evaluate _STA to check if
      the device has been plugged or unplugged. If plugged, hotplug it, if
      unplugged, just signal event to userspace
      (initial patch by Matthew Garrett <mjg59@srcf.ucam.org>)
    
    * Call ACPI _EJ0 for detached devices
    Signed-off-by: default avatarHolger Macht <hmacht@suse.de>
    Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
    664d080c
libata-acpi.c 25.6 KB