Thread (18 messages) 18 messages, 2 authors, 2005-08-12

Re: [PATCH libata-dev-2.6:sil24 05/07] sil24: use longer delay function and less iteration in reset_controller

From: Tejun Heo <hidden>
Date: 2005-08-12 00:54:33

Jeff Garzik wrote:
Tejun Heo wrote:
quoted
05_sil24_mdelay-instead-of-udelay.patch

    loop 100 times with mdelay(1) instead of 1000 times with
    udelay(100) in sil24_reset_controller.

    Jeff, is this what you wanted?  If not, just ignore this
    patch.  The following patches will apply without this one.

Signed-off-by: Tejun Heo <redacted>

 sata_sil24.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

Index: work/drivers/scsi/sata_sil24.c
===================================================================
--- work.orig/drivers/scsi/sata_sil24.c    2005-07-30 
19:13:40.000000000 +0900
+++ work/drivers/scsi/sata_sil24.c    2005-07-30 19:13:40.000000000 +0900
@@ -445,9 +445,13 @@ static void sil24_reset_controller(struc
     writel(PORT_CS_DEV_RST, port + PORT_CTRL_STAT);
     readl(port + PORT_CTRL_STAT);    /* sync */
 
-    /* Max ~100ms */
-    for (cnt = 0; cnt < 1000; cnt++) {
-        udelay(100);
+    /*
+     * Max ~100ms.
+     * FIXME: 100ms is an arbitrary value, get spec and use
+     *        accurate value.
+     */
+    for (cnt = 0; cnt < 100; cnt++) {
+        mdelay(1);
         tmp = readl(port + PORT_CTRL_STAT);

I forget what the discussion resulted in, for this change.

For error handling, we typically want to move to process context (if not 
there already), and then use msleep() and friends.
  Yeap, that's exactly what I did in sil24 driver against new EH/NCQ 
helpers.  As we don't have EH thread luxury in mainline yet, I had to 
convert it to mdelay.  Once new EH (in whatever form) is in place, we 
should be able to convert all mdelay's in reset routines to msleep's.

-- 
tejun
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help