Aaarrgghh, So sorry. I meant to reply to this subject, not the other
one. It's the sata_inic162x driver that I'm getting random results
and timeouts from.
Bob
--- Tejun Heo <[EMAIL PROTECTED]> wrote:
> * Hardreset must not exit without actually performing reset regardless
> of link status. We're resetting the link after all.
>
> * Minor message update.
>
> * 150ms delay is meaningful iff link is online after reset is
> complete.
>
> Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>
> ---
> drivers/ata/sata_inic162x.c | 12 ++++--------
> 1 files changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/ata/sata_inic162x.c b/drivers/ata/sata_inic162x.c
> index b2a6f77..fad2bd3 100644
> --- a/drivers/ata/sata_inic162x.c
> +++ b/drivers/ata/sata_inic162x.c
> @@ -429,11 +429,6 @@ static int inic_hardreset(struct ata_port *ap, unsigned
> int *class)
> /* hammer it into sane state */
> inic_reset_port(port_base);
>
> - if (ata_port_offline(ap)) {
> - *class = ATA_DEV_NONE;
> - return 0;
> - }
> -
> val = readw(idma_ctl);
> writew(val | IDMA_CTL_RST_ATA, idma_ctl);
> readw(idma_ctl); /* flush */
> @@ -443,16 +438,17 @@ static int inic_hardreset(struct ata_port *ap, unsigned
> int *class)
> rc = sata_phy_resume(ap, timing);
> if (rc) {
> ata_port_printk(ap, KERN_WARNING, "failed to resume "
> - "link for reset (errno=%d)\n", rc);
> + "link after reset (errno=%d)\n", rc);
> return rc;
> }
>
> - msleep(150);
> -
> *class = ATA_DEV_NONE;
> if (ata_port_online(ap)) {
> struct ata_taskfile tf;
>
> + /* wait a while before checking status */
> + msleep(150);
> +
> if (ata_busy_sleep(ap, ATA_TMOUT_BOOT_QUICK, ATA_TMOUT_BOOT)) {
> ata_port_printk(ap, KERN_WARNING,
> "device busy after hardreset\n");
> --
> 1.4.4.4
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ide" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html