Thread (11 messages) 11 messages, 4 authors, 2017-03-29

Re: [alsa-devel] [PATCH v3 2/2] ASoC: imx-wm8962: Fix codec_clk cleanup

From: Charles Keepax <hidden>
Date: 2017-03-28 11:53:41
Also in: alsa-devel, lkml

On Tue, Mar 28, 2017 at 01:47:04PM +0300, Daniel Baluta wrote:
On Tue, Mar 28, 2017 at 12:21 PM, Charles Keepax
[off-list ref] wrote:
quoted
On Tue, Mar 28, 2017 at 11:58:52AM +0300, Daniel Baluta wrote:
quoted
Resource managed devm_clk_get only works with platform's device dev.
I feel like this could use an explaination of why not using devm
is the correct fix, rather than just using the platform device
for the call. Its not obvious to me, that using the platform
device would be an issue.
Hi Charles,

I see where the confusion comes from :) and I thought the explanation
is obvious from the code, see inline comments.

Would an explanation like the one below, work better?

" We cannot use devm_clk_get with &codec_dev->dev device because
the kernel uses pdev->dev to free the managed resources, so we will end
up with a leaking codec_clk reference"
quoted
quoted
@@ -231,7 +231,7 @@ static int imx_wm8962_probe(struct platform_device *pdev)
              goto fail;
      }
pdev->dev from here:
quoted
quoted
-     codec_clk = devm_clk_get(&codec_dev->dev, NULL);
+     codec_clk = clk_get(&codec_dev->dev, NULL);
is different from &codec_dev->dev.
I get that they are different, I just don't get why changing
from a devm_clk_get to a clk_get is a better fix than changing
&codec->dev to &pdev->dev.

Thanks,
Charles
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help