I've noticed that the 8250/Au1x00 driver (drivers/serial/8250_au1x00.c)
doesn't claim UART memory ranges and uses wrong (KSEG1-based) UART
addresses instead of the physical ones.
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        int ret = 0;
 
        switch (up->port.iotype) {
+       case UPIO_AU:
+               size = 0x100000;
+               /* fall thru */
        case UPIO_MEM:
                if (!up->port.mapbase)
                        break;
        unsigned int size = 8 << up->port.regshift;
 
        switch (up->port.iotype) {
+       case UPIO_AU:
+               size = 0x100000;
+               /* fall thru */
        case UPIO_MEM:
                if (!up->port.mapbase)
                        break;
 
        {                                               \
                .iobase         = _base,                \
                .membase        = (void __iomem *)_base,\
-               .mapbase        = _base,                \
+               .mapbase        = CPHYSADDR(_base),     \
                .irq            = _irq,                 \
                .uartclk        = 0,    /* filled */    \
                .regshift       = 2,                    \
                .iotype         = UPIO_AU,              \
-               .flags          = UPF_SKIP_TEST |       \
-                                 UPF_IOREMAP,          \
+               .flags          = UPF_SKIP_TEST         \
        }
 
 static struct plat_serial8250_port au1x00_data[] = {