diff options
author | Andre Przywara <andre.przywara@arm.com> | 2014-09-17 14:49:48 +0100 |
---|---|---|
committer | Graeme Gregory <graeme.gregory@linaro.org> | 2015-02-16 09:28:59 +0000 |
commit | 66f0930b4806dd54d6bfd9ec0f03c38dd9f59953 (patch) | |
tree | f57d3ff47084c1112d99ac65e5ee7f24c87c4ec2 | |
parent | e146fd5e54c9ec49e8ca0563524ffcb918dc53fe (diff) |
drivers: PL011: allow to supply fixed option string
The SBSA UART has a fixed baud rate and flow control setting, which
cannot be changed or queried by software.
Add a vendor specific property to always return fixed values when
trying to read the console options.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-rw-r--r-- | drivers/tty/serial/amba-pl011.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c index 833c39971d55..a1c929f269df 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -79,6 +79,7 @@ struct vendor_data { bool dma_threshold; bool cts_event_workaround; bool always_enabled; + char *fixed_options; unsigned int (*get_fifosize)(struct amba_device *dev); }; @@ -96,6 +97,7 @@ static struct vendor_data vendor_arm = { .dma_threshold = false, .cts_event_workaround = false, .always_enabled = false, + .fixed_options = NULL, .get_fifosize = get_fifosize_arm, }; @@ -112,6 +114,7 @@ static struct vendor_data vendor_st = { .dma_threshold = true, .cts_event_workaround = true, .always_enabled = false, + .fixed_options = NULL, .get_fifosize = get_fifosize_st, }; @@ -2109,6 +2112,9 @@ static int __init pl011_console_setup(struct console *co, char *options) uap->port.uartclk = clk_get_rate(uap->clk); + if (!options && uap->vendor->fixed_options) + options = uap->vendor->fixed_options; + if (options) uart_parse_options(options, &baud, &parity, &bits, &flow); else |