When the fixed rate clock is created by devicetree,
of_clk_add_provider is called. Add a call to
of_clk_del_provider in the remove function to balance
it out.
Signed-off-by: Alan Tull <[email protected]>
---
drivers/clk/clk-fixed-rate.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/clk/clk-fixed-rate.c b/drivers/clk/clk-fixed-rate.c
index b5c46b3f8764..6d6475c32ee5 100644
--- a/drivers/clk/clk-fixed-rate.c
+++ b/drivers/clk/clk-fixed-rate.c
@@ -200,6 +200,7 @@ static int of_fixed_clk_remove(struct platform_device *pdev)
{
struct clk *clk = platform_get_drvdata(pdev);
+ of_clk_del_provider(pdev->dev.of_node);
clk_unregister_fixed_rate(clk);
return 0;
--
2.16.2
Quoting Alan Tull (2018-10-18 12:54:11)
> When the fixed rate clock is created by devicetree,
> of_clk_add_provider is called. Add a call to
> of_clk_del_provider in the remove function to balance
> it out.
>
> Signed-off-by: Alan Tull <[email protected]>
> ---
Fixes tag? I'll tack one on.
> drivers/clk/clk-fixed-rate.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/clk/clk-fixed-rate.c b/drivers/clk/clk-fixed-rate.c
> index b5c46b3f8764..6d6475c32ee5 100644
> --- a/drivers/clk/clk-fixed-rate.c
> +++ b/drivers/clk/clk-fixed-rate.c
> @@ -200,6 +200,7 @@ static int of_fixed_clk_remove(struct platform_device *pdev)
> {
> struct clk *clk = platform_get_drvdata(pdev);
>
> + of_clk_del_provider(pdev->dev.of_node);
> clk_unregister_fixed_rate(clk);
>
> return 0;
On Thu, Oct 18, 2018 at 3:22 PM Stephen Boyd <[email protected]> wrote:
>
> Quoting Alan Tull (2018-10-18 12:54:11)
> > When the fixed rate clock is created by devicetree,
> > of_clk_add_provider is called. Add a call to
> > of_clk_del_provider in the remove function to balance
> > it out.
> >
> > Signed-off-by: Alan Tull <[email protected]>
> > ---
>
> Fixes tag? I'll tack one on.
Fixes 435779fe1336 ("clk: fixed-rate: Convert into a module platform driver")
Thanks!
Alan
>
> > drivers/clk/clk-fixed-rate.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/clk/clk-fixed-rate.c b/drivers/clk/clk-fixed-rate.c
> > index b5c46b3f8764..6d6475c32ee5 100644
> > --- a/drivers/clk/clk-fixed-rate.c
> > +++ b/drivers/clk/clk-fixed-rate.c
> > @@ -200,6 +200,7 @@ static int of_fixed_clk_remove(struct platform_device *pdev)
> > {
> > struct clk *clk = platform_get_drvdata(pdev);
> >
> > + of_clk_del_provider(pdev->dev.of_node);
> > clk_unregister_fixed_rate(clk);
> >
> > return 0;