aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorThomas Abraham <thomas.abraham@linaro.org>2012-02-16 08:23:59 -0500
committerChris Ball <cjb@laptop.org>2012-04-05 19:58:01 -0400
commit1d4dc338bb7cbbadcb5a527b1b0e897b5cde1701 (patch)
treefc4eab669f7092f1b0f72b84a2ec2ad17979889f /drivers
parent0d22c77089c86416324d0d87e7ef8cfa931e53cd (diff)
mmc: sdhci-s3c: Keep a copy of platform data and use it
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mmc/host/sdhci-s3c.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
index dab1a770cb8a..e81a0339ab5c 100644
--- a/drivers/mmc/host/sdhci-s3c.c
+++ b/drivers/mmc/host/sdhci-s3c.c
@@ -424,7 +424,7 @@ static inline struct sdhci_s3c_drv_data *sdhci_s3c_get_driver_data(
424 424
425static int __devinit sdhci_s3c_probe(struct platform_device *pdev) 425static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
426{ 426{
427 struct s3c_sdhci_platdata *pdata = pdev->dev.platform_data; 427 struct s3c_sdhci_platdata *pdata;
428 struct sdhci_s3c_drv_data *drv_data; 428 struct sdhci_s3c_drv_data *drv_data;
429 struct device *dev = &pdev->dev; 429 struct device *dev = &pdev->dev;
430 struct sdhci_host *host; 430 struct sdhci_host *host;
@@ -432,7 +432,7 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
432 struct resource *res; 432 struct resource *res;
433 int ret, irq, ptr, clks; 433 int ret, irq, ptr, clks;
434 434
435 if (!pdata) { 435 if (!pdev->dev.platform_data) {
436 dev_err(dev, "no device data specified\n"); 436 dev_err(dev, "no device data specified\n");
437 return -ENOENT; 437 return -ENOENT;
438 } 438 }
@@ -455,6 +455,13 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
455 return PTR_ERR(host); 455 return PTR_ERR(host);
456 } 456 }
457 457
458 pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
459 if (!pdata) {
460 ret = -ENOMEM;
461 goto err_io_clk;
462 }
463 memcpy(pdata, pdev->dev.platform_data, sizeof(*pdata));
464
458 drv_data = sdhci_s3c_get_driver_data(pdev); 465 drv_data = sdhci_s3c_get_driver_data(pdev);
459 sc = sdhci_priv(host); 466 sc = sdhci_priv(host);
460 467