Re: device_suspend() levels [was Re: [patch] ACPI work on aic7xxx]

Nathan Bryant
2004-07-24T15:32:30Z

Benjamin Herrenschmidt wrote:

>save_state is a nonsense, didn't we kill it ? queue quiescing must be
>done by the upper level, which is a bit nasty with things like md &
>multipath... basically, the low level driver must have a way to notify
>it's functional parent (as opposed to it's bus parent) that it's going
>to sleep, and any path using this low level driver must then be
>quiesced, the parent must resume only when all the drivers it relies
>on are back up.
>
Isn't sysfs supposed to take care of this for us? IOW, I shouldn't have
to call up to the SCSI midlayer from pcidev->suspend in order to notify
it of a suspend, the midlayer should call the driver before we ever try
to suspend. This may become important some day when the upper layers
need to decide which order to bring pci devices down

Looking in /sys/devices shows that sysfs already knows that 'host0' is a
child of a SCSI PCI device.

$ ls
/sys/devices/pci0000\:00/0000\:00\:1e.0/0000\:02\:02.0/host0/0\:0\:0\:0/
block detach_state model queue_depth rev state type
delete device_blocked power rescan scsi_level timeout vendor