• T
    [PATCH] libata: improve ata_bus_probe() · 14d2bac1
    Tejun Heo 提交于
    Improve ata_bus_probe() such that configuration failures are handled
    better.  Each device is given ATA_PROBE_MAX_TRIES chances, but any
    non-transient error (revalidation failure with -ENODEV, configuration
    failure with -EINVAL...) disables the device directly.  Any IO error
    results in SATA PHY speed down and ata_set_mode() failure lowers
    transfer mode.  The last try always puts a device into PIO-0.
    
    After each failure, the whole port is reset to make sure that the
    controller and all the devices are in a known and stable state.  The
    reset also applies SATA SPD configuration if necessary.
    Signed-off-by: NTejun Heo <htejun@gmail.com>
    Signed-off-by: NJeff Garzik <jeff@garzik.org>
    14d2bac1
libata-core.c 124.9 KB