diff options
author | Nishanth Aravamudan <nacc@us.ibm.com> | 2005-06-20 17:54:27 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-06-26 23:47:57 -0400 |
commit | a26c074c1cf130df95e9c297ef98fdd98348acf0 (patch) | |
tree | c595ac72c0b9cbda8f5a1f6513d2d529e4581389 /drivers | |
parent | 62595eb9066ea09f7f8a789a38bec16d70ee0321 (diff) |
[PATCH] net/sb1000: replace nicedelay() with ssleep()
Use ssleep() instead of nicedelay()
to guarantee the task delays as expected. Remove the prototype and
definition of nicedelay(). This is a very weird function, because it is
called to sleep in terms of usecs, but always sleeps for 1 second,
completely ignoring the parameter. I have gone ahead and followed suit,
just sleeping for a second in all cases, but maybe someone with the
hardware could tell me if perhaps the paramter *should* matter. Additionally,
nicedelay() is called in TASK_INTERRUPTIBLE state, but doesn't deal with signals
in case these longer delays do not complete, so I believe ssleep() is more
appropriate.
Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Signed-off-by: Domen Puncer <domen@coderock.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/sb1000.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/drivers/net/sb1000.c b/drivers/net/sb1000.c index e15369c8d165..d6388e1533f0 100644 --- a/drivers/net/sb1000.c +++ b/drivers/net/sb1000.c | |||
@@ -90,7 +90,6 @@ static int sb1000_close(struct net_device *dev); | |||
90 | 90 | ||
91 | 91 | ||
92 | /* SB1000 hardware routines to be used during open/configuration phases */ | 92 | /* SB1000 hardware routines to be used during open/configuration phases */ |
93 | static inline void nicedelay(unsigned long usecs); | ||
94 | static inline int card_wait_for_busy_clear(const int ioaddr[], | 93 | static inline int card_wait_for_busy_clear(const int ioaddr[], |
95 | const char* name); | 94 | const char* name); |
96 | static inline int card_wait_for_ready(const int ioaddr[], const char* name, | 95 | static inline int card_wait_for_ready(const int ioaddr[], const char* name, |
@@ -254,13 +253,6 @@ static struct pnp_driver sb1000_driver = { | |||
254 | 253 | ||
255 | static const int TimeOutJiffies = (875 * HZ) / 100; | 254 | static const int TimeOutJiffies = (875 * HZ) / 100; |
256 | 255 | ||
257 | static inline void nicedelay(unsigned long usecs) | ||
258 | { | ||
259 | current->state = TASK_INTERRUPTIBLE; | ||
260 | schedule_timeout(HZ); | ||
261 | return; | ||
262 | } | ||
263 | |||
264 | /* Card Wait For Busy Clear (cannot be used during an interrupt) */ | 256 | /* Card Wait For Busy Clear (cannot be used during an interrupt) */ |
265 | static inline int | 257 | static inline int |
266 | card_wait_for_busy_clear(const int ioaddr[], const char* name) | 258 | card_wait_for_busy_clear(const int ioaddr[], const char* name) |
@@ -475,7 +467,7 @@ sb1000_reset(const int ioaddr[], const char* name) | |||
475 | udelay(1000); | 467 | udelay(1000); |
476 | outb(0x0, port); | 468 | outb(0x0, port); |
477 | inb(port); | 469 | inb(port); |
478 | nicedelay(60000); | 470 | ssleep(1); |
479 | outb(0x4, port); | 471 | outb(0x4, port); |
480 | inb(port); | 472 | inb(port); |
481 | udelay(1000); | 473 | udelay(1000); |
@@ -537,7 +529,7 @@ sb1000_activate(const int ioaddr[], const char* name) | |||
537 | const unsigned char Command0[6] = {0x80, 0x11, 0x00, 0x00, 0x00, 0x00}; | 529 | const unsigned char Command0[6] = {0x80, 0x11, 0x00, 0x00, 0x00, 0x00}; |
538 | const unsigned char Command1[6] = {0x80, 0x16, 0x00, 0x00, 0x00, 0x00}; | 530 | const unsigned char Command1[6] = {0x80, 0x16, 0x00, 0x00, 0x00, 0x00}; |
539 | 531 | ||
540 | nicedelay(50000); | 532 | ssleep(1); |
541 | if ((status = card_send_command(ioaddr, name, Command0, st))) | 533 | if ((status = card_send_command(ioaddr, name, Command0, st))) |
542 | return status; | 534 | return status; |
543 | if ((status = card_send_command(ioaddr, name, Command1, st))) | 535 | if ((status = card_send_command(ioaddr, name, Command1, st))) |
@@ -944,7 +936,7 @@ sb1000_open(struct net_device *dev) | |||
944 | /* initialize sb1000 */ | 936 | /* initialize sb1000 */ |
945 | if ((status = sb1000_reset(ioaddr, name))) | 937 | if ((status = sb1000_reset(ioaddr, name))) |
946 | return status; | 938 | return status; |
947 | nicedelay(200000); | 939 | ssleep(1); |
948 | if ((status = sb1000_check_CRC(ioaddr, name))) | 940 | if ((status = sb1000_check_CRC(ioaddr, name))) |
949 | return status; | 941 | return status; |
950 | 942 | ||