On 2/5/2015 7:15 PM, Kevin Hao wrote: > Actually we can use the "clk" in the struct sdhci_pltfm_host. > > Signed-off-by: Kevin Hao <haokexin@xxxxxxxxx> > --- > drivers/mmc/host/sdhci-bcm-kona.c | 16 +++++++--------- > 1 file changed, 7 insertions(+), 9 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-bcm-kona.c b/drivers/mmc/host/sdhci-bcm-kona.c > index 34bb8f92586e..01660344e414 100644 > --- a/drivers/mmc/host/sdhci-bcm-kona.c > +++ b/drivers/mmc/host/sdhci-bcm-kona.c > @@ -54,7 +54,6 @@ > > struct sdhci_bcm_kona_dev { > struct mutex write_lock; /* protect back to back writes */ > - struct clk *external_clk; > }; > > > @@ -265,19 +264,19 @@ static int sdhci_bcm_kona_probe(struct platform_device *pdev) > } > > /* Get and enable the external clock */ Would you mind changing the above comment to "/* Get and enable the core clock */? > - kona_dev->external_clk = devm_clk_get(dev, NULL); > - if (IS_ERR(kona_dev->external_clk)) { > + pltfm_priv->clk = devm_clk_get(dev, NULL); > + if (IS_ERR(pltfm_priv->clk)) { > dev_err(dev, "Failed to get external clock\n"); Change to "Failed to get the core clock" > - ret = PTR_ERR(kona_dev->external_clk); > + ret = PTR_ERR(pltfm_priv->clk); > goto err_pltfm_free; > } > > - if (clk_set_rate(kona_dev->external_clk, host->mmc->f_max) != 0) { > + if (clk_set_rate(pltfm_priv->clk, host->mmc->f_max) != 0) { > dev_err(dev, "Failed to set rate external clock\n"); > goto err_pltfm_free; > } > > - if (clk_prepare_enable(kona_dev->external_clk) != 0) { > + if (clk_prepare_enable(pltfm_priv->clk) != 0) { > dev_err(dev, "Failed to enable external clock\n"); > goto err_pltfm_free; > } > @@ -333,7 +332,7 @@ err_reset: > sdhci_bcm_kona_sd_reset(host); > > err_clk_disable: > - clk_disable_unprepare(kona_dev->external_clk); > + clk_disable_unprepare(pltfm_priv->clk); > > err_pltfm_free: > sdhci_pltfm_free(pdev); > @@ -346,12 +345,11 @@ static int sdhci_bcm_kona_remove(struct platform_device *pdev) > { > struct sdhci_host *host = platform_get_drvdata(pdev); > struct sdhci_pltfm_host *pltfm_priv = sdhci_priv(host); > - struct sdhci_bcm_kona_dev *kona_dev = sdhci_pltfm_priv(pltfm_priv); > int dead = (readl(host->ioaddr + SDHCI_INT_STATUS) == 0xffffffff); > > sdhci_remove_host(host, dead); > > - clk_disable_unprepare(kona_dev->external_clk); > + clk_disable_unprepare(pltfm_priv->clk); > > sdhci_pltfm_free(pdev); > > Not sure if this is relevant and should be done in the same patch. But both callbacks get_max_clock and get_timeout_clock in this driver can be set to sdhci_pltfm_clk_get_max_clock. That will help to get rid of two redundant private functions in this driver. Thanks, Ray -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html