slimbus: qcom-ngd-ctrl: drop PM runtime counter on transfer error paths

If transfer in qcom_slim_ngd_xfer_msg_sync() fails, we need to drop the
PM runtime usage counter to have it balanced.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20221118065246.6835-3-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Krzysztof Kozlowski 2022-11-18 06:52:36 +00:00 committed by Greg Kroah-Hartman
parent 97e1a53091
commit 63c60a226c

View File

@ -919,21 +919,29 @@ static int qcom_slim_ngd_xfer_msg_sync(struct slim_controller *ctrl,
DECLARE_COMPLETION_ONSTACK(done);
int ret, timeout;
pm_runtime_get_sync(ctrl->dev);
ret = pm_runtime_get_sync(ctrl->dev);
if (ret < 0)
goto pm_put;
txn->comp = &done;
ret = qcom_slim_ngd_xfer_msg(ctrl, txn);
if (ret)
return ret;
goto pm_put;
timeout = wait_for_completion_timeout(&done, HZ);
if (!timeout) {
dev_err(ctrl->dev, "TX timed out:MC:0x%x,mt:0x%x", txn->mc,
txn->mt);
return -ETIMEDOUT;
ret = -ETIMEDOUT;
goto pm_put;
}
return 0;
pm_put:
pm_runtime_put(ctrl->dev);
return ret;
}
static int qcom_slim_ngd_enable_stream(struct slim_stream_runtime *rt)