diff options
author | Wolfram Sang <[email protected]> | 2020-09-14 13:28:45 +0200 |
---|---|---|
committer | Ulf Hansson <[email protected]> | 2020-09-14 13:57:59 +0200 |
commit | 878dbe426a564b164e6d25d21d4bc29a02e7fc2c (patch) | |
tree | 2c242a33e73b9e4240d6abe27eca9ca614d9941e | |
parent | a49e391c49c2ef3e8590030c522f195294532bad (diff) |
mmc: core: clear 'doing_init_tune' also after failures
Reorganize the code, so that the flag is always cleared independently of
a good or bad case.
Fixes: 97a7d87e96b0 ("mmc: core: add a 'doing_init_tune' flag and a 'mmc_doing_tune' helper")
Signed-off-by: Wolfram Sang <[email protected]>
Reviewed-by: Niklas Söderlund <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Ulf Hansson <[email protected]>
-rw-r--r-- | drivers/mmc/core/mmc.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index 67e95eba0e82..ff3063ce2acd 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -1766,14 +1766,14 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, host->doing_init_tune = 1; err = mmc_hs200_tuning(card); - if (err) - goto free_card; + if (!err) + err = mmc_select_hs400(card); + + host->doing_init_tune = 0; - err = mmc_select_hs400(card); if (err) goto free_card; - host->doing_init_tune = 0; } else if (!mmc_card_hs400es(card)) { /* Select the desired bus width optionally */ err = mmc_select_bus_width(card); |