Re: [PATCH] libata: Handle bay devices in dock stations
From: tom
Date: Fri May 30 2008 - 07:17:11 EST
Quoting Holger Macht <hmacht@xxxxxxx>:
* 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@xxxxxxxxxxxxx>)
* Call ACPI _EJ0 for detached devices
Will this patch or the other bay/dock related patches you send in the
past days allow me to undock my laptop and still be able to
suspend/resume without locking the laptop up? And without having to
run any userspace scripts?
My dock is not a simple port replicator, it has an USB hub and an ATA
bay in it. My tests showed that I need to 'echo 1 >
/sys/.../scsi/.../eject' or something like that before I can take the
laptop out of the docking station. If I don't do that and try to
access the cdrom in the bay (or even rescaning the scsi bus) after I
have taken the laptop out of the dock it results in a hard lockup.
That in itself would not be a problem, because it's just a simple
command that I can do in an acpid script. But far worse is that even
if I do that, the computer locks up when I resume from suspend. I run
2.6.24.7 which locks up every time I resume. In recent versions from
git it has somehow improved, there are situations where it doesn't
lock up, but there are still a few left where it does (I don't
remember the exact actions/commands I have to take).
tom
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/