• T
    [PATCH] libata: implement new SCR handling and port on/offline functions · 34bf2170
    Tejun Heo 提交于
    Implement ata_scr_{valid|read|write|write_flush}() and
    ata_port_{online|offline}().  These functions replace
    scr_{read|write}() and sata_dev_present().
    
    Major difference between between the new SCR functions and the old
    ones is that the new ones have a way to signal error to the caller.
    This makes handling SCR-available and SCR-unavailable cases in the
    same path easier.  Also, it eases later PM implementation where SCR
    access can fail due to various reasons.
    
    ata_port_{online|offline}() functions return 1 only when they are
    affirmitive of the condition.  e.g.  if SCR is unaccessible or
    presence cannot be determined for other reasons, these functions
    return 0.  So, ata_port_online() != !ata_port_offline().  This
    distinction is useful in many exception handling cases.
    Signed-off-by: NTejun Heo <htejun@gmail.com>
    34bf2170
libata-core.c 126.4 KB