diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-04-29 15:16:17 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-04-29 15:16:17 -0400 |
commit | 507ffe4f3840ac24890a8123c702cf1b7fe4d33c (patch) | |
tree | 1046888f9db00f268a0056d7f6e427e21502f84c /drivers/tty/serial/of_serial.c | |
parent | fdc719b63ae35d6a2d8a2a2c76eed813294664bf (diff) | |
parent | 45efcb2d32d35f6509543e477568842d8467035d (diff) |
Merge tag 'tty-3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull tty/serial driver update from Greg Kroah-Hartman:
"Here's the big tty/serial driver merge request for 3.10-rc1
Once again, Jiri has a number of TTY driver fixes and cleanups, and
Peter Hurley came through with a bunch of ldisc fixes that resolve a
number of reported issues. There are some other serial driver
cleanups as well.
All of these have been in the linux-next tree for a while"
* tag 'tty-3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (117 commits)
tty/serial/sirf: fix MODULE_DEVICE_TABLE
serial: mxs: drop superfluous {get|put}_device
serial: mxs: fix buffer overflow
ARM: PL011: add support for extended FIFO-size of PL011-r1p5
serial_core.c: add put_device() after device_find_child()
tty: Fix unsafe bit ops in tty_throttle_safe/unthrottle_safe
serial: sccnxp: Replace pdata.init/exit with regulator API
serial: sccnxp: Do not override device name
TTY: pty, fix compilation warning
TTY: rocket, fix compilation warning
TTY: ircomm: fix DTR being raised on hang up
TTY: synclinkmp: fix DTR being raised on hang up
TTY: synclink_gt: fix DTR being raised on hang up
TTY: synclink: fix DTR being raised on hang up
serial: 8250_dw: Fix the stub for dw8250_probe_acpi()
serial: 8250_dw: Convert to devm_ioremap()
serial: 8250_dw: Set port capabilities based on CPR register
serial: 8250_dw: Let ACPI code extract the DMA client info
serial: 8250_dw: Support clk framework also with ACPI
serial: 8250_dw: Enable runtime PM
...
Diffstat (limited to 'drivers/tty/serial/of_serial.c')
-rw-r--r-- | drivers/tty/serial/of_serial.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/drivers/tty/serial/of_serial.c b/drivers/tty/serial/of_serial.c index b025d5438275..39c7ea4cb14f 100644 --- a/drivers/tty/serial/of_serial.c +++ b/drivers/tty/serial/of_serial.c | |||
@@ -14,7 +14,6 @@ | |||
14 | #include <linux/slab.h> | 14 | #include <linux/slab.h> |
15 | #include <linux/delay.h> | 15 | #include <linux/delay.h> |
16 | #include <linux/serial_core.h> | 16 | #include <linux/serial_core.h> |
17 | #include <linux/serial_8250.h> | ||
18 | #include <linux/serial_reg.h> | 17 | #include <linux/serial_reg.h> |
19 | #include <linux/of_address.h> | 18 | #include <linux/of_address.h> |
20 | #include <linux/of_irq.h> | 19 | #include <linux/of_irq.h> |
@@ -22,6 +21,8 @@ | |||
22 | #include <linux/nwpserial.h> | 21 | #include <linux/nwpserial.h> |
23 | #include <linux/clk.h> | 22 | #include <linux/clk.h> |
24 | 23 | ||
24 | #include "8250/8250.h" | ||
25 | |||
25 | struct of_serial_info { | 26 | struct of_serial_info { |
26 | struct clk *clk; | 27 | struct clk *clk; |
27 | int type; | 28 | int type; |
@@ -97,6 +98,10 @@ static int of_platform_serial_setup(struct platform_device *ofdev, | |||
97 | if (of_property_read_u32(np, "reg-shift", &prop) == 0) | 98 | if (of_property_read_u32(np, "reg-shift", &prop) == 0) |
98 | port->regshift = prop; | 99 | port->regshift = prop; |
99 | 100 | ||
101 | /* Check for fifo size */ | ||
102 | if (of_property_read_u32(np, "fifo-size", &prop) == 0) | ||
103 | port->fifosize = prop; | ||
104 | |||
100 | port->irq = irq_of_parse_and_map(np, 0); | 105 | port->irq = irq_of_parse_and_map(np, 0); |
101 | port->iotype = UPIO_MEM; | 106 | port->iotype = UPIO_MEM; |
102 | if (of_property_read_u32(np, "reg-io-width", &prop) == 0) { | 107 | if (of_property_read_u32(np, "reg-io-width", &prop) == 0) { |
@@ -167,11 +172,17 @@ static int of_platform_serial_probe(struct platform_device *ofdev) | |||
167 | #ifdef CONFIG_SERIAL_8250 | 172 | #ifdef CONFIG_SERIAL_8250 |
168 | case PORT_8250 ... PORT_MAX_8250: | 173 | case PORT_8250 ... PORT_MAX_8250: |
169 | { | 174 | { |
170 | /* For now the of bindings don't support the extra | ||
171 | 8250 specific bits */ | ||
172 | struct uart_8250_port port8250; | 175 | struct uart_8250_port port8250; |
173 | memset(&port8250, 0, sizeof(port8250)); | 176 | memset(&port8250, 0, sizeof(port8250)); |
174 | port8250.port = port; | 177 | port8250.port = port; |
178 | |||
179 | if (port.fifosize) | ||
180 | port8250.capabilities = UART_CAP_FIFO; | ||
181 | |||
182 | if (of_property_read_bool(ofdev->dev.of_node, | ||
183 | "auto-flow-control")) | ||
184 | port8250.capabilities |= UART_CAP_AFE; | ||
185 | |||
175 | ret = serial8250_register_8250_port(&port8250); | 186 | ret = serial8250_register_8250_port(&port8250); |
176 | break; | 187 | break; |
177 | } | 188 | } |