Re: [PATCH 3/4] clk: 88pm800: Add clk provider driver for 88pm800 family of devices
From: Krzysztof Kozlowski <hidden>
Date: 2015-07-22 06:46:14
Also in:
linux-arm-kernel, linux-clk, lkml
On 22.07.2015 15:27, Vaibhav Hiremath wrote:
On Wednesday 22 July 2015 02:22 AM, Stephen Boyd wrote:quoted
On 07/21/2015 12:36 PM, Vaibhav Hiremath wrote:quoted
On Wednesday 22 July 2015 12:40 AM, Stephen Boyd wrote:quoted
On 07/21/2015 04:07 AM, Vaibhav Hiremath wrote:quoted
+<snip>quoted
quoted
quoted
quoted
+static int pm800_clk_remove(struct platform_device *pdev) +{ + struct pm800_clk *pm800_clks = platform_get_drvdata(pdev); + int i; + + of_clk_del_provider(pm800_clks[0].clk_np); + /* Drop the reference obtained in pm800_clk_parse_dt */ + of_node_put(pm800_clks[0].clk_np);This is odd. Why are we keeping the reference in the driver?Honestly I do not have any good answer here. I have to admit that it is getting carry forwarded from legacy driver.Well we shouldn't do things if we don't know why we're doing them. Krzysztof?
I am really busy now so I am not following closely other discussions. I assume you are referring to clk-s2mps11.c. The of_node_put() matches of_get_child_by_name() when parsing DT. So why not of_node_put() just after parsing DT? Well, the result of of_get_child_by_name() is stored in state container for entire device life-cycle so we can use it in of_clk_del_provider(). That was the idea behind it. If it looks incorrect I would be happy to see a patch :) .
quoted
Hold on, After looking more in to this, it seems we really do not need it. It is already taken care by of_clk_add_provider() and of_clk_del_provider() Sorry for not investigating this before. Just left out from my eyes somehow. Actually I can cleanup clk-s2mps11.c driver as well, but only thing is I can validate it, as I do not have platform to test it. It should be trivial changes. If somebody can help me out in validation I can submit the patch for clk-s2mps11.c driver as well.
Sure, I can do this. The clock is present on few devices I can test. Depending on the current workqueue it may take few days. Just please mark the patch RFT so it won't be applied before receiving reviewed/tested tags. Best regards, Krzysztof