UPSTREAM: mmc: mmc: use ops->card_busy() to check card status in __mmc_switch()
authorChaotian Jing <chaotian.jing@mediatek.com>
Thu, 19 May 2016 08:47:40 +0000 (16:47 +0800)
committerZiyuan Xu <xzy.xu@rock-chips.com>
Fri, 12 Aug 2016 01:34:03 +0000 (09:34 +0800)
commit32b3741eea1b7cd1b99eb4537b49f5fcc0f7d2e3
treef3dbcb7f07d3dad03367c39f569673eab9920137
parent6f3b9fbe7aaa56046335a331a95547ff09c2c3de
UPSTREAM: mmc: mmc: use ops->card_busy() to check card status in __mmc_switch()

some MMC host do not support MMC_CAP_WAIT_WHILE_BUSY but provides
ops->card_busy(), So, add this method to check card status after
switch command.

This patch also fix CMD23 command response timeout which found on
evb-rk3288.

[   13.725563  ] mmcblk0: timed out sending SET_BLOCK_COUNT
command,card status 0x400e00
[   13.733328  ] mmcblk0: command error, retrying timeout
[   13.741792  ] mmcblk0: timed out sending SET_BLOCK_COUNT command,card
status 0x400e00
[   13.749555  ] mmcblk0: command error, retrying timeout
[   13.758246  ] mmcblk0: timed out sending SET_BLOCK_COUNT command,card
status 0x400e00

(cherry picked from commit 87a18a6a565271a886d48df49e5e27ba99e26c60)

Change-Id: I7e1b0f0001639e0b43d4a6951148ed5f625e18dd
Signed-off-by: Chaotian Jing <chaotian.jing@mediatek.com>
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
drivers/mmc/core/mmc_ops.c