
This series brings some improvements related to the switch command: - use timeouts specified in the EXT_CSD instead of fixed values - retry switching partitions a few time before calling it a failure - make switching mode more reliable by checking the status of operation afterward. - make switching faster by using the DAT0 line as a ready/busy signal - Allow HS200/H400 modes with boot partitions. That didn't work well before because the switch was not reliable enough.
This has been tested on DRA76-evm and beaglebone black. Travis build: https://travis-ci.org/jjhiblot/u-boot/builds/550855605
Jean-Jacques Hiblot (11): mmc: omap_hsmmc: reset FSM for DAT and CMD lines if needed before a new command mmc: omap_hsmmc: don't fill the send_init_stream callback Revert "mmc: Add a new callback function to perform the 74 clocks cycle sequence" mmc: omap_hsmmc: provide wait_dat0 even if UHS modes are not supported mmc: add mmc_poll_for_busy() and change the purpose of mmc_send_status() mmc: if possible, poll the busy state using DAT0 mmc: use the generic timeout for cmd6 (SWITCH) provided in the ext_csd mmc: When switching partition, use the timeout specified in the ext_csd mmc: During a switch, poll on dat0 if available and check the final status mmc: do not change mode when accessing a boot partition mmc: retry a few times if a partition switch failed
drivers/mmc/mmc-uclass.c | 15 ---- drivers/mmc/mmc.c | 169 +++++++++++++++++++++----------------- drivers/mmc/mmc_private.h | 9 +- drivers/mmc/mmc_write.c | 4 +- drivers/mmc/omap_hsmmc.c | 26 ++---- include/mmc.h | 19 ++--- 6 files changed, 115 insertions(+), 127 deletions(-)