• Tejun Heo's avatar
    libata: separate out ata_std_prereset() from ata_sff_prereset() · 0aa1113d
    Tejun Heo authored
    Separate out generic ATA portion from ata_sff_prereset() into
    ata_std_prereset() and implement ata_sff_prereset() using the std
    version.  Waiting for device readiness is the only SFF specific part.
    
    ata_base_port_ops now has ata_std_prereset() for its prereset and
    ata_sff_port_ops overrides it to ata_sff_prereset().  This change can
    affect pdc_adma, ahci, sata_fsl and sata_sil24.  pdc_adma implements
    its own prereset using ata_sff_prereset() and the rest has hardreset
    and thus are unaffected by this change.
    
    This change reflects real world situation.  There is no generic way to
    wait for device readiness for non-SFF controllers and some of them
    don't have any mechanism for that.  Non-sff drivers which don't have
    hardreset should wrap ata_std_prereset() and wait for device readiness
    itself but there's no such driver now and isn't likely to be popular
    in the future either.
    Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
    0aa1113d
libata-sff.c 71.2 KB