Message ID | 20200602043637.5317-1-navid.emamdoost@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | spi: spi-ti-qspi: call pm_runtime_put on pm_runtime_get failure | expand |
On Mon, Jun 01, 2020 at 11:36:37PM -0500, Navid Emamdoost wrote: > The counter is incremented via pm_runtime_get even in failure case. > To correct the counter call pm_runtime_put in case of failure, too. Someone already sent a fix for this but in any case this isn't the correct fix - pm_runtime_put() will also undo the pm_runtime_resume() that pm_runtime_get() failed to do which is wrong. pm_runtime_idle() is what you're looking for.
diff --git a/drivers/spi/spi-ti-qspi.c b/drivers/spi/spi-ti-qspi.c index 366a3e5cca6b..dfb811c5ef76 100644 --- a/drivers/spi/spi-ti-qspi.c +++ b/drivers/spi/spi-ti-qspi.c @@ -174,6 +174,7 @@ static int ti_qspi_setup(struct spi_device *spi) ret = pm_runtime_get_sync(qspi->dev); if (ret < 0) { + pm_runtime_put_autosuspend(qspi->dev); dev_err(qspi->dev, "pm_runtime_get_sync() failed\n"); return ret; }
The counter is incremented via pm_runtime_get even in failure case. To correct the counter call pm_runtime_put in case of failure, too. Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> --- drivers/spi/spi-ti-qspi.c | 1 + 1 file changed, 1 insertion(+)