diff options
author | Jiri Slaby <jirislaby@gmail.com> | 2007-07-17 04:05:20 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-17 10:23:10 -0700 |
commit | c4ebd9277705904aea25937c9a2d347c88c063c8 (patch) | |
tree | ffcdb5d9596486a89edb5cd3607873ccbcae4aea | |
parent | 3e98cee717fb8e9f4ff15a70e357927c5f3c7793 (diff) | |
download | op-kernel-dev-c4ebd9277705904aea25937c9a2d347c88c063c8.zip op-kernel-dev-c4ebd9277705904aea25937c9a2d347c88c063c8.tar.gz |
Char: riscom8, eliminate busy loop
riscom8, eliminate busy loop
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | drivers/char/riscom8.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/drivers/char/riscom8.c b/drivers/char/riscom8.c index 3494e3f..b37e626 100644 --- a/drivers/char/riscom8.c +++ b/drivers/char/riscom8.c @@ -213,14 +213,6 @@ static inline void rc_release_io_range(struct riscom_board * const bp) release_region(RC_TO_ISA(rc_ioport[i]) + bp->base, 1); } -/* Must be called with enabled interrupts */ -static inline void rc_long_delay(unsigned long delay) -{ - unsigned long i; - - for (i = jiffies + delay; time_after(i,jiffies); ) ; -} - /* Reset and setup CD180 chip */ static void __init rc_init_CD180(struct riscom_board const * bp) { @@ -231,7 +223,7 @@ static void __init rc_init_CD180(struct riscom_board const * bp) rc_wait_CCR(bp); /* Wait for CCR ready */ rc_out(bp, CD180_CCR, CCR_HARDRESET); /* Reset CD180 chip */ sti(); - rc_long_delay(HZ/20); /* Delay 0.05 sec */ + msleep(50); /* Delay 0.05 sec */ cli(); rc_out(bp, CD180_GIVR, RC_ID); /* Set ID for this chip */ rc_out(bp, CD180_GICR, 0); /* Clear all bits */ @@ -280,7 +272,7 @@ static int __init rc_probe(struct riscom_board *bp) rc_wait_CCR(bp); rc_out(bp, CD180_CCR, CCR_TXEN); /* Enable transmitter */ rc_out(bp, CD180_IER, IER_TXRDY); /* Enable tx empty intr */ - rc_long_delay(HZ/20); + msleep(50); irqs = probe_irq_off(irqs); val1 = rc_in(bp, RC_BSR); /* Get Board Status reg */ val2 = rc_in(bp, RC_ACK_TINT); /* ACK interrupt */ |