mci_mmc_select_hs_ddr() will try DDR52 and if that fails, revert to SDR operation. In that case, it returns the bus width, which would be forwarded as if it were an error code: WARNING: mmc2: Card's startup fails with 3 Fix this by translating successful return values to 0 in mci_startup_mmc(). Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- drivers/mci/mci-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c index 1d383e6449e9..57b4c5b99c9c 100644 --- a/drivers/mci/mci-core.c +++ b/drivers/mci/mci-core.c @@ -1566,7 +1566,7 @@ static int mci_startup_mmc(struct mci *mci) } } - return ret; + return ret >= MMC_BUS_WIDTH_1 ? 0 : ret; } /** -- 2.39.2