diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-16 14:25:32 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-16 14:25:32 -0400 |
commit | 8ef50901d3c619127858b7d7f614fcab45e09d6b (patch) | |
tree | e75a0d48029d4a5857033e4edf1cd572a5a3fc62 /drivers/serial/8250.c | |
parent | 435263702ef0fc9ffdc6301a71c03b1d9ac0f1e0 (diff) | |
parent | 2502991560dc8244dbe10e48473d85722c1e2ec1 (diff) |
Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (51 commits)
[ARM] 5308/1: Fix Viper ISA IRQ handling
[ARM] 5307/1: pxa: fix CM-X2XX PCMCIA build error
[ARM] 5306/1: pxa: fix build error on CM-X270
[ARM] 5302/1: ARM: OMAP: Revert omap3 WDT changes to avoid merge conflict
[ARM] 5305/1: ARM: OMAP: Fix compile of McBSP by removing unnecessary check
[ARM] 5301/1: ARM: OMAP: Add missing irq defines
ARM: OMAP3: Add default kernel config for OMAP LDP
ARM: OMAP3: Add basic board support for OMAP LDP
ARM: OMAP3: Defconfig for the Gumstix Overo board (rev 3)
ARM: OMAP3: Add support for the Gumstix Overo board (rev 3)
ARM: OMAP3: Add Beagle defconfig
ARM: OMAP3: Add minimal Beagle board support
ARM: OMAP3: Add minimal omap3430 support
ARM: OMAP2: Fix sparse, checkpatch warnings in OMAP2/3 IRQ code
ARM: OMAP: Fixes to omap_mcbsp_request function
ARM: OMAP: Add support for OMAP2430 in McBSP
ARM: OMAP: Add support for McBSP devices 3 - 5 on 34xx
ARM: OMAP: Allocate McBSP devices dynamically
Fix sections for omap-mcbsp platform driver
[ARM] S3C24XX: Additional include moves
...
Diffstat (limited to 'drivers/serial/8250.c')
-rw-r--r-- | drivers/serial/8250.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index d3ca7d32abe0..1528de23a650 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c | |||
@@ -2223,9 +2223,9 @@ serial8250_set_termios(struct uart_port *port, struct ktermios *termios, | |||
2223 | serial_outp(up, UART_EFR, efr); | 2223 | serial_outp(up, UART_EFR, efr); |
2224 | } | 2224 | } |
2225 | 2225 | ||
2226 | #ifdef CONFIG_ARCH_OMAP15XX | 2226 | #ifdef CONFIG_ARCH_OMAP |
2227 | /* Workaround to enable 115200 baud on OMAP1510 internal ports */ | 2227 | /* Workaround to enable 115200 baud on OMAP1510 internal ports */ |
2228 | if (cpu_is_omap1510() && is_omap_port((unsigned int)up->port.membase)) { | 2228 | if (cpu_is_omap1510() && is_omap_port(up)) { |
2229 | if (baud == 115200) { | 2229 | if (baud == 115200) { |
2230 | quot = 1; | 2230 | quot = 1; |
2231 | serial_out(up, UART_OMAP_OSC_12M_SEL, 1); | 2231 | serial_out(up, UART_OMAP_OSC_12M_SEL, 1); |
@@ -2278,18 +2278,27 @@ serial8250_pm(struct uart_port *port, unsigned int state, | |||
2278 | p->pm(port, state, oldstate); | 2278 | p->pm(port, state, oldstate); |
2279 | } | 2279 | } |
2280 | 2280 | ||
2281 | static unsigned int serial8250_port_size(struct uart_8250_port *pt) | ||
2282 | { | ||
2283 | if (pt->port.iotype == UPIO_AU) | ||
2284 | return 0x100000; | ||
2285 | #ifdef CONFIG_ARCH_OMAP | ||
2286 | if (is_omap_port(pt)) | ||
2287 | return 0x16 << pt->port.regshift; | ||
2288 | #endif | ||
2289 | return 8 << pt->port.regshift; | ||
2290 | } | ||
2291 | |||
2281 | /* | 2292 | /* |
2282 | * Resource handling. | 2293 | * Resource handling. |
2283 | */ | 2294 | */ |
2284 | static int serial8250_request_std_resource(struct uart_8250_port *up) | 2295 | static int serial8250_request_std_resource(struct uart_8250_port *up) |
2285 | { | 2296 | { |
2286 | unsigned int size = 8 << up->port.regshift; | 2297 | unsigned int size = serial8250_port_size(up); |
2287 | int ret = 0; | 2298 | int ret = 0; |
2288 | 2299 | ||
2289 | switch (up->port.iotype) { | 2300 | switch (up->port.iotype) { |
2290 | case UPIO_AU: | 2301 | case UPIO_AU: |
2291 | size = 0x100000; | ||
2292 | /* fall thru */ | ||
2293 | case UPIO_TSI: | 2302 | case UPIO_TSI: |
2294 | case UPIO_MEM32: | 2303 | case UPIO_MEM32: |
2295 | case UPIO_MEM: | 2304 | case UPIO_MEM: |
@@ -2323,12 +2332,10 @@ static int serial8250_request_std_resource(struct uart_8250_port *up) | |||
2323 | 2332 | ||
2324 | static void serial8250_release_std_resource(struct uart_8250_port *up) | 2333 | static void serial8250_release_std_resource(struct uart_8250_port *up) |
2325 | { | 2334 | { |
2326 | unsigned int size = 8 << up->port.regshift; | 2335 | unsigned int size = serial8250_port_size(up); |
2327 | 2336 | ||
2328 | switch (up->port.iotype) { | 2337 | switch (up->port.iotype) { |
2329 | case UPIO_AU: | 2338 | case UPIO_AU: |
2330 | size = 0x100000; | ||
2331 | /* fall thru */ | ||
2332 | case UPIO_TSI: | 2339 | case UPIO_TSI: |
2333 | case UPIO_MEM32: | 2340 | case UPIO_MEM32: |
2334 | case UPIO_MEM: | 2341 | case UPIO_MEM: |