aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host
diff options
context:
space:
mode:
authorSimon Baatz <gmbnomis@gmail.com>2013-06-09 16:14:15 -0400
committerChris Ball <cjb@laptop.org>2013-06-27 10:23:11 -0400
commitd2cf6071cc09337eb68d960bcba94d2998de6172 (patch)
tree903884a85aeadb11e252a7eb0724c1e636c812d5 /drivers/mmc/host
parentb88576965b9518018c604865212294719ca2744f (diff)
mmc: sdhci-pxav3: handle mmc_of_parse() errors during probe
Signed-off-by: Simon Baatz <gmbnomis@gmail.com> Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers/mmc/host')
-rw-r--r--drivers/mmc/host/sdhci-pxav3.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/mmc/host/sdhci-pxav3.c b/drivers/mmc/host/sdhci-pxav3.c
index 56d9bee93d8f..d29f81097334 100644
--- a/drivers/mmc/host/sdhci-pxav3.c
+++ b/drivers/mmc/host/sdhci-pxav3.c
@@ -252,7 +252,9 @@ static int sdhci_pxav3_probe(struct platform_device *pdev)
252 252
253 match = of_match_device(of_match_ptr(sdhci_pxav3_of_match), &pdev->dev); 253 match = of_match_device(of_match_ptr(sdhci_pxav3_of_match), &pdev->dev);
254 if (match) { 254 if (match) {
255 mmc_of_parse(host->mmc); 255 ret = mmc_of_parse(host->mmc);
256 if (ret)
257 goto err_of_parse;
256 sdhci_get_of_property(pdev); 258 sdhci_get_of_property(pdev);
257 pdata = pxav3_get_mmc_pdata(dev); 259 pdata = pxav3_get_mmc_pdata(dev);
258 } else if (pdata) { 260 } else if (pdata) {
@@ -313,10 +315,11 @@ static int sdhci_pxav3_probe(struct platform_device *pdev)
313 315
314 return 0; 316 return 0;
315 317
318err_of_parse:
319err_cd_req:
316err_add_host: 320err_add_host:
317 clk_disable_unprepare(clk); 321 clk_disable_unprepare(clk);
318 clk_put(clk); 322 clk_put(clk);
319err_cd_req:
320err_clk_get: 323err_clk_get:
321 sdhci_pltfm_free(pdev); 324 sdhci_pltfm_free(pdev);
322 kfree(pxa); 325 kfree(pxa);