summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Alonso <aalonso@freescale.com>2012-04-25 18:03:50 -0500
committerAdrian Alonso <aalonso@freescale.com>2012-04-26 14:19:28 -0500
commit6ca6cc79c0bd9225e3d22f4112f63a11d392cf5f (patch)
treef5c3a4e9e3fff1e5f85e01bc86dce2031684d6de
parent4800abecba6e82a49462bc962ad647450f006175 (diff)
ENGR00180236: mxc_spdif add spdif_clk error check
* Add get_clk clock error check abort driver probe if wrong clock. Signed-off-by: Adrian Alonso <aalonso@freescale.com>
-rw-r--r--sound/soc/codecs/mxc_spdif.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sound/soc/codecs/mxc_spdif.c b/sound/soc/codecs/mxc_spdif.c
index 4d8e83b2032d..9a538c7295af 100644
--- a/sound/soc/codecs/mxc_spdif.c
+++ b/sound/soc/codecs/mxc_spdif.c
@@ -1244,6 +1244,11 @@ static int __devinit mxc_spdif_probe(struct platform_device *pdev)
}
plat_data->spdif_clk = clk_get(&pdev->dev, NULL);
+ if (IS_ERR(plat_data->spdif_clk)) {
+ ret = PTR_ERR(plat_data->spdif_clk);
+ dev_err(&pdev->dev, "can't get clock: %d\n", ret);
+ goto failed_clk;
+ }
atomic_set(&spdif_priv->dpll_locked, 0);
@@ -1277,7 +1282,7 @@ static int __devinit mxc_spdif_probe(struct platform_device *pdev)
card_err:
clk_put(plat_data->spdif_clk);
clk_disable(plat_data->spdif_core_clk);
-
+failed_clk:
platform_set_drvdata(pdev, NULL);
kfree(spdif_priv);