diff options
author | Tejun Heo <htejun@gmail.com> | 2006-03-05 17:55:58 +0900 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-03-05 11:09:42 -0500 |
commit | 48a8a14ff1f13aa4dba3f6b4381b886727609db4 (patch) | |
tree | 429ca20edef799c283e1226b790693d0ad71e478 /drivers/scsi/libata-core.c | |
parent | 623a3128aa2b86caa8e06e762e9e444177e4fa47 (diff) |
[PATCH] libata: revalidate after transfer mode configuration
Revalidate device after transfer mode configuration. This also makes
dev->id up-to-date.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/scsi/libata-core.c')
-rw-r--r-- | drivers/scsi/libata-core.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c index 5d0adfa4610..5dbcf0cf4a1 100644 --- a/drivers/scsi/libata-core.c +++ b/drivers/scsi/libata-core.c @@ -1625,6 +1625,12 @@ static void ata_dev_set_mode(struct ata_port *ap, struct ata_device *dev) idx = ofs + dev->xfer_shift; WARN_ON(idx >= ARRAY_SIZE(xfer_mode_str)); + if (ata_dev_revalidate(ap, dev, 0)) { + printk(KERN_ERR "ata%u: failed to revalidate after set " + "xfermode, disabled\n", ap->id); + ata_port_disable(ap); + } + DPRINTK("idx=%d xfer_shift=%u, xfer_mode=0x%x, base=0x%x, offset=%d\n", idx, dev->xfer_shift, (int)dev->xfer_mode, (int)base, ofs); |