Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 29eba0a6 authored by Adrian Hunter's avatar Adrian Hunter Committed by Veerabhadrarao Badiganti
Browse files

mmc: core: Add support for re-tuning before each request



At the start of each request, re-tune if needed and
then hold off re-tuning again until the request is done.

Note that though there is one function that starts
requests (mmc_start_request) there are two that wait for
the request to be done (mmc_wait_for_req_done and
mmc_wait_for_data_req_done).  Also note that
mmc_wait_for_data_req_done can return even when the
request is not done (which allows the block driver
to prepare a newly arrived request while still
waiting for the previous request).

This patch ensures re-tuning is held for the duration
of a request.  Subsequent patches will also hold
re-tuning at other times when it might cause a
conflict.

In addition, possibly a command is failing because
re-tuning is needed. Use mmc_retune_recheck() to check
re-tuning. At that point re-tuning is held, at least by
the request, so mmc_retune_recheck() flags host->retune_now
if the hold count is 1.

Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Git-commit: 90a81489b0a9d7b56df2dcf68498fd3a03deb354
Git-repo: git://git.linaro.org/people/ulf.hansson/mmc.git


Change-Id: Ib5d25e017657eb7dfab47c869ce7a3b23be5d1e5
Signed-off-by: default avatarVeerabhadrarao Badiganti <vbadigan@codeaurora.org>
parent 8e19c8cb
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment