]> git.dujemihanovic.xyz Git - linux.git/commitdiff
DONOTMERGE: Hack: Hardcode eMMC to DDR_1_8V, to avoid initialization failure
authorblacksilver <blacksilver@debdan.net>
Mon, 18 Dec 2023 10:09:26 +0000 (11:09 +0100)
committerDuje Mihanović <duje.mihanovic@skole.hr>
Wed, 27 Dec 2023 15:38:22 +0000 (16:38 +0100)
Initialization of eMMC card QNW00A (HS200_1_8V) fails for unknown reason.

mmc0: SDHCI controller on d4281000.mmc [d4281000.mmc] using ADMA
mmc0: Card stuck being busy! __mmc_poll_for_busy
mmc0: error -110 whilst initialising MMC card
mmc0: Tuning failed, falling back to fixed sampling clock
mmc0: Card stuck being busy! __mmc_poll_for_busy
mmc0: error -110 whilst initialising MMC card
mmc0: Card stuck being busy! __mmc_poll_for_busy
mmc0: error -110 whilst initialising MMC card
mmc0: Card stuck being busy! __mmc_poll_for_busy
mmc0: error -110 whilst initialising MMC card
mmc0: Failed to initialize a non-removable card

drivers/mmc/core/mmc.c

index 705942edacc6a8b77e8208b910360758ebccd2c0..00443451c9e4c3617984a1627fb60454cb21aa5b 100644 (file)
@@ -215,6 +215,7 @@ static void mmc_select_card_type(struct mmc_card *card)
            card_type & EXT_CSD_CARD_TYPE_DDR_1_8V) {
                hs_max_dtr = MMC_HIGH_DDR_MAX_DTR;
                avail_type |= EXT_CSD_CARD_TYPE_DDR_1_8V;
+               goto out;
        }
 
        if (caps & MMC_CAP_1_2V_DDR &&
@@ -251,7 +252,7 @@ static void mmc_select_card_type(struct mmc_card *card)
            card->ext_csd.strobe_support &&
            (avail_type & EXT_CSD_CARD_TYPE_HS400))
                avail_type |= EXT_CSD_CARD_TYPE_HS400ES;
-
+out:
        card->ext_csd.hs_max_dtr = hs_max_dtr;
        card->ext_csd.hs200_max_dtr = hs200_max_dtr;
        card->mmc_avail_type = avail_type;