diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 6001aae..4bc042d 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -732,6 +732,9 @@ ata_dev_try_classify(struct ata_port *ap, unsigned int device, u8 *r_err) if (r_err) *r_err = err; + ata_port_printk(ap, KERN_ERR, "XXX: try_classif dev%d e=%02x %02x:%02x:%02x\n", + device, err, tf.lbal, tf.lbam, tf.lbah); + /* see if device passed diags: if master then continue and warn later */ if (err == 0 && device == 0) /* diagnostic fail : do nothing _YET_ */ @@ -3006,8 +3009,10 @@ int ata_wait_ready(struct ata_port *ap, unsigned long deadline) if (!(status & ATA_BUSY)) return 0; - if (!ata_port_online(ap) && status == 0xff) + if (!ata_port_online(ap) && status == 0xff) { + ata_port_printk(ap, KERN_ERR, "XXX: wait_ready status=0xff\n"); return -ENODEV; + } if (time_after(now, deadline)) return -EBUSY; @@ -3037,8 +3042,10 @@ static int ata_bus_post_reset(struct ata_port *ap, unsigned int devmask, if (dev0) { rc = ata_wait_ready(ap, deadline); if (rc) { - if (rc != -ENODEV) + if (rc != -ENODEV) { + ata_port_printk(ap, KERN_ERR, "XXX: post_reset dev0 rc=%d\n", rc); return rc; + } ret = rc; } } @@ -3067,8 +3074,10 @@ static int ata_bus_post_reset(struct ata_port *ap, unsigned int devmask, rc = ata_wait_ready(ap, deadline); if (rc) { - if (rc != -ENODEV) + if (rc != -ENODEV) { + printk("XXX: post_reset dev1 rc=%d\n", rc); return rc; + } ret = rc; } } @@ -3113,8 +3122,11 @@ static int ata_bus_softreset(struct ata_port *ap, unsigned int devmask, * the bus shows 0xFF because the odd clown forgets the D7 * pulldown resistor. */ - if (ata_check_status(ap) == 0xFF) + if (ata_check_status(ap) == 0xFF) { + ata_port_printk(ap, KERN_ERR, "XXX: status=0xFF altstatus=0x%x\n", + ata_altstatus(ap)); return -ENODEV; + } return ata_bus_post_reset(ap, devmask, deadline); } @@ -3402,6 +3414,8 @@ int ata_std_softreset(struct ata_port *ap, unsigned int *classes, if (slave_possible && ata_devchk(ap, 1)) devmask |= (1 << 1); + ata_port_printk(ap, KERN_ERR, "XXX: devmask=0x%x\n", devmask); + /* select device 0 again */ ap->ops->dev_select(ap, 0);