|
@@ -127,9 +127,9 @@ static int dw_mci_exynos_priv_init(struct dw_mci *host)
|
|
static int dw_mci_exynos_setup_clock(struct dw_mci *host)
|
|
static int dw_mci_exynos_setup_clock(struct dw_mci *host)
|
|
{
|
|
{
|
|
struct dw_mci_exynos_priv_data *priv = host->priv;
|
|
struct dw_mci_exynos_priv_data *priv = host->priv;
|
|
- unsigned long rate = clk_get_rate(host->ciu_clk);
|
|
|
|
|
|
|
|
- host->bus_hz = rate / (priv->ciu_div + 1);
|
|
|
|
|
|
+ host->bus_hz /= (priv->ciu_div + 1);
|
|
|
|
+
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -232,8 +232,11 @@ static void dw_mci_exynos_set_ios(struct dw_mci *host, struct mmc_ios *ios)
|
|
mci_writel(host, CLKSEL, priv->sdr_timing);
|
|
mci_writel(host, CLKSEL, priv->sdr_timing);
|
|
}
|
|
}
|
|
|
|
|
|
- /* Don't care if wanted clock is zero */
|
|
|
|
- if (!wanted)
|
|
|
|
|
|
+ /*
|
|
|
|
+ * Don't care if wanted clock is zero or
|
|
|
|
+ * ciu clock is unavailable
|
|
|
|
+ */
|
|
|
|
+ if (!wanted || IS_ERR(host->ciu_clk))
|
|
return;
|
|
return;
|
|
|
|
|
|
/* Guaranteed minimum frequency for cclkin */
|
|
/* Guaranteed minimum frequency for cclkin */
|