[PATCH] serial: imx: Fix suspend / resume.

Russell King - ARM Linux linux at arm.linux.org.uk
Mon Jan 4 11:10:14 PST 2016


On Mon, Jan 04, 2016 at 07:22:06PM +0100, Martin Fuzzey wrote:
> diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
> index 016e4be..16a551b 100644
> --- a/drivers/tty/serial/imx.c
> +++ b/drivers/tty/serial/imx.c
> @@ -2071,13 +2071,13 @@ static int imx_serial_port_suspend_noirq(struct device *dev)
>  	struct imx_port *sport = platform_get_drvdata(pdev);
>  	int ret;
>  
> -	ret = clk_enable(sport->clk_ipg);
> +	ret = clk_prepare_enable(sport->clk_ipg);
>  	if (ret)
>  		return ret;
>  
>  	serial_imx_save_context(sport);
>  
> -	clk_disable(sport->clk_ipg);
> +	clk_disable_unprepare(sport->clk_ipg);

NAK.  If this is _noirq, then it's a context which can't sleep.  Therefore,
calling functions that do sleep is not permitted.

> @@ -2088,13 +2088,13 @@ static int imx_serial_port_resume_noirq(struct device *dev)
>  	struct imx_port *sport = platform_get_drvdata(pdev);
>  	int ret;
>  
> -	ret = clk_enable(sport->clk_ipg);
> +	ret = clk_prepare_enable(sport->clk_ipg);
>  	if (ret)
>  		return ret;
>  
>  	serial_imx_restore_context(sport);
>  
> -	clk_disable(sport->clk_ipg);
> +	clk_disable_unprepare(sport->clk_ipg);

Ditto.

-- 
RMK's Patch system: http://www.arm.linux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.



More information about the linux-arm-kernel mailing list