[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] drivers/pl011: Don't configure baudrate
commit 2048e17ca9dfe0c05881368d7a1fd9e83e37ba9b Author: Shanker Donthineni <shankerd@xxxxxxxxxxxxxx> AuthorDate: Thu Jun 9 12:33:19 2016 -0500 Commit: Stefano Stabellini <sstabellini@xxxxxxxxxx> CommitDate: Mon Jun 20 10:55:15 2016 +0100 drivers/pl011: Don't configure baudrate The default baud and clock_hz configuration parameters are hardcoded (commit 60ff9444480995008caf) for Versatile Express. Other platforms, these default values may not be valid and might cause problems by programming registers IBRD and FBRD incorrectly. So, removing driver logic that sets the baudrate to fix the problem. The behavior is unchanged because the driver was already relying on the boot firmware for setting the correct baudrate. Signed-off-by: Shanker Donthineni <shankerd@xxxxxxxxxxxxxx> Reviewed-by: Julien Grall <julien.grall@xxxxxxx> Signed-off-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> --- xen/drivers/char/pl011.c | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/xen/drivers/char/pl011.c b/xen/drivers/char/pl011.c index 1212d5c..6a3c21b 100644 --- a/xen/drivers/char/pl011.c +++ b/xen/drivers/char/pl011.c @@ -31,7 +31,7 @@ #include <asm/io.h> static struct pl011 { - unsigned int baud, clock_hz, data_bits, parity, stop_bits; + unsigned int data_bits, parity, stop_bits; unsigned int irq; void __iomem *regs; /* UART with IRQ line: interrupt-driven I/O. */ @@ -84,7 +84,6 @@ static void pl011_interrupt(int irq, void *data, struct cpu_user_regs *regs) static void __init pl011_init_preirq(struct serial_port *port) { struct pl011 *uart = port->uart; - unsigned int divisor; unsigned int cr; /* No interrupts, please. */ @@ -93,22 +92,6 @@ static void __init pl011_init_preirq(struct serial_port *port) /* Definitely no DMA */ pl011_write(uart, DMACR, 0x0); - /* Line control and baud-rate generator. */ - if ( uart->baud != BAUD_AUTO ) - { - /* Baud rate specified: program it into the divisor latch. */ - divisor = (uart->clock_hz << 2) / uart->baud; /* clk << 6 / bd << 4 */ - pl011_write(uart, FBRD, divisor & 0x3f); - pl011_write(uart, IBRD, divisor >> 6); - } - else - { - /* Baud rate already set: read it out from the divisor latch. */ - divisor = (pl011_read(uart, IBRD) << 6) | (pl011_read(uart, FBRD)); - if (!divisor) - panic("pl011: No Baud rate configured\n"); - uart->baud = (uart->clock_hz << 2) / divisor; - } /* This write must follow FBRD and IBRD writes. */ pl011_write(uart, LCR_H, (uart->data_bits - 5) << 5 | FEN @@ -232,8 +215,6 @@ static int __init pl011_uart_init(int irq, u64 addr, u64 size) uart = &pl011_com; uart->irq = irq; - uart->clock_hz = 0x16e3600; - uart->baud = BAUD_AUTO; uart->data_bits = 8; uart->parity = PARITY_NONE; uart->stop_bits = 1; -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |