|
@@ -608,7 +608,7 @@ static int sdhci_s3c_probe(struct platform_device *pdev)
|
|
|
|
|
|
platform_set_drvdata(pdev, host);
|
|
|
|
|
|
- sc->clk_io = clk_get(dev, "hsmmc");
|
|
|
+ sc->clk_io = devm_clk_get(dev, "hsmmc");
|
|
|
if (IS_ERR(sc->clk_io)) {
|
|
|
dev_err(dev, "failed to get io clock\n");
|
|
|
ret = PTR_ERR(sc->clk_io);
|
|
@@ -623,7 +623,7 @@ static int sdhci_s3c_probe(struct platform_device *pdev)
|
|
|
char name[14];
|
|
|
|
|
|
snprintf(name, 14, "mmc_busclk.%d", ptr);
|
|
|
- clk = clk_get(dev, name);
|
|
|
+ clk = devm_clk_get(dev, name);
|
|
|
if (IS_ERR(clk))
|
|
|
continue;
|
|
|
|
|
@@ -764,15 +764,9 @@ static int sdhci_s3c_probe(struct platform_device *pdev)
|
|
|
#ifndef CONFIG_PM_RUNTIME
|
|
|
clk_disable_unprepare(sc->clk_bus[sc->cur_clk]);
|
|
|
#endif
|
|
|
- for (ptr = 0; ptr < MAX_BUS_CLK; ptr++) {
|
|
|
- if (sc->clk_bus[ptr]) {
|
|
|
- clk_put(sc->clk_bus[ptr]);
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
err_no_busclks:
|
|
|
clk_disable_unprepare(sc->clk_io);
|
|
|
- clk_put(sc->clk_io);
|
|
|
|
|
|
err_pdata_io_clk:
|
|
|
sdhci_free_host(host);
|
|
@@ -785,7 +779,6 @@ static int sdhci_s3c_remove(struct platform_device *pdev)
|
|
|
struct sdhci_host *host = platform_get_drvdata(pdev);
|
|
|
struct sdhci_s3c *sc = sdhci_priv(host);
|
|
|
struct s3c_sdhci_platdata *pdata = sc->pdata;
|
|
|
- int ptr;
|
|
|
|
|
|
if (pdata->cd_type == S3C_SDHCI_CD_EXTERNAL && pdata->ext_cd_cleanup)
|
|
|
pdata->ext_cd_cleanup(&sdhci_s3c_notify_change);
|
|
@@ -805,13 +798,7 @@ static int sdhci_s3c_remove(struct platform_device *pdev)
|
|
|
#ifndef CONFIG_PM_RUNTIME
|
|
|
clk_disable_unprepare(sc->clk_bus[sc->cur_clk]);
|
|
|
#endif
|
|
|
- for (ptr = 0; ptr < MAX_BUS_CLK; ptr++) {
|
|
|
- if (sc->clk_bus[ptr]) {
|
|
|
- clk_put(sc->clk_bus[ptr]);
|
|
|
- }
|
|
|
- }
|
|
|
clk_disable_unprepare(sc->clk_io);
|
|
|
- clk_put(sc->clk_io);
|
|
|
|
|
|
sdhci_free_host(host);
|
|
|
platform_set_drvdata(pdev, NULL);
|