linux/drivers/mmc
Douglas Anderson 93c23ae385 mmc: dw_mmc: Cleanup the DTO timer like the CTO one
The recent CTO timer introduced in commit 03de19212e ("mmc: dw_mmc:
introduce timer for broken command transfer over scheme") was causing
observable problems due to race conditions.  Previous patches have
fixed those race conditions.

It can be observed that these same race conditions ought to be
theoretically possible with the DTO timer too though they are
massively less likely to happen because the data timeout is always set
to 0xffffff right now.  That means even at a 200 MHz card clock we
were arming the DTO timer for 94 ms:
  >>> (0xffffff * 1000. / 200000000) + 10
  93.886075

We always also were setting the DTO timer _after_ starting the
transfer, unlike how the old code was seting the CTO timer.

In any case, even though the DTO timer is much less likely to have
races, it still makes sense to add code to handle it _just in case_.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2017-11-02 15:20:41 +01:00
..
core mmc: parse new binding for eMMC fixed driver type 2017-10-30 11:50:38 +01:00
host mmc: dw_mmc: Cleanup the DTO timer like the CTO one 2017-11-02 15:20:41 +01:00
Kconfig mmc: Kconfig: downgrade CONFIG_MMC_DEBUG for host drivers only 2017-08-30 14:01:34 +02:00
Makefile mmc: Kconfig: downgrade CONFIG_MMC_DEBUG for host drivers only 2017-08-30 14:01:34 +02:00