]> git.sur5r.net Git - u-boot/commitdiff
mmc: omap_hsmmc: cleanup omap_hsmmc_set_ios
authorKishon Vijay Abraham I <kishon@ti.com>
Tue, 30 Jan 2018 15:01:31 +0000 (16:01 +0100)
committerJaehoon Chung <jh80.chung@samsung.com>
Mon, 19 Feb 2018 07:58:54 +0000 (16:58 +0900)
No functional change. Move bus width configuration setting to a
separate function and invoke it only if there is a change in the
bus width.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
drivers/mmc/omap_hsmmc.c

index fa8681ab699e0d24b4f194938a9aeb8e805654ad..713faab11095cea84cb803b6270357d63b382965 100644 (file)
@@ -62,6 +62,7 @@ struct omap_hsmmc_data {
 #if !CONFIG_IS_ENABLED(DM_MMC)
        struct mmc_config cfg;
 #endif
+       uint bus_width;
        uint clock;
 #ifdef OMAP_HSMMC_USE_GPIO
 #if CONFIG_IS_ENABLED(DM_MMC)
@@ -814,17 +815,9 @@ static void omap_hsmmc_set_clock(struct mmc *mmc)
        omap_hsmmc_start_clock(mmc_base);
 }
 
-#if !CONFIG_IS_ENABLED(DM_MMC)
-static int omap_hsmmc_set_ios(struct mmc *mmc)
+static void omap_hsmmc_set_bus_width(struct mmc *mmc)
 {
        struct omap_hsmmc_data *priv = omap_hsmmc_get_data(mmc);
-#else
-static int omap_hsmmc_set_ios(struct udevice *dev)
-{
-       struct omap_hsmmc_data *priv = dev_get_priv(dev);
-       struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-       struct mmc *mmc = upriv->mmc;
-#endif
        struct hsmmc *mmc_base;
 
        mmc_base = priv->base_addr;
@@ -851,6 +844,24 @@ static int omap_hsmmc_set_ios(struct udevice *dev)
                break;
        }
 
+       priv->bus_width = mmc->bus_width;
+}
+
+#if !CONFIG_IS_ENABLED(DM_MMC)
+static int omap_hsmmc_set_ios(struct mmc *mmc)
+{
+       struct omap_hsmmc_data *priv = omap_hsmmc_get_data(mmc);
+#else
+static int omap_hsmmc_set_ios(struct udevice *dev)
+{
+       struct omap_hsmmc_data *priv = dev_get_priv(dev);
+       struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
+       struct mmc *mmc = upriv->mmc;
+#endif
+
+       if (priv->bus_width != mmc->bus_width)
+               omap_hsmmc_set_bus_width(mmc);
+
        if (priv->clock != mmc->clock)
                omap_hsmmc_set_clock(mmc);