diff options
author | Sergei Shtylyov <sshtylyov@ru.mvista.com> | 2006-04-30 06:15:58 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-04-30 06:15:58 -0400 |
commit | 85835f442e5bbf9d3b8f6e574751da8db77016d2 (patch) | |
tree | 28bc3bd2734daf51474dcfb255100a0050ffc29c | |
parent | 68ac64cd3fd89fdaa091701f6ab98a9065e9b1b5 (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>
-rw-r--r-- | drivers/serial/8250.c | 6 | ||||
-rw-r--r-- | drivers/serial/8250_au1x00.c | 5 |
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 | ||
42 | static struct plat_serial8250_port au1x00_data[] = { | 41 | static struct plat_serial8250_port au1x00_data[] = { |