On Tue, 10 Mar 2020 at 16:33, Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote: > > 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! Tested-by: Anders Roxell <anders.roxell@xxxxxxxxxx> I tested it on a beagleboard x15. Cheers, Anders > > 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 >