summaryrefslogtreecommitdiffstats
path: root/drivers/ata/sata_mv.c
diff options
context:
space:
mode:
authorMark Lord <liml@rtr.ca>2008-04-16 15:01:19 -0400
committerJeff Garzik <jgarzik@redhat.com>2008-04-17 15:56:25 -0400
commit094e50b2f74146d8ee924fea4808e58c4ed2f163 (patch)
tree75b86149297d70d21b8e18191ac67bea47f95902 /drivers/ata/sata_mv.c
parent8a74f1a4680614dfb77fc5dfd37d0ece13b2b357 (diff)
sata_mv add temporary 3 second init delay for SiliconImage PMs
sata_mv does not yet fully support hotplug (coming soon, though). This means that the driver may not find a Silicon Image port-multiplier when first loaded, because those devices take in exceess of 3 seconds to sync up the SATA PHY (most devices do this in mere microseconds). So, as a short-term interim measure, here we insert a 3-second pause on initial driver load, once per controller board (not once per port!), to allow the Silicon Image port-multipliers to be detected later. This will be removed again (soon!) once hotplug is fully implemented/working. Signed-off-by: Mark Lord <mlord@pobox.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/sata_mv.c')
-rw-r--r--drivers/ata/sata_mv.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index 82632e7e34f..05ff8c77649 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -2105,6 +2105,13 @@ static int mv6_reset_hc(struct mv_host_priv *hpriv, void __iomem *mmio,
printk(KERN_ERR DRV_NAME ": can't clear global reset\n");
rc = 1;
}
+ /*
+ * Temporary: wait 3 seconds before port-probing can happen,
+ * so that we don't miss finding sleepy SilXXXX port-multipliers.
+ * This can go away once hotplug is fully/correctly implemented.
+ */
+ if (rc == 0)
+ msleep(3000);
done:
return rc;
}