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 <htejun@xxxxxxxxx> 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 <htejun@xxxxxxxxx> > --- > 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 majordomo@xxxxxxxxxxxxxxx > 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html