diff options
| author | Jim Wylder <jwylder@motorola.com> | 2014-07-28 16:02:17 -0500 |
|---|---|---|
| committer | Jim Wylder <jwylder@motorola.com> | 2014-07-28 16:59:21 -0500 |
| commit | ee5c3d5cbcb7726eff03c12efedc064a678be923 (patch) | |
| tree | 6e033bd2940a60ec98de97459885a60895447669 | |
| parent | 3386ca0b87e167f323010f487e7e40662dba6e18 (diff) | |
| download | olio-linux-3.10-ee5c3d5cbcb7726eff03c12efedc064a678be923.tar.xz olio-linux-3.10-ee5c3d5cbcb7726eff03c12efedc064a678be923.zip | |
IKXCLOCK-3293 tty: omap: support power->resume_noidle configuration
The omap-serial uart2, relies on the autosuspend timer to
ensure that it is ready to handle incoming data after an initial
wakeup. Use the resume_noidle to prevent device_complete from
truncating the timeout.
Change-Id: I81316ffe29afd00cb5404c4c195a3d4313611351
Signed-off-by: Jim Wylder <jwylder@motorola.com>
| -rw-r--r-- | Documentation/devicetree/bindings/serial/omap_serial.txt | 5 | ||||
| -rw-r--r-- | drivers/tty/serial/omap-serial.c | 9 |
2 files changed, 12 insertions, 2 deletions
diff --git a/Documentation/devicetree/bindings/serial/omap_serial.txt b/Documentation/devicetree/bindings/serial/omap_serial.txt index b4e9c8f7286..35fea37890e 100644 --- a/Documentation/devicetree/bindings/serial/omap_serial.txt +++ b/Documentation/devicetree/bindings/serial/omap_serial.txt @@ -10,3 +10,8 @@ Optional properties: - clock-frequency : frequency of the clock input to the UART - flags : an integer specifying the UPF flags of the uart port - ti,no-pm-qos: empty property that disables PM QoS for the UART + +- resume-noidle: device_complete should call pm_runtime_put_noidle + rather than pm_runtime_put. This prevents a bounce on serial + devices that require a strict autosuspend delay. + diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c index 625cf102cc3..178fc097af1 100644 --- a/drivers/tty/serial/omap-serial.c +++ b/drivers/tty/serial/omap-serial.c @@ -1565,9 +1565,14 @@ static int serial_omap_probe(struct platform_device *pdev) up->port.fifosize = 64; up->port.ops = &serial_omap_pops; - if (pdev->dev.of_node) + if (pdev->dev.of_node) { up->port.line = of_alias_get_id(pdev->dev.of_node, "serial"); - else + pdev->dev.power.resume_noidle = + of_property_read_bool(pdev->dev.of_node, + "resume-noidle"); + dev_info(&pdev->dev, "resume-noidle = %d\n", + pdev->dev.power.resume_noidle); + } else up->port.line = pdev->id; if (up->port.line < 0) { |