Skip to content
  • Tejun Heo's avatar
    ata_piix: implement SIDPR SCR access · c7290724
    Tejun Heo authored
    
    
    For ICH8, SCRs can be accessed using index and data register pair
    located at BAR 5.  This patch implements support for it such that PHY
    status, errors and hardreset are available for those controllers.
    
    This is the only case where two devices on a PATA channel have access
    to SCRs and creates a unique problem of mapping two SCRs to one link.
    Note that this is different from PMP case in that they aren't quite
    separate links - e.g. softreset resets both devices.
    
    This problem is worked around by merging the SCR values.  To upper
    layer, it looks like there is a single link with one set of SCRs but
    with two devices.  This works well enough for PHY event, error
    reporting and hardreset.
    
    Supporting hardreset is important because in rare cases SATA devices
    fail to recover without it after PHY errors.
    
    Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    c7290724