mmc: block: Fixup busy detection while invoking stop cmd at recovery
authorUlf Hansson <ulf.hansson@linaro.org>
Tue, 14 Jan 2014 20:31:35 +0000 (21:31 +0100)
committerChris Ball <chris@printf.net>
Sun, 23 Feb 2014 15:41:11 +0000 (10:41 -0500)
commitbb5cba40dc7f079ea7ee3ae760b7c388b6eb5fc3
tree2a2ff4d4f77b1e82d115ce9b44cae87b4f919805
parent95a91298fc09db0c21193ace96d1934598dd92dd
mmc: block: Fixup busy detection while invoking stop cmd at recovery

When sending a stop command at the recovery path, use a R1B response
when the failing data request are a WRITE. Thus we also care about the
busy detection completion in this case.

For a failing READ request, we use a R1 response for the stop command,
since we don't need to care about busy detection in this case.

To align behavior between hosts supporting MMC_CAP_WAIT_WHILE_BUSY and
those who are not, we add a CMD13 polling method for the card's status.

We also respect whether the host has specified the max_busy_timeout,
which means we may fallback to CMD13 polling if the timeout is greater
than what the host are able to support.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <chris@printf.net>
drivers/mmc/card/block.c