Loading drivers/serial/8250.c +12 −5 Original line number Diff line number Diff line Loading @@ -682,8 +682,6 @@ static void autoconfig_16550a(struct uart_8250_port *up) * from EXCR1. Switch back to bank 0, change it in MCR. Then * switch back to bank 2, read it from EXCR1 again and check * it's changed. If so, set baud_base in EXCR2 to 921600. -- dwmw2 * On PowerPC we don't want to change baud_base, as we have * a number of different divisors. -- Tom Rini */ serial_outp(up, UART_LCR, 0); status1 = serial_in(up, UART_MCR); Loading @@ -699,16 +697,25 @@ static void autoconfig_16550a(struct uart_8250_port *up) serial_outp(up, UART_MCR, status1); if ((status2 ^ status1) & UART_MCR_LOOP) { #ifndef CONFIG_PPC unsigned short quot; serial_outp(up, UART_LCR, 0xE0); quot = serial_inp(up, UART_DLM) << 8; quot += serial_inp(up, UART_DLL); quot <<= 3; status1 = serial_in(up, 0x04); /* EXCR1 */ status1 &= ~0xB0; /* Disable LOCK, mask out PRESL[01] */ status1 |= 0x10; /* 1.625 divisor for baud_base --> 921600 */ serial_outp(up, 0x04, status1); serial_outp(up, UART_DLL, quot & 0xff); serial_outp(up, UART_DLM, quot >> 8); serial_outp(up, UART_LCR, 0); up->port.uartclk = 921600*16; #endif up->port.uartclk = 921600*16; up->port.type = PORT_NS16550A; up->capabilities |= UART_NATSEMI; return; Loading Loading
drivers/serial/8250.c +12 −5 Original line number Diff line number Diff line Loading @@ -682,8 +682,6 @@ static void autoconfig_16550a(struct uart_8250_port *up) * from EXCR1. Switch back to bank 0, change it in MCR. Then * switch back to bank 2, read it from EXCR1 again and check * it's changed. If so, set baud_base in EXCR2 to 921600. -- dwmw2 * On PowerPC we don't want to change baud_base, as we have * a number of different divisors. -- Tom Rini */ serial_outp(up, UART_LCR, 0); status1 = serial_in(up, UART_MCR); Loading @@ -699,16 +697,25 @@ static void autoconfig_16550a(struct uart_8250_port *up) serial_outp(up, UART_MCR, status1); if ((status2 ^ status1) & UART_MCR_LOOP) { #ifndef CONFIG_PPC unsigned short quot; serial_outp(up, UART_LCR, 0xE0); quot = serial_inp(up, UART_DLM) << 8; quot += serial_inp(up, UART_DLL); quot <<= 3; status1 = serial_in(up, 0x04); /* EXCR1 */ status1 &= ~0xB0; /* Disable LOCK, mask out PRESL[01] */ status1 |= 0x10; /* 1.625 divisor for baud_base --> 921600 */ serial_outp(up, 0x04, status1); serial_outp(up, UART_DLL, quot & 0xff); serial_outp(up, UART_DLM, quot >> 8); serial_outp(up, UART_LCR, 0); up->port.uartclk = 921600*16; #endif up->port.uartclk = 921600*16; up->port.type = PORT_NS16550A; up->capabilities |= UART_NATSEMI; return; Loading