mmc: core: adjust polling interval for CMD1
In mmc_send_op_cond(), loops are continuously performed at the same
interval of 10 ms. However the behaviour is not good for some eMMC
which can be out from a busy state earlier than 10 ms if normal.
Rather than fixing about the interval time in mmc_send_op_cond(),
let's instead convert into using the common __mmc_poll_for_busy().
The reason for adjusting the interval time is that it is important
to reduce the eMMC initialization time, especially in devices that
use eMMC as rootfs.
Test log(eMMC:KLM8G1GETF-B041):
before: 12 ms (0.311016 - 0.298729)
[ 0.295823] mmc0: starting CMD0 arg
00000000 flags
000000c0
[ 0.298729] mmc0: starting CMD1 arg
40000080 flags
000000e1<-start
[ 0.311016] mmc0: starting CMD1 arg
40000080 flags
000000e1<-finish
[ 0.311336] mmc0: starting CMD2 arg
00000000 flags
00000007
after: 2 ms (0.301270 - 0.298762)
[ 0.295862] mmc0: starting CMD0 arg
00000000 flags
000000c0
[ 0.298762] mmc0: starting CMD1 arg
40000080 flags
000000e1<-start
[ 0.299067] mmc0: starting CMD1 arg
40000080 flags
000000e1
[ 0.299441] mmc0: starting CMD1 arg
40000080 flags
000000e1
[ 0.299879] mmc0: starting CMD1 arg
40000080 flags
000000e1
[ 0.300446] mmc0: starting CMD1 arg
40000080 flags
000000e1
[ 0.301270] mmc0: starting CMD1 arg
40000080 flags
000000e1<-finish
[ 0.301572] mmc0: starting CMD2 arg
00000000 flags
00000007
Signed-off-by: Huijin Park <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Ulf Hansson <[email protected]>