[lkml]   [2011]   [Nov]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subject[PATCH v2 0/4] ata port runtime power management support
    Hi, all

    These 4 patches add ata port runtime pm support.


    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

    This is much cleaner and natural.

    Lin Ming (4):
    ata: make ata port as parent device of scsi host
    scsi: add flag to skip the runtime PM calls on host in EH
    ata: add ata port system PM callbacks
    ata: add ata port runtime PM callbacks

    drivers/ata/libata-core.c | 158 ++++++++++++++++++++++------------------
    drivers/ata/libata-scsi.c | 3 +-
    drivers/ata/libata-transport.c | 5 +
    drivers/ata/libata.h | 1 +
    drivers/scsi/scsi_error.c | 5 +-
    include/scsi/scsi_host.h | 3 +
    6 files changed, 102 insertions(+), 73 deletions(-)

    Thanks for any comment.
    Lin Min

     \ /
      Last update: 2011-11-10 07:25    [W:0.019 / U:33.572 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site