diff options
| author | Mark Brown <broonie@linaro.org> | 2013-09-27 09:56:23 -0400 |
|---|---|---|
| committer | Mark Brown <broonie@linaro.org> | 2013-09-27 09:56:23 -0400 |
| commit | 8516e6483bc870dfa76184657c3ddf5a8906e6db (patch) | |
| tree | a8839b373f031a23a1bc7caefb37545d9c853912 | |
| parent | aab5d23ef9934a2421ad46cbb15e097f87464692 (diff) | |
| parent | 50d4a790e65f5ac91a7b2720a19e80e862b40318 (diff) | |
Merge remote-tracking branch 'asoc/fix/fsl' into asoc-linus
| -rw-r--r-- | sound/soc/fsl/imx-sgtl5000.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sound/soc/fsl/imx-sgtl5000.c b/sound/soc/fsl/imx-sgtl5000.c index 46c5b4fdfc52..ca1be1d9dcf0 100644 --- a/sound/soc/fsl/imx-sgtl5000.c +++ b/sound/soc/fsl/imx-sgtl5000.c | |||
| @@ -62,7 +62,7 @@ static int imx_sgtl5000_probe(struct platform_device *pdev) | |||
| 62 | struct device_node *ssi_np, *codec_np; | 62 | struct device_node *ssi_np, *codec_np; |
| 63 | struct platform_device *ssi_pdev; | 63 | struct platform_device *ssi_pdev; |
| 64 | struct i2c_client *codec_dev; | 64 | struct i2c_client *codec_dev; |
| 65 | struct imx_sgtl5000_data *data; | 65 | struct imx_sgtl5000_data *data = NULL; |
| 66 | int int_port, ext_port; | 66 | int int_port, ext_port; |
| 67 | int ret; | 67 | int ret; |
| 68 | 68 | ||
| @@ -128,7 +128,7 @@ static int imx_sgtl5000_probe(struct platform_device *pdev) | |||
| 128 | goto fail; | 128 | goto fail; |
| 129 | } | 129 | } |
| 130 | 130 | ||
| 131 | data->codec_clk = devm_clk_get(&codec_dev->dev, NULL); | 131 | data->codec_clk = clk_get(&codec_dev->dev, NULL); |
| 132 | if (IS_ERR(data->codec_clk)) { | 132 | if (IS_ERR(data->codec_clk)) { |
| 133 | ret = PTR_ERR(data->codec_clk); | 133 | ret = PTR_ERR(data->codec_clk); |
| 134 | goto fail; | 134 | goto fail; |
| @@ -172,6 +172,8 @@ static int imx_sgtl5000_probe(struct platform_device *pdev) | |||
| 172 | return 0; | 172 | return 0; |
| 173 | 173 | ||
| 174 | fail: | 174 | fail: |
| 175 | if (data && !IS_ERR(data->codec_clk)) | ||
| 176 | clk_put(data->codec_clk); | ||
| 175 | if (ssi_np) | 177 | if (ssi_np) |
| 176 | of_node_put(ssi_np); | 178 | of_node_put(ssi_np); |
| 177 | if (codec_np) | 179 | if (codec_np) |
| @@ -185,6 +187,7 @@ static int imx_sgtl5000_remove(struct platform_device *pdev) | |||
| 185 | struct imx_sgtl5000_data *data = platform_get_drvdata(pdev); | 187 | struct imx_sgtl5000_data *data = platform_get_drvdata(pdev); |
| 186 | 188 | ||
| 187 | snd_soc_unregister_card(&data->card); | 189 | snd_soc_unregister_card(&data->card); |
| 190 | clk_put(data->codec_clk); | ||
| 188 | 191 | ||
| 189 | return 0; | 192 | return 0; |
| 190 | } | 193 | } |
