Re: [PATCH v2 0/4] ata port runtime power management support
From: Tejun Heo <tj@kernel.org>
Date: 2011-11-10 15:30:46
Also in:
linux-scsi, lkml
Hello, (cc'ing Kay for the sysfs tree hierarchy change) On Thu, Nov 10, 2011 at 02:22:42PM +0800, Lin Ming wrote:
These 4 patches add ata port runtime pm support. v1: https://lkml.org/lkml/2011/11/2/23 v2 is totally different than v1. v1 performed ata port runtime pm through scsi layer. Added hook to scsi host runtime suspend/resume code. I realized that this is not the natural way to do ata port runtime pm. It does not deal with the races with ata port system suspend/resume. With v2, ata port is made to be parent device of scsi host. Currently, the device tree of ata port and scsi host looks as below, /sys/devices/pci0000:00/0000:00:1f.2 (ahci controller) |-- ata1 (ata port) |-- host0 (scsi host) |-- target0:0:0 (scsi target) |-- 0:0:0:0 (disk) v2 changes it to: /sys/devices/pci0000:00/0000:00:1f.2 (ahci controller) |-- ata1 (ata port) |-- host0 (scsi host) |-- target0:0:0 (scsi target) |-- 0:0:0:0 (disk) So ata port runtime PM will happen as: disk suspend --> scsi target suspend --> scsi host suspend --> ata port suspend. This is much cleaner and natural.
Yeah, I really like this approach. Nicely done. I *think* the hierarchy change should be okay but cc'ing Kay just in case. Acked-by: Tejun Heo [off-list ref] Thanks. -- tejun