]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
sunxi-mmc: don't double clock for new mode unconditionally
authorVasily Khoruzhick <anarsoul@gmail.com>
Sat, 10 Nov 2018 04:41:45 +0000 (20:41 -0800)
committerJagan Teki <jagan@amarulasolutions.com>
Thu, 22 Nov 2018 07:49:42 +0000 (13:19 +0530)
Comment in Linux driver says that clock needs to be doubled only
if we use DDR modes, moreover divider has to be set accordingly.

U-boot driver doesn't declare support for any DDR modes and doesn't
set internal clock divider in CLKCR, so it doubles clock
unconditionally when new mode is used.

Some cards can't handle that and as result SPL fails to load u-boot.

Fixes: de9b1771c3b ("mmc: sunxi: Support new mode")
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Reviewed-by: Jagan Teki <jagan@openedev.com>
Tested-by: Jagan Teki <jagan@amarulasolutions.com> # Amarula A64-Relic
drivers/mmc/sunxi_mmc.c

index b3526f5e3fa0b42a5e303c92bbbc7e4255a17ebd..e50b2c3343195847b2d800228cc6d808c97c801b 100644 (file)
@@ -109,13 +109,6 @@ static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz)
        calibrate = true;
 #endif
 
-       /*
-        * The MMC clock has an extra /2 post-divider when operating in the new
-        * mode.
-        */
-       if (new_mode)
-               hz = hz * 2;
-
        if (hz <= 24000000) {
                pll = CCM_MMC_CTRL_OSCM24;
                pll_hz = 24000000;