[POWERPC] UPIO_TSI cleanup
authorAl Viro <viro@ftp.linux.org.uk>
Sat, 23 Sep 2006 00:39:45 +0000 (01:39 +0100)
committerPaul Mackerras <paulus@samba.org>
Tue, 26 Sep 2006 05:41:02 +0000 (15:41 +1000)
(le32_to_cpu(x) >> 8) & 0xff is a very odd way to spell (x >> 16) & 0xff,
even if that code is hit only on ppc.  The value is host-endian - we've
got it from readl(), after all...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Paul Mackerras <paulus@samba.org>
drivers/serial/8250.c

index 0ae9ced00ed4db899c591528a848f68a51c144a8..10c2daab99ac1522ca224a6a7407eb6168fa6b19 100644 (file)
@@ -320,8 +320,8 @@ static unsigned int serial_in(struct uart_8250_port *up, int offset)
 
        case UPIO_TSI:
                if (offset == UART_IIR) {
-                       tmp = readl((u32 *)(up->port.membase + UART_RX));
-                       return (cpu_to_le32(tmp) >> 8) & 0xff;
+                       tmp = readl(up->port.membase + (UART_IIR & ~3));
+                       return (tmp >> 16) & 0xff; /* UART_IIR % 4 == 2 */
                } else
                        return readb(up->port.membase + offset);