diff options
author | Adrian Alonso <aalonso@freescale.com> | 2012-04-25 18:03:50 -0500 |
---|---|---|
committer | Adrian Alonso <aalonso@freescale.com> | 2012-04-26 14:19:28 -0500 |
commit | 6ca6cc79c0bd9225e3d22f4112f63a11d392cf5f (patch) | |
tree | f5c3a4e9e3fff1e5f85e01bc86dce2031684d6de | |
parent | 4800abecba6e82a49462bc962ad647450f006175 (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.c | 7 |
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); |