diff options
author | Adrian Hunter <adrian.hunter@intel.com> | 2017-08-10 15:08:06 +0300 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2017-08-30 14:02:01 +0200 |
commit | bf517d6fec719980fe3b7acd9670a68442a372b7 (patch) | |
tree | 4f965264412da3f37c5145d21ae7efc6eb281429 /drivers | |
parent | dc8d68bb6c6f7d7fb1aeb3450c0654598e4f4e52 (diff) | |
download | linux-stable-bf517d6fec719980fe3b7acd9670a68442a372b7.tar.gz linux-stable-bf517d6fec719980fe3b7acd9670a68442a372b7.tar.bz2 linux-stable-bf517d6fec719980fe3b7acd9670a68442a372b7.zip |
mmc: core: Add mmc_retune_hold_now()
mmc_return_hold() / mmc_retune_release() are used around a group of
commands to prevent re-tuning between the commands. Re-tuning can still
happen before the first command. In some cases, re-tuning must be
prevented entirely. Add mmc_retune_hold_now() for that purpose. It is
added in preparation for CQE support where it will be used by CQE recovery.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mmc/core/host.c | 6 | ||||
-rw-r--r-- | drivers/mmc/core/host.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c index 1503412f826c..ad88deb2e8f3 100644 --- a/drivers/mmc/core/host.c +++ b/drivers/mmc/core/host.c @@ -111,6 +111,12 @@ void mmc_retune_hold(struct mmc_host *host) host->hold_retune += 1; } +void mmc_retune_hold_now(struct mmc_host *host) +{ + host->retune_now = 0; + host->hold_retune += 1; +} + void mmc_retune_release(struct mmc_host *host) { if (host->hold_retune) diff --git a/drivers/mmc/core/host.h b/drivers/mmc/core/host.h index fb6a76a03833..77d6f60d1bf9 100644 --- a/drivers/mmc/core/host.h +++ b/drivers/mmc/core/host.h @@ -19,6 +19,7 @@ void mmc_unregister_host_class(void); void mmc_retune_enable(struct mmc_host *host); void mmc_retune_disable(struct mmc_host *host); void mmc_retune_hold(struct mmc_host *host); +void mmc_retune_hold_now(struct mmc_host *host); void mmc_retune_release(struct mmc_host *host); int mmc_retune(struct mmc_host *host); void mmc_retune_pause(struct mmc_host *host); |