[RFC PATCH 00/13] mmc: host: Add facility to support re-tuning

Adrian Hunter
2014-12-05T17:43:16Z

Hi

Here are some patches to move re-tuning support out of
sdhci and into the core, and add support for HS400
re-tuning.

Currently sdhci does re-tuning transparently by
calling sdhci_execute_tuning() from its ->request()
function.

The problem with HS400 re-tuning is that it must be
done in HS200 mode. That means using switch commands
and making ios changes. That means it potentially
conflicts with other command sequences. The new
re-tuning support accomodates that, however it is
not strictly necessary because HS400 re-tuning
should only be needed after runtime suspend when
there would not be a conflict.

Nevertheless, this approach has more structure
and potentially more flexibility.

Adrian Hunter (13):
mmc: core: Simplify by adding mmc_execute_tuning()
mmc: host: Add facility to support re-tuning
mmc: core: Disable re-tuning when card is no longer initialized
mmc: core: Move mmc_card_removed() into mmc_start_request()
mmc: core: Add support for re-tuning before each request
mmc: core: Check re-tuning before retrying
mmc: core: Hold re-tuning during switch commands
mmc: core: Hold re-tuning during erase commands
mmc: core: Hold re-tuning while bkops ongoing
mmc: mmc: Comment that callers need to hold re-tuning if the card is put to sleep
mmc: core: Add support for HS400 re-tuning
mmc: sdhci: Always init buf_ready_int
mmc: sdhci: Change to new way of doing re-tuning

drivers/mmc/core/core.c | 93 +++++++++++++++++++++++++++++++-----
drivers/mmc/core/core.h | 5 ++
drivers/mmc/core/host.c | 63 +++++++++++++++++++++++++
drivers/mmc/core/mmc.c | 58 ++++++++++++++++++-----
drivers/mmc/core/mmc_ops.c | 31 ++++++++----
drivers/mmc/core/sd.c | 13 ++---
drivers/mmc/core/sdio.c | 14 ++----
drivers/mmc/host/sdhci.c | 115 ++++++---------------------------------------
include/linux/mmc/host.h | 58 +++++++++++++++++++++++
include/linux/mmc/sdhci.h | 3 --
10 files changed, 296 insertions(+), 157 deletions(-)

Regards
Adrian