mmc: cmdq_hci: Remove runtime PM vote if request issuing fails
Remove the runtime PM vote if command-queue request processing fails. Otherwise, in case command-queue request preparation fails, the runtime PM votes go out of sync and sdhc platform device suspend might get blocked. Change-Id: Ibe95e1653f7558a7994b606922a1625b429d57f6 Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
This commit is contained in:
parent
af5f70355c
commit
17f54d16a1
1 changed files with 18 additions and 2 deletions
|
@ -805,7 +805,7 @@ static int cmdq_request(struct mmc_host *mmc, struct mmc_request *mrq)
|
|||
if (err) {
|
||||
pr_err("%s: failed to configure crypto: err %d tag %d\n",
|
||||
mmc_hostname(mmc), err, tag);
|
||||
goto out;
|
||||
goto ice_err;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -823,7 +823,7 @@ static int cmdq_request(struct mmc_host *mmc, struct mmc_request *mrq)
|
|||
if (err) {
|
||||
pr_err("%s: %s: failed to setup tx desc: %d\n",
|
||||
mmc_hostname(mmc), __func__, err);
|
||||
goto out;
|
||||
goto desc_err;
|
||||
}
|
||||
|
||||
cq_host->mrq_slot[tag] = mrq;
|
||||
|
@ -843,6 +843,22 @@ ring_doorbell:
|
|||
/* Commit the doorbell write immediately */
|
||||
wmb();
|
||||
|
||||
return err;
|
||||
|
||||
desc_err:
|
||||
if (cq_host->ops->crypto_cfg_end) {
|
||||
err = cq_host->ops->crypto_cfg_end(mmc, mrq);
|
||||
if (err) {
|
||||
pr_err("%s: failed to end ice config: err %d tag %d\n",
|
||||
mmc_hostname(mmc), err, tag);
|
||||
}
|
||||
}
|
||||
if (!(cq_host->caps & CMDQ_CAP_CRYPTO_SUPPORT) &&
|
||||
cq_host->ops->crypto_cfg_reset)
|
||||
cq_host->ops->crypto_cfg_reset(mmc, tag);
|
||||
ice_err:
|
||||
if (err)
|
||||
cmdq_runtime_pm_put(cq_host);
|
||||
out:
|
||||
return err;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue