mmc: sdhci-msm: use sdhci_pltfm_init for private allocation
authorJisheng Zhang <jszhang@marvell.com>
Tue, 16 Feb 2016 13:08:22 +0000 (21:08 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 29 Feb 2016 10:03:26 +0000 (11:03 +0100)
Commit 0e748234293f ("mmc: sdhci: Add size for caller in init+register")
allows users of sdhci_pltfm to allocate private space in calls to
sdhci_pltfm_init+sdhci_pltfm_register. This patch migrates sdhci-msm
to this allocation.

Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-msm.c

index ffac9b488893ef8c6d3a8f263f8fe50bf1079ec7..0653fe730150cab10d08a90dc953b3546f5cb08a 100644 (file)
@@ -442,16 +442,12 @@ static int sdhci_msm_probe(struct platform_device *pdev)
        u32 core_version, caps;
        u8 core_major;
 
-       msm_host = devm_kzalloc(&pdev->dev, sizeof(*msm_host), GFP_KERNEL);
-       if (!msm_host)
-               return -ENOMEM;
-
-       host = sdhci_pltfm_init(pdev, &sdhci_msm_pdata, 0);
+       host = sdhci_pltfm_init(pdev, &sdhci_msm_pdata, sizeof(*msm_host));
        if (IS_ERR(host))
                return PTR_ERR(host);
 
        pltfm_host = sdhci_priv(host);
-       pltfm_host->priv = msm_host;
+       msm_host = sdhci_pltfm_priv(pltfm_host);
        msm_host->mmc = host->mmc;
        msm_host->pdev = pdev;
 
@@ -571,16 +567,16 @@ static int sdhci_msm_remove(struct platform_device *pdev)
 {
        struct sdhci_host *host = platform_get_drvdata(pdev);
        struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
-       struct sdhci_msm_host *msm_host = pltfm_host->priv;
+       struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host);
        int dead = (readl_relaxed(host->ioaddr + SDHCI_INT_STATUS) ==
                    0xffffffff);
 
        sdhci_remove_host(host, dead);
-       sdhci_pltfm_free(pdev);
        clk_disable_unprepare(msm_host->clk);
        clk_disable_unprepare(msm_host->pclk);
        if (!IS_ERR(msm_host->bus_clk))
                clk_disable_unprepare(msm_host->bus_clk);
+       sdhci_pltfm_free(pdev);
        return 0;
 }