Commit c36cf125 authored by Jerome Brunet's avatar Jerome Brunet Committed by Ulf Hansson

mmc: meson-gx: rework set_ios function

Remove conditional write of cfg register. Warn if set_clk fails for some
reason. Consistently use host->dev instead of mixing with mmc_dev(mmc)
Reviewed-by: default avatarKevin Hilman <khilman@baylibre.com>
Signed-off-by: default avatarJerome Brunet <jbrunet@baylibre.com>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 3c39e2ca
...@@ -444,8 +444,8 @@ static void meson_mmc_set_tuning_params(struct mmc_host *mmc) ...@@ -444,8 +444,8 @@ static void meson_mmc_set_tuning_params(struct mmc_host *mmc)
static void meson_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) static void meson_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
{ {
struct meson_host *host = mmc_priv(mmc); struct meson_host *host = mmc_priv(mmc);
u32 bus_width; u32 bus_width, val;
u32 val, orig; int err;
/* /*
* GPIO regulator, only controls switching between 1v8 and * GPIO regulator, only controls switching between 1v8 and
...@@ -473,7 +473,7 @@ static void meson_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) ...@@ -473,7 +473,7 @@ static void meson_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
int ret = regulator_enable(mmc->supply.vqmmc); int ret = regulator_enable(mmc->supply.vqmmc);
if (ret < 0) if (ret < 0)
dev_err(mmc_dev(mmc), dev_err(host->dev,
"failed to enable vqmmc regulator\n"); "failed to enable vqmmc regulator\n");
else else
host->vqmmc_enabled = true; host->vqmmc_enabled = true;
...@@ -482,9 +482,6 @@ static void meson_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) ...@@ -482,9 +482,6 @@ static void meson_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
break; break;
} }
meson_mmc_clk_set(host, ios->clock);
/* Bus width */ /* Bus width */
switch (ios->bus_width) { switch (ios->bus_width) {
case MMC_BUS_WIDTH_1: case MMC_BUS_WIDTH_1:
...@@ -503,8 +500,6 @@ static void meson_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) ...@@ -503,8 +500,6 @@ static void meson_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
} }
val = readl(host->regs + SD_EMMC_CFG); val = readl(host->regs + SD_EMMC_CFG);
orig = val;
val &= ~CFG_BUS_WIDTH_MASK; val &= ~CFG_BUS_WIDTH_MASK;
val |= FIELD_PREP(CFG_BUS_WIDTH_MASK, bus_width); val |= FIELD_PREP(CFG_BUS_WIDTH_MASK, bus_width);
...@@ -518,11 +513,12 @@ static void meson_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) ...@@ -518,11 +513,12 @@ static void meson_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
if (ios->timing == MMC_TIMING_MMC_HS400) if (ios->timing == MMC_TIMING_MMC_HS400)
val |= CFG_CHK_DS; val |= CFG_CHK_DS;
if (val != orig) { err = meson_mmc_clk_set(host, ios->clock);
writel(val, host->regs + SD_EMMC_CFG); if (err)
dev_dbg(host->dev, "%s: SD_EMMC_CFG: 0x%08x -> 0x%08x\n", dev_err(host->dev, "Failed to set clock: %d\n,", err);
__func__, orig, val);
} writel(val, host->regs + SD_EMMC_CFG);
dev_dbg(host->dev, "SD_EMMC_CFG: 0x%08x\n", val);
} }
static void meson_mmc_request_done(struct mmc_host *mmc, static void meson_mmc_request_done(struct mmc_host *mmc,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment