View difference between Paste ID: rzDcTbWE and H1sWnTdM
SHOW: | | - or go back to the newest paste.
1
diff -r a7c552e1ed7f head/sys/dev/flash/mx25l.c
2
--- a/head/sys/dev/flash/mx25l.c        Wed Dec 05 12:37:28 2012 +0200
3-
+++ b/head/sys/dev/flash/mx25l.c        Wed Dec 05 13:39:08 2012 +0200
3+
+++ b/head/sys/dev/flash/mx25l.c        Wed Dec 05 13:42:00 2012 +0200
4
@@ -231,7 +231,7 @@
5
        uint8_t txBuf[4];//, rxBuf[4];
6
        uint8_t status;
7
        struct spi_command cmd;
8
-       int err;
9
+       int err, timeout;
10
 
11
        sc = device_get_softc(dev);
12
 
13-
@@ -248,7 +248,14 @@
13+
@@ -246,9 +246,15 @@
14
        cmd.tx_cmd_sz = 1;
15-
        status = mx25l_get_status(dev);
15+
        err = SPIBUS_TRANSFER(device_get_parent(dev), dev, &cmd);
16
 
17
-       status = mx25l_get_status(dev);
18
-
19
-       if (writable && !(status & STATUS_WEL))
20
+       timeout = 1000;
21
+       while (timeout--) {
22
+               status = mx25l_get_status(dev);
23
+               if (writable && (status & STATUS_WEL))
24
+                       break;
25
+               if (!writable && !(status & STATUS_WEL))
26
+                       break;
27
+       }
28
+       if (timeout == 0)
29
                device_printf(dev, "%s - fail\n", __func__);
30
 }