[alsa-devel] [PATCH] ASoC: imx-sgtl5000: Use devm_clk_get()
Shawn Guo
shawn.guo at linaro.org
Tue Jun 11 02:44:40 CEST 2013
On Mon, Jun 10, 2013 at 01:26:05PM -0300, Fabio Estevam wrote:
> Commit 9e13f345 (ASoC: sgtl5000: Let the codec acquire its clock) removed the
> clk_put calls.
>
> Let's use devm_clk_get() instead, so that we do not need to call them anymore.
>
> Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
> ---
> sound/soc/fsl/imx-sgtl5000.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sound/soc/fsl/imx-sgtl5000.c b/sound/soc/fsl/imx-sgtl5000.c
> index 823151b..7a8bc12 100644
> --- a/sound/soc/fsl/imx-sgtl5000.c
> +++ b/sound/soc/fsl/imx-sgtl5000.c
> @@ -128,7 +128,7 @@ static int imx_sgtl5000_probe(struct platform_device *pdev)
> goto fail;
> }
>
> - data->codec_clk = clk_get(&codec_dev->dev, NULL);
> + data->codec_clk = devm_clk_get(&codec_dev->dev, NULL);
I do not think the change is correct. It only works if the struct *dev
is what imx_sgtl5000 platform_device points to, that is pdev->dev here.
However what you pass here is codec's. So when imx_sgtl5000_probe()
fails or imx_sgtl5000 module is removed, clk_put() will not be called.
And if I remember correctly, that's the reason why devm_clk_get() wasn't
used here in the first place.
Shawn
> if (IS_ERR(data->codec_clk))
> goto fail;
>
> --
> 1.8.1.2
>
>
More information about the Alsa-devel
mailing list