|
@@ -128,7 +128,7 @@ static int imx_sgtl5000_probe(struct platform_device *pdev)
|
|
|
goto fail;
|
|
|
}
|
|
|
|
|
|
- data->codec_clk = devm_clk_get(&codec_dev->dev, NULL);
|
|
|
+ data->codec_clk = clk_get(&codec_dev->dev, NULL);
|
|
|
if (IS_ERR(data->codec_clk)) {
|
|
|
ret = PTR_ERR(data->codec_clk);
|
|
|
goto fail;
|
|
@@ -172,6 +172,8 @@ static int imx_sgtl5000_probe(struct platform_device *pdev)
|
|
|
return 0;
|
|
|
|
|
|
fail:
|
|
|
+ if (!IS_ERR(data->codec_clk))
|
|
|
+ clk_put(data->codec_clk);
|
|
|
if (ssi_np)
|
|
|
of_node_put(ssi_np);
|
|
|
if (codec_np)
|
|
@@ -185,6 +187,7 @@ static int imx_sgtl5000_remove(struct platform_device *pdev)
|
|
|
struct imx_sgtl5000_data *data = platform_get_drvdata(pdev);
|
|
|
|
|
|
snd_soc_unregister_card(&data->card);
|
|
|
+ clk_put(data->codec_clk);
|
|
|
|
|
|
return 0;
|
|
|
}
|