spi: spi-msm-geni: Put device to suspend if PM status is active

This change is to keep the device to autosuspend only if runtime PM
status is not suspended. SPI driver resumes only if runtime PM is
active, if framework calls unprepare_message/unprepare_hardware and
if we try to keep driver to autosuspend, it may result into negative
usage count.

Also ensure for the PM calls, runtime is always enabled and if not, do
not call PM.

Change-Id: I8cf3f6deb776e282edce4b488e80c639d697374e
Signed-off-by: Mukesh Kumar Savaliya <msavaliy@codeaurora.org>
This commit is contained in:
Mukesh Kumar Savaliya 2021-05-25 09:57:49 +05:30 • committed by Gerrit - the friendly Code Review server
commit 495e53c971

View file

@ -1106,7 +1106,8 @@ static int spi_geni_unprepare_message(struct spi_master *spi_mas,
GENI_SE_ERR(mas->ipc, false, NULL,
"suspend usage count mismatch:%d",
count);
} else if (!pm_runtime_suspended(mas->dev)) {
} else if (!pm_runtime_status_suspended(mas->dev) &&
pm_runtime_enabled(mas->dev)) {
pm_runtime_mark_last_busy(mas->dev);
pm_runtime_put_autosuspend(mas->dev);
}
@ -1421,7 +1422,8 @@ static int spi_geni_unprepare_transfer_hardware(struct spi_master *spi)
if (count < 0)
GENI_SE_ERR(mas->ipc, false, NULL,
"suspend usage count mismatch:%d", count);
} else {
} else if (!pm_runtime_status_suspended(mas->dev) &&
pm_runtime_enabled(mas->dev)) {
pm_runtime_mark_last_busy(mas->dev);
pm_runtime_put_autosuspend(mas->dev);
}