diff options
author | Tom Rini <trini@kernel.crashing.org> | 2005-09-09 16:01:47 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-09 16:57:29 -0400 |
commit | 66b375bf7d9c995fd6169191c3862071e710f456 (patch) | |
tree | 3a6e724785c90a92c6a7a8159a6438d95cd912a9 /arch/ppc/boot | |
parent | 99cc2192132ab28c495d015ed2e95dc29e2a27ad (diff) |
[PATCH] ppc32: In the boot code, don't rely on BASE_BAUD directly
Modifies serial_init to get base baud rate from the rs_table entry instead
of BAUD_BASE. This patch eliminates duplication between the
SERIAL_PORT_DFNS macro and BAUD_BASE. Without the patch, if a port set the
baud rate in SERIAL_PORT_DFNS, but did not update BASE_BAUD, the BASE_BAUD
value would still be used.
Signed-off-by: Grant Likely <grant.likely@gdcanada.com>
Signed-off-by: Tom Rini <trini@kernel.crashing.org>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/ppc/boot')
-rw-r--r-- | arch/ppc/boot/common/ns16550.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/ppc/boot/common/ns16550.c b/arch/ppc/boot/common/ns16550.c index 9017c547a6f6..26818bbb6cff 100644 --- a/arch/ppc/boot/common/ns16550.c +++ b/arch/ppc/boot/common/ns16550.c | |||
@@ -23,7 +23,7 @@ static int shift; | |||
23 | 23 | ||
24 | unsigned long serial_init(int chan, void *ignored) | 24 | unsigned long serial_init(int chan, void *ignored) |
25 | { | 25 | { |
26 | unsigned long com_port; | 26 | unsigned long com_port, base_baud; |
27 | unsigned char lcr, dlm; | 27 | unsigned char lcr, dlm; |
28 | 28 | ||
29 | /* We need to find out which type io we're expecting. If it's | 29 | /* We need to find out which type io we're expecting. If it's |
@@ -43,6 +43,8 @@ unsigned long serial_init(int chan, void *ignored) | |||
43 | 43 | ||
44 | /* How far apart the registers are. */ | 44 | /* How far apart the registers are. */ |
45 | shift = rs_table[chan].iomem_reg_shift; | 45 | shift = rs_table[chan].iomem_reg_shift; |
46 | /* Base baud.. */ | ||
47 | base_baud = rs_table[chan].baud_base; | ||
46 | 48 | ||
47 | /* save the LCR */ | 49 | /* save the LCR */ |
48 | lcr = inb(com_port + (UART_LCR << shift)); | 50 | lcr = inb(com_port + (UART_LCR << shift)); |
@@ -62,9 +64,9 @@ unsigned long serial_init(int chan, void *ignored) | |||
62 | else { | 64 | else { |
63 | /* Input clock. */ | 65 | /* Input clock. */ |
64 | outb(com_port + (UART_DLL << shift), | 66 | outb(com_port + (UART_DLL << shift), |
65 | (BASE_BAUD / SERIAL_BAUD) & 0xFF); | 67 | (base_baud / SERIAL_BAUD) & 0xFF); |
66 | outb(com_port + (UART_DLM << shift), | 68 | outb(com_port + (UART_DLM << shift), |
67 | (BASE_BAUD / SERIAL_BAUD) >> 8); | 69 | (base_baud / SERIAL_BAUD) >> 8); |
68 | /* 8 data, 1 stop, no parity */ | 70 | /* 8 data, 1 stop, no parity */ |
69 | outb(com_port + (UART_LCR << shift), 0x03); | 71 | outb(com_port + (UART_LCR << shift), 0x03); |
70 | /* RTS/DTR */ | 72 | /* RTS/DTR */ |