From 094e50b2f74146d8ee924fea4808e58c4ed2f163 Mon Sep 17 00:00:00 2001 From: Mark Lord Date: Wed, 16 Apr 2008 15:01:19 -0400 Subject: [PATCH] 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 Signed-off-by: Jeff Garzik --- drivers/ata/sata_mv.c | 7 +++++++ 1 file changed, 7 insertions(+) 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; } -- 2.39.2