spi: imx: fix the unbalanced spi runtime pm management
authorClark Wang <xiaoning.wang@nxp.com>
Tue, 24 Nov 2020 08:52:47 +0000 (16:52 +0800)
committerMark Brown <broonie@kernel.org>
Tue, 24 Nov 2020 14:14:02 +0000 (14:14 +0000)
If set active without increase the usage count of pm, the dont use
autosuspend function will call the suspend callback to close the two
clocks of spi because the usage count is reduced to -1.
This will cause the warning dump below when the defer-probe occurs.

[  129.379701] ecspi2_root_clk already disabled
[  129.384005] WARNING: CPU: 1 PID: 33 at drivers/clk/clk.c:952 clk_core_disable+0xa4/0xb0

So add the get noresume function before set active.

Fixes: 43b6bf406cd0 spi: imx: fix runtime pm support for !CONFIG_PM
Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Link: https://lore.kernel.org/r/20201124085247.18025-1-xiaoning.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-imx.c

index 4b80e27ecdbf9aed3cf4bdecab7e7c0e7f74974e..0b597905ee72c6373a7c4e0f6c59872a751e51be 100644 (file)
@@ -1686,6 +1686,7 @@ static int spi_imx_probe(struct platform_device *pdev)
 
        pm_runtime_set_autosuspend_delay(spi_imx->dev, MXC_RPM_TIMEOUT);
        pm_runtime_use_autosuspend(spi_imx->dev);
+       pm_runtime_get_noresume(spi_imx->dev);
        pm_runtime_set_active(spi_imx->dev);
        pm_runtime_enable(spi_imx->dev);