|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] ns16550: make some initialisation common
commit a0eddd939d6e11e71a6fbfe4fe8329fd80194275
Author: Ian Campbell <ian.campbell@xxxxxxxxxx>
AuthorDate: Wed Mar 26 11:55:55 2014 +0000
Commit: Ian Campbell <ian.campbell@xxxxxxxxxx>
CommitDate: Wed Apr 2 14:08:25 2014 +0100
ns16550: make some initialisation common
Should avoid accidents like forgetting to init lsr_mask for DT devices in
the
future.
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Acked-by: Julien Grall <julien.grall@xxxxxxxxxx>
Acked-by: Keir Fraser <keir@xxxxxxx>
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
---
xen/drivers/char/ns16550.c | 35 +++++++++++++++++++----------------
1 files changed, 19 insertions(+), 16 deletions(-)
diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index 2dd32b2..44e13b7 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -1076,6 +1076,21 @@ static void __init ns16550_parse_port_config(
serial_register_uart(uart - ns16550_com, &ns16550_driver, uart);
}
+static void ns16550_init_common(struct ns16550 *uart)
+{
+ uart->clock_hz = UART_CLOCK_HZ;
+
+#ifdef HAS_PCI
+ uart->enable_ro = 0;
+#endif
+
+ /* Default is no transmit FIFO. */
+ uart->fifo_size = 1;
+
+ /* Default lsr_mask = UART_LSR_THRE */
+ uart->lsr_mask = UART_LSR_THRE;
+}
+
void __init ns16550_init(int index, struct ns16550_defaults *defaults)
{
struct ns16550 *uart;
@@ -1085,10 +1100,11 @@ void __init ns16550_init(int index, struct
ns16550_defaults *defaults)
uart = &ns16550_com[index];
+ ns16550_init_common(uart);
+
uart->baud = (defaults->baud ? :
console_has((index == 0) ? "com1" : "com2")
? BAUD_AUTO : 0);
- uart->clock_hz = UART_CLOCK_HZ;
uart->data_bits = defaults->data_bits;
uart->parity = parse_parity_char(defaults->parity);
uart->stop_bits = defaults->stop_bits;
@@ -1098,16 +1114,6 @@ void __init ns16550_init(int index, struct
ns16550_defaults *defaults)
uart->reg_width = 1;
uart->reg_shift = 0;
-#ifdef HAS_PCI
- uart->enable_ro = 0;
-#endif
-
- /* Default is no transmit FIFO. */
- uart->fifo_size = 1;
-
- /* Default lsr_mask = UART_LSR_THRE */
- uart->lsr_mask = UART_LSR_THRE;
-
ns16550_parse_port_config(uart, (index == 0) ? opt_com1 : opt_com2);
}
@@ -1122,15 +1128,12 @@ static int __init ns16550_uart_dt_init(struct
dt_device_node *dev,
uart = &ns16550_com[0];
+ ns16550_init_common(uart);
+
uart->baud = BAUD_AUTO;
- uart->clock_hz = UART_CLOCK_HZ;
uart->data_bits = 8;
uart->parity = UART_PARITY_NONE;
uart->stop_bits = 1;
- /* Default is no transmit FIFO. */
- uart->fifo_size = 1;
- /* Default lsr_mask = UART_LSR_THRE */
- uart->lsr_mask = UART_LSR_THRE;
res = dt_device_get_address(dev, 0, &uart->io_base, &io_size);
if ( res )
--
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 |