mmc: core: Allow host controllers to require R1B for CMD6
authorUlf Hansson <ulf.hansson@linaro.org>
Tue, 24 Mar 2020 18:07:34 +0000 (19:07 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Apr 2020 09:01:27 +0000 (11:01 +0200)
commitd9c4f387e22a5795e32052dee978f801c14207bc
tree2b27cf977f1f9405e5e3cc7f7c7ad76364260bcf
parent462afcd6e7ea94a7027a96a3bb12d0140b0b4216
mmc: core: Allow host controllers to require R1B for CMD6

[ Upstream commit 1292e3efb149ee21d8d33d725eeed4e6b1ade963 ]

It has turned out that some host controllers can't use R1B for CMD6 and
other commands that have R1B associated with them. Therefore invent a new
host cap, MMC_CAP_NEED_RSP_BUSY to let them specify this.

In __mmc_switch(), let's check the flag and use it to prevent R1B responses
from being converted into R1. Note that, this also means that the host are
on its own, when it comes to manage the busy timeout.

Suggested-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Cc: <stable@vger.kernel.org>
Tested-by: Anders Roxell <anders.roxell@linaro.org>
Tested-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Tested-by: Faiz Abbas <faiz_abbas@ti.com>
Tested-By: Peter Geis <pgwipeout@gmail.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mmc/core/mmc_ops.c
include/linux/mmc/host.h