Thread (11 messages) 11 messages, 2 authors, 2015-08-11

Re: [PATCHv2 6/8] serial: imx: add runtime pm support

From: Eduardo Valentin <edubezval@gmail.com>
Date: 2015-08-11 16:51:39
Also in: linux-pm, lkml

On Tue, Aug 11, 2015 at 12:02:58AM -0300, Fabio Estevam wrote:
On Mon, Aug 10, 2015 at 10:35 PM, Eduardo Valentin [off-list ref] wrote:
quoted
 static int imx_poll_get_char(struct uart_port *port)
 {
-       if (!(readl_relaxed(port->membase + USR2) & USR2_RDR))
-               return NO_POLL_CHAR;
+       int ret;
+
+       pm_runtime_get_sync(sport->dev);
+       if (!(readl_relaxed(port->membase + USR2) & USR2_RDR)) {
+               ret = NO_POLL_CHAR;
+               goto mark_last;
+       }

-       return readl_relaxed(port->membase + URXD0) & URXD_RX_DATA;
+       ret = readl_relaxed(port->membase + URXD0) & URXD_RX_DATA;
+
+mark_last:
+       pm_runtime_mark_last_busy(sport->dev);
+       pm_runtime_put_autosuspend(sport->dev);
You should return ret here.
quoted
+static int serial_imx_runtime_resume(struct device *dev)
+{
+       struct imx_port *sport = dev_get_drvdata(dev);
+
+       clk_enable(sport->clk_per);
clk_enable() may fail.
quoted
+       clk_enable(sport->clk_ipg);
Same here.
quoted
@@ -2096,6 +2212,8 @@ static int imx_serial_port_resume(struct device *dev)
        struct platform_device *pdev = to_platform_device(dev);
        struct imx_port *sport = platform_get_drvdata(pdev);

+       clk_prepare_enable(sport->clk_per);
clk_prepare_enable() may fail.
quoted
+       clk_prepare_enable(sport->clk_ipg);
Ditto.

agreed on all. resending this one with the above suggestions/fixes applied.

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help