Skip to content

Commit

Permalink
mmc: sdhci-s3c: Keep a copy of platform data and use it
Browse files Browse the repository at this point in the history
The platform data is copied into driver's private data and the copy is
used for all access to the platform data. This simpifies the addition
of device tree support for the sdhci-s3c driver.

Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
  • Loading branch information
Thomas Abraham authored and Chris Ball committed Apr 5, 2012
1 parent 0d22c77 commit 1d4dc33
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions drivers/mmc/host/sdhci-s3c.c
Original file line number Diff line number Diff line change
Expand Up @@ -424,15 +424,15 @@ static inline struct sdhci_s3c_drv_data *sdhci_s3c_get_driver_data(

static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
{
struct s3c_sdhci_platdata *pdata = pdev->dev.platform_data;
struct s3c_sdhci_platdata *pdata;
struct sdhci_s3c_drv_data *drv_data;
struct device *dev = &pdev->dev;
struct sdhci_host *host;
struct sdhci_s3c *sc;
struct resource *res;
int ret, irq, ptr, clks;

if (!pdata) {
if (!pdev->dev.platform_data) {
dev_err(dev, "no device data specified\n");
return -ENOENT;
}
Expand All @@ -455,6 +455,13 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
return PTR_ERR(host);
}

pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
if (!pdata) {
ret = -ENOMEM;
goto err_io_clk;
}
memcpy(pdata, pdev->dev.platform_data, sizeof(*pdata));

drv_data = sdhci_s3c_get_driver_data(pdev);
sc = sdhci_priv(host);

Expand Down

0 comments on commit 1d4dc33

Please sign in to comment.