OpenCloudOS-Kernel/drivers/mmc/core
Adrian Hunter 90a81489b0 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: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2015-06-01 09:06:54 +02:00
..
Kconfig mmc: core: Use MMC_UNSAFE_RESUME as default behavior 2014-02-13 22:58:15 -05:00
Makefile mmc: pwrseq: add driver for emmc hardware reset 2015-02-04 09:45:09 +01:00
bus.c Revert "mmc: core: Convert mmc_driver to device_driver" 2015-04-17 11:48:01 +02:00
bus.h mmc: rename dev_to_mmc_card() to mmc_dev_to_card() 2010-10-23 21:11:12 +08:00
core.c mmc: core: Add support for re-tuning before each request 2015-06-01 09:06:54 +02:00
core.h mmc: core: Simplify by adding mmc_execute_tuning() 2015-01-19 09:56:30 +01:00
debugfs.c mmc: core: Use mmc_get_ext_csd() instead of mmc_send_ext_csd() 2014-11-10 12:40:44 +01:00
host.c mmc: host: Add facility to support re-tuning 2015-06-01 09:06:53 +02:00
host.h mmc: host: Add facility to support re-tuning 2015-06-01 09:06:53 +02:00
mmc.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2015-04-14 09:50:27 -07:00
mmc_ops.c mmc: core: Make tuning block patterns static 2015-01-19 09:56:24 +01:00
mmc_ops.h mmc: core: Add helper function for EXT_CSD support 2014-11-10 12:40:41 +01:00
pwrseq.c mmc: pwrseq: Fix error code propagation in mmc_pwrseq_simple_alloc() 2015-04-17 10:17:19 +02:00
pwrseq.h mmc: pwrseq: simplify alloc/free hooks 2015-03-23 14:13:42 +01:00
pwrseq_emmc.c mmc: pwrseq: simplify alloc/free hooks 2015-03-23 14:13:42 +01:00
pwrseq_simple.c mmc: pwrseq: simplify alloc/free hooks 2015-03-23 14:13:42 +01:00
quirks.c mmc: quirks: Fixup debug message 2014-07-09 11:26:03 +02:00
sd.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2015-04-14 09:50:27 -07:00
sd.h mmc: drop the speed mode of card's state 2014-05-12 18:05:53 -04:00
sd_ops.c mmc: sd: warn if card stays busy during init 2014-07-09 11:26:07 +02:00
sd_ops.h mmc: add erase, secure erase, trim and secure trim operations 2010-08-12 08:43:30 -07:00
sdio.c mmc: core: Enable / disable re-tuning 2015-06-01 09:06:54 +02:00
sdio_bus.c mmc: Add SDIO function devicetree subnode parsing 2015-01-19 09:56:26 +01:00
sdio_bus.h mmc: basic SDIO device model 2007-09-23 19:45:31 +02:00
sdio_cis.c mmc: sdio: Change pr_warning to pr_warn_ratelimited 2012-07-22 15:25:48 -04:00
sdio_cis.h sdio: split up common and function CIS parsing 2007-09-23 20:44:22 +02:00
sdio_io.c mmc: sdio: Use multiple scatter/gather list 2012-12-06 13:54:43 -05:00
sdio_irq.c mmc: Convert pr_warning to pr_warn 2014-09-24 10:13:09 +02:00
sdio_ops.c mmc: sdio: Use multiple scatter/gather list 2012-12-06 13:54:43 -05:00
sdio_ops.h sdio: recognize io card without powercycle 2010-03-12 15:52:28 -08:00
slot-gpio.c mmc: slot-gpio: Allow host driver to provide isr for card-detect interrupts 2015-01-19 09:56:29 +01:00
slot-gpio.h mmc: slot-gpio: Make mmc_gpio_alloc() available for MMC core 2015-01-19 09:56:17 +01:00