aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSergei Shtylyov <sshtylyov@ru.mvista.com>2006-04-30 06:15:58 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-04-30 06:15:58 -0400
commit85835f442e5bbf9d3b8f6e574751da8db77016d2 (patch)
tree28bc3bd2734daf51474dcfb255100a0050ffc29c /drivers
parent68ac64cd3fd89fdaa091701f6ab98a9065e9b1b5 (diff)
[SERIAL] AMD Alchemy UART: claim memory range
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/serial/8250.c6
-rw-r--r--drivers/serial/8250_au1x00.c5
2 files changed, 8 insertions, 3 deletions
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index 674b15c78f68..d641ac4e976e 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -1906,6 +1906,9 @@ static int serial8250_request_std_resource(struct uart_8250_port *up)
1906 int ret = 0; 1906 int ret = 0;
1907 1907
1908 switch (up->port.iotype) { 1908 switch (up->port.iotype) {
1909 case UPIO_AU:
1910 size = 0x100000;
1911 /* fall thru */
1909 case UPIO_MEM: 1912 case UPIO_MEM:
1910 if (!up->port.mapbase) 1913 if (!up->port.mapbase)
1911 break; 1914 break;
@@ -1938,6 +1941,9 @@ static void serial8250_release_std_resource(struct uart_8250_port *up)
1938 unsigned int size = 8 << up->port.regshift; 1941 unsigned int size = 8 << up->port.regshift;
1939 1942
1940 switch (up->port.iotype) { 1943 switch (up->port.iotype) {
1944 case UPIO_AU:
1945 size = 0x100000;
1946 /* fall thru */
1941 case UPIO_MEM: 1947 case UPIO_MEM:
1942 if (!up->port.mapbase) 1948 if (!up->port.mapbase)
1943 break; 1949 break;
diff --git a/drivers/serial/8250_au1x00.c b/drivers/serial/8250_au1x00.c
index 3d1bfd07208d..58015fd14be9 100644
--- a/drivers/serial/8250_au1x00.c
+++ b/drivers/serial/8250_au1x00.c
@@ -30,13 +30,12 @@
30 { \ 30 { \
31 .iobase = _base, \ 31 .iobase = _base, \
32 .membase = (void __iomem *)_base,\ 32 .membase = (void __iomem *)_base,\
33 .mapbase = _base, \ 33 .mapbase = CPHYSADDR(_base), \
34 .irq = _irq, \ 34 .irq = _irq, \
35 .uartclk = 0, /* filled */ \ 35 .uartclk = 0, /* filled */ \
36 .regshift = 2, \ 36 .regshift = 2, \
37 .iotype = UPIO_AU, \ 37 .iotype = UPIO_AU, \
38 .flags = UPF_SKIP_TEST | \ 38 .flags = UPF_SKIP_TEST \
39 UPF_IOREMAP, \
40 } 39 }
41 40
42static struct plat_serial8250_port au1x00_data[] = { 41static struct plat_serial8250_port au1x00_data[] = {