linux-mips
[Top] [All Lists]

[PATCH] AMD Alchemy: claim UART memory range

To: rmk+serial@arm.linux.org.uk
Subject: [PATCH] AMD Alchemy: claim UART memory range
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Date: Tue, 04 Apr 2006 22:47:36 +0400
Cc: linux-mips@linux-mips.org, jordan.crouse@amd.com
Organization: MontaVista Software Inc.
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; U; Linux i686; rv:1.7.2) Gecko/20040803
Hello.

     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.

WBR, Sergei

Sighed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>


diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index 674b15c..d641ac4 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -1906,6 +1906,9 @@ static int serial8250_request_std_resour
        int ret = 0;
 
        switch (up->port.iotype) {
+       case UPIO_AU:
+               size = 0x100000;
+               /* fall thru */
        case UPIO_MEM:
                if (!up->port.mapbase)
                        break;
@@ -1938,6 +1941,9 @@ static void serial8250_release_std_resou
        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;
diff --git a/drivers/serial/8250_au1x00.c b/drivers/serial/8250_au1x00.c
index 3d1bfd0..58015fd 100644
--- a/drivers/serial/8250_au1x00.c
+++ b/drivers/serial/8250_au1x00.c
@@ -30,13 +30,12 @@
        {                                               \
                .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[] = {


<Prev in Thread] Current Thread [Next in Thread>
  • [PATCH] AMD Alchemy: claim UART memory range, Sergei Shtylyov <=