Signed-off-by: Eric Nelson <[EMAIL PROTECTED]>
UART_DAVINCI_PWREMU is a 2-byte register, but davinci_serial_outp only
writes a single byte.
diff --git a/arch/arm/mach-davinci/serial.c b/arch/arm/mach-davinci/serial.c
index d0e7c52..4758a28 100644
--- a/arch/arm/mach-davinci/serial.c
+++ b/arch/arm/mach-davinci/serial.c
@@ -42,13 +42,20 @@ static inline unsigned int davinci_serial_in(struct
plat_serial8250_port *up,
return (unsigned int)__raw_readb(up->membase + offset);
}
-static inline void davinci_serial_outp(struct plat_serial8250_port *p,
+static inline void davinci_serial_outb(struct plat_serial8250_port *p,
int offset, int value)
{
offset <<= p->regshift;
__raw_writeb(value, p->membase + offset);
}
+static inline void davinci_serial_outs(struct plat_serial8250_port *p,
+ int offset, int value)
+{
+ offset <<= p->regshift;
+ __raw_writew(value, p->membase + offset);
+}
+
static struct plat_serial8250_port serial_platform_data[] = {
{
.membase = (char *)IO_ADDRESS(DAVINCI_UART0_BASE),
@@ -77,14 +84,14 @@ static void __init davinci_serial_reset(struct
plat_serial8250_port *p)
/* reset both transmitter and receiver: bits 14,13 = UTRST, URRST */
unsigned int pwremu = 0;
- davinci_serial_outp(p, UART_IER, 0); /* disable all interrupts */
+ davinci_serial_outb(p, UART_IER, 0); /* disable all interrupts */
- davinci_serial_outp(p, UART_DAVINCI_PWREMU, pwremu);
+ davinci_serial_outs(p, UART_DAVINCI_PWREMU, pwremu);
mdelay(10);
pwremu |= (0x3 << 13);
pwremu |= 0x1;
- davinci_serial_outp(p, UART_DAVINCI_PWREMU, pwremu);
+ davinci_serial_outs(p, UART_DAVINCI_PWREMU, pwremu);
}
static int __init davinci_init(void)
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source