atmel_serial: use cpu_relax() when busy-waiting
Haavard Skinnemoen [Fri, 8 Feb 2008 12:21:02 +0000 (04:21 -0800)]
Replace two instances of barrier() with cpu_relax() since that's the right
thing to do when busy-waiting.  This does not actually change anything since
cpu_relax() is defined as barrier() on both ARM and AVR32.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Acked-by: Andrew Victor <linux@maxim.org.za>
Tested-by: Marc Pignat <marc.pignat@hevs.ch>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

drivers/serial/atmel_serial.c

index bb9c357..4d1ccc2 100644 (file)
@@ -615,7 +615,7 @@ static void atmel_set_termios(struct uart_port *port, struct ktermios *termios,
        imr = UART_GET_IMR(port);
        UART_PUT_IDR(port, -1);
        while (!(UART_GET_CSR(port) & ATMEL_US_TXEMPTY))
-               barrier();
+               cpu_relax();
 
        /* disable receiver and transmitter */
        UART_PUT_CR(port, ATMEL_US_TXDIS | ATMEL_US_RXDIS);
@@ -794,7 +794,7 @@ void __init atmel_register_uart_fns(struct atmel_port_fns *fns)
 static void atmel_console_putchar(struct uart_port *port, int ch)
 {
        while (!(UART_GET_CSR(port) & ATMEL_US_TXRDY))
-               barrier();
+               cpu_relax();
        UART_PUT_CHAR(port, ch);
 }