mmc: Fix sd/sdio/mmc initialization frequency retries
Rewrite and clean up mmc_rescan() to properly retry frequencies lower
than 400kHz. Failures can happen both in sd_send_* calls and
mmc_attach_*. Break out "mmc_rescan_try_freq" from the frequency
selection loop. Symmetrize claim/release logic in mmc_attach_* API,
and move the sd_send_* calls there to make mmc_rescan easier to read.
Signed-off-by: Andy Ross <[email protected]>
Reviewed-and-Tested-by: Hein Tibosch <[email protected]>
Reviewed-by: Chris Ball <[email protected]>
Signed-off-by: Chris Ball <[email protected]>