diff options
author | Kevin Hao <haokexin@gmail.com> | 2015-02-27 02:47:29 -0500 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2015-03-23 09:13:34 -0400 |
commit | 2290fcb341a07cc22c0f7f7d529c137a78039cdf (patch) | |
tree | fed7eb1e30843ab92eef0849421cac6e86f1cc03 | |
parent | e46af2987b9228d213d2399e69a8741ad805c293 (diff) |
mmc: sdhci-bcm-kona: kill the "external_clk" member in driver private struct
Actually we can use the "clk" in the struct sdhci_pltfm_host. Also
change the "external clock" to "core clock" and kill two redundant
private functions in this driver as suggested by Ray Jui.
Signed-off-by: Kevin Hao <haokexin@gmail.com>
Reviewed-by: Ray Jui <rjui@broadcom.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-rw-r--r-- | drivers/mmc/host/sdhci-bcm-kona.c | 46 |
1 files changed, 13 insertions, 33 deletions
diff --git a/drivers/mmc/host/sdhci-bcm-kona.c b/drivers/mmc/host/sdhci-bcm-kona.c index 34bb8f92586e..5bc263b447b2 100644 --- a/drivers/mmc/host/sdhci-bcm-kona.c +++ b/drivers/mmc/host/sdhci-bcm-kona.c | |||
@@ -54,7 +54,6 @@ | |||
54 | 54 | ||
55 | struct sdhci_bcm_kona_dev { | 55 | struct sdhci_bcm_kona_dev { |
56 | struct mutex write_lock; /* protect back to back writes */ | 56 | struct mutex write_lock; /* protect back to back writes */ |
57 | struct clk *external_clk; | ||
58 | }; | 57 | }; |
59 | 58 | ||
60 | 59 | ||
@@ -175,24 +174,6 @@ static void sdhci_bcm_kona_card_event(struct sdhci_host *host) | |||
175 | } | 174 | } |
176 | } | 175 | } |
177 | 176 | ||
178 | /* | ||
179 | * Get the base clock. Use central clock source for now. Not sure if different | ||
180 | * clock speed to each dev is allowed | ||
181 | */ | ||
182 | static unsigned int sdhci_bcm_kona_get_max_clk(struct sdhci_host *host) | ||
183 | { | ||
184 | struct sdhci_bcm_kona_dev *kona_dev; | ||
185 | struct sdhci_pltfm_host *pltfm_priv = sdhci_priv(host); | ||
186 | kona_dev = sdhci_pltfm_priv(pltfm_priv); | ||
187 | |||
188 | return host->mmc->f_max; | ||
189 | } | ||
190 | |||
191 | static unsigned int sdhci_bcm_kona_get_timeout_clock(struct sdhci_host *host) | ||
192 | { | ||
193 | return sdhci_bcm_kona_get_max_clk(host); | ||
194 | } | ||
195 | |||
196 | static void sdhci_bcm_kona_init_74_clocks(struct sdhci_host *host, | 177 | static void sdhci_bcm_kona_init_74_clocks(struct sdhci_host *host, |
197 | u8 power_mode) | 178 | u8 power_mode) |
198 | { | 179 | { |
@@ -207,8 +188,8 @@ static void sdhci_bcm_kona_init_74_clocks(struct sdhci_host *host, | |||
207 | 188 | ||
208 | static struct sdhci_ops sdhci_bcm_kona_ops = { | 189 | static struct sdhci_ops sdhci_bcm_kona_ops = { |
209 | .set_clock = sdhci_set_clock, | 190 | .set_clock = sdhci_set_clock, |
210 | .get_max_clock = sdhci_bcm_kona_get_max_clk, | 191 | .get_max_clock = sdhci_pltfm_clk_get_max_clock, |
211 | .get_timeout_clock = sdhci_bcm_kona_get_timeout_clock, | 192 | .get_timeout_clock = sdhci_pltfm_clk_get_max_clock, |
212 | .platform_send_init_74_clocks = sdhci_bcm_kona_init_74_clocks, | 193 | .platform_send_init_74_clocks = sdhci_bcm_kona_init_74_clocks, |
213 | .set_bus_width = sdhci_set_bus_width, | 194 | .set_bus_width = sdhci_set_bus_width, |
214 | .reset = sdhci_reset, | 195 | .reset = sdhci_reset, |
@@ -264,21 +245,21 @@ static int sdhci_bcm_kona_probe(struct platform_device *pdev) | |||
264 | goto err_pltfm_free; | 245 | goto err_pltfm_free; |
265 | } | 246 | } |
266 | 247 | ||
267 | /* Get and enable the external clock */ | 248 | /* Get and enable the core clock */ |
268 | kona_dev->external_clk = devm_clk_get(dev, NULL); | 249 | pltfm_priv->clk = devm_clk_get(dev, NULL); |
269 | if (IS_ERR(kona_dev->external_clk)) { | 250 | if (IS_ERR(pltfm_priv->clk)) { |
270 | dev_err(dev, "Failed to get external clock\n"); | 251 | dev_err(dev, "Failed to get core clock\n"); |
271 | ret = PTR_ERR(kona_dev->external_clk); | 252 | ret = PTR_ERR(pltfm_priv->clk); |
272 | goto err_pltfm_free; | 253 | goto err_pltfm_free; |
273 | } | 254 | } |
274 | 255 | ||
275 | if (clk_set_rate(kona_dev->external_clk, host->mmc->f_max) != 0) { | 256 | if (clk_set_rate(pltfm_priv->clk, host->mmc->f_max) != 0) { |
276 | dev_err(dev, "Failed to set rate external clock\n"); | 257 | dev_err(dev, "Failed to set rate core clock\n"); |
277 | goto err_pltfm_free; | 258 | goto err_pltfm_free; |
278 | } | 259 | } |
279 | 260 | ||
280 | if (clk_prepare_enable(kona_dev->external_clk) != 0) { | 261 | if (clk_prepare_enable(pltfm_priv->clk) != 0) { |
281 | dev_err(dev, "Failed to enable external clock\n"); | 262 | dev_err(dev, "Failed to enable core clock\n"); |
282 | goto err_pltfm_free; | 263 | goto err_pltfm_free; |
283 | } | 264 | } |
284 | 265 | ||
@@ -333,7 +314,7 @@ err_reset: | |||
333 | sdhci_bcm_kona_sd_reset(host); | 314 | sdhci_bcm_kona_sd_reset(host); |
334 | 315 | ||
335 | err_clk_disable: | 316 | err_clk_disable: |
336 | clk_disable_unprepare(kona_dev->external_clk); | 317 | clk_disable_unprepare(pltfm_priv->clk); |
337 | 318 | ||
338 | err_pltfm_free: | 319 | err_pltfm_free: |
339 | sdhci_pltfm_free(pdev); | 320 | sdhci_pltfm_free(pdev); |
@@ -346,12 +327,11 @@ static int sdhci_bcm_kona_remove(struct platform_device *pdev) | |||
346 | { | 327 | { |
347 | struct sdhci_host *host = platform_get_drvdata(pdev); | 328 | struct sdhci_host *host = platform_get_drvdata(pdev); |
348 | struct sdhci_pltfm_host *pltfm_priv = sdhci_priv(host); | 329 | struct sdhci_pltfm_host *pltfm_priv = sdhci_priv(host); |
349 | struct sdhci_bcm_kona_dev *kona_dev = sdhci_pltfm_priv(pltfm_priv); | ||
350 | int dead = (readl(host->ioaddr + SDHCI_INT_STATUS) == 0xffffffff); | 330 | int dead = (readl(host->ioaddr + SDHCI_INT_STATUS) == 0xffffffff); |
351 | 331 | ||
352 | sdhci_remove_host(host, dead); | 332 | sdhci_remove_host(host, dead); |
353 | 333 | ||
354 | clk_disable_unprepare(kona_dev->external_clk); | 334 | clk_disable_unprepare(pltfm_priv->clk); |
355 | 335 | ||
356 | sdhci_pltfm_free(pdev); | 336 | sdhci_pltfm_free(pdev); |
357 | 337 | ||