[PATCH 0/4] mmc: Fix busy detection timeouts for some SDHCI variant

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The mmc core may decide (for CMD6 and erase/trim/discard operations) to convert
from using an R1B response into using an R1 response, in cases when the needed
busy timeout exceeds the host's maximum supported HW max_busy_timeout. The core
does this to prevent the host from doing HW busy detection and instead rely on
polling, as to cope with the needed busy timeout.

However, it has turned out that some SDHCI variants (tegra, omap), really
requires R1B for all commands that have this response associated with them. This
became especially obvious when commit 24ed3bd01d6a ("mmc: core: Specify timeouts
for BKOPS and CACHE_FLUSH for eMMC") (and a few other commits on top) got
introduced in v5.6-rc1, as several people reported errors (thanks!). More
precisely, the mentioned commit triggered the existing problems described above
in the SDHCI variant drivers, when an eMMC cache flush command (CMD6) was
issued.

This series fixes these problems, but the changes are also targeted for stable
releases as the problems have existed since a long time back.

Please help out in testing this!

Kind regards
Ulf Hansson


Ulf Hansson (4):
  mmc: core: Allow host controllers to require R1B for CMD6
  mmc: core: Respect MMC_CAP_NEED_RSP_BUSY for erase/trim/discard
  mmc: sdhci-omap: Fix busy detection by enabling MMC_CAP_NEED_RSP_BUSY
  mmc: sdhci-tegra: Fix busy detection by enabling MMC_CAP_NEED_RSP_BUSY

 drivers/mmc/core/core.c        | 5 ++++-
 drivers/mmc/core/mmc_ops.c     | 6 ++++--
 drivers/mmc/host/sdhci-omap.c  | 3 +++
 drivers/mmc/host/sdhci-tegra.c | 3 +++
 include/linux/mmc/host.h       | 1 +
 5 files changed, 15 insertions(+), 3 deletions(-)

-- 
2.20.1




[Index of Archives]     [Linux Memonry Technology]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux