2019-07-23 09:18:59

by Chuhong Yuan

[permalink] [raw]
Subject: [PATCH] usb: chipidea: msm: Use device-managed registration API

Use devm_reset_controller_register to get rid
of manual unregistration.

Signed-off-by: Chuhong Yuan <[email protected]>
---
drivers/usb/chipidea/ci_hdrc_msm.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/usb/chipidea/ci_hdrc_msm.c b/drivers/usb/chipidea/ci_hdrc_msm.c
index bb4645a8ca46..067542e84aea 100644
--- a/drivers/usb/chipidea/ci_hdrc_msm.c
+++ b/drivers/usb/chipidea/ci_hdrc_msm.c
@@ -216,7 +216,7 @@ static int ci_hdrc_msm_probe(struct platform_device *pdev)
ci->rcdev.ops = &ci_hdrc_msm_reset_ops;
ci->rcdev.of_node = pdev->dev.of_node;
ci->rcdev.nr_resets = 2;
- ret = reset_controller_register(&ci->rcdev);
+ ret = devm_reset_controller_register(&pdev->dev, &ci->rcdev);
if (ret)
return ret;

@@ -272,7 +272,6 @@ static int ci_hdrc_msm_probe(struct platform_device *pdev)
err_iface:
clk_disable_unprepare(ci->core_clk);
err_fs:
- reset_controller_unregister(&ci->rcdev);
return ret;
}

@@ -284,7 +283,6 @@ static int ci_hdrc_msm_remove(struct platform_device *pdev)
ci_hdrc_remove_device(ci->ci);
clk_disable_unprepare(ci->iface_clk);
clk_disable_unprepare(ci->core_clk);
- reset_controller_unregister(&ci->rcdev);

return 0;
}
--
2.20.1


2019-08-28 03:25:17

by Peter Chen

[permalink] [raw]
Subject: Re: [PATCH] usb: chipidea: msm: Use device-managed registration API

On 19-07-23 11:02:07, Chuhong Yuan wrote:
> Use devm_reset_controller_register to get rid
> of manual unregistration.
>
> Signed-off-by: Chuhong Yuan <[email protected]>
> ---
> drivers/usb/chipidea/ci_hdrc_msm.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/usb/chipidea/ci_hdrc_msm.c b/drivers/usb/chipidea/ci_hdrc_msm.c
> index bb4645a8ca46..067542e84aea 100644
> --- a/drivers/usb/chipidea/ci_hdrc_msm.c
> +++ b/drivers/usb/chipidea/ci_hdrc_msm.c
> @@ -216,7 +216,7 @@ static int ci_hdrc_msm_probe(struct platform_device *pdev)
> ci->rcdev.ops = &ci_hdrc_msm_reset_ops;
> ci->rcdev.of_node = pdev->dev.of_node;
> ci->rcdev.nr_resets = 2;
> - ret = reset_controller_register(&ci->rcdev);
> + ret = devm_reset_controller_register(&pdev->dev, &ci->rcdev);
> if (ret)
> return ret;
>
> @@ -272,7 +272,6 @@ static int ci_hdrc_msm_probe(struct platform_device *pdev)
> err_iface:
> clk_disable_unprepare(ci->core_clk);
> err_fs:
> - reset_controller_unregister(&ci->rcdev);

It is devm API, why the unregister needs to be called at
fail path?

Peter

> return ret;
> }
>
> @@ -284,7 +283,6 @@ static int ci_hdrc_msm_remove(struct platform_device *pdev)
> ci_hdrc_remove_device(ci->ci);
> clk_disable_unprepare(ci->iface_clk);
> clk_disable_unprepare(ci->core_clk);
> - reset_controller_unregister(&ci->rcdev);
>
> return 0;
> }
> --
> 2.20.1
>

2019-08-28 11:43:47

by Chuhong Yuan

[permalink] [raw]
Subject: Re: [PATCH] usb: chipidea: msm: Use device-managed registration API

On Wed, Aug 28, 2019 at 11:24 AM Peter Chen <[email protected]> wrote:
>
> On 19-07-23 11:02:07, Chuhong Yuan wrote:
> > Use devm_reset_controller_register to get rid
> > of manual unregistration.
> >
> > Signed-off-by: Chuhong Yuan <[email protected]>
> > ---
> > drivers/usb/chipidea/ci_hdrc_msm.c | 4 +---
> > 1 file changed, 1 insertion(+), 3 deletions(-)
> >
> > diff --git a/drivers/usb/chipidea/ci_hdrc_msm.c b/drivers/usb/chipidea/ci_hdrc_msm.c
> > index bb4645a8ca46..067542e84aea 100644
> > --- a/drivers/usb/chipidea/ci_hdrc_msm.c
> > +++ b/drivers/usb/chipidea/ci_hdrc_msm.c
> > @@ -216,7 +216,7 @@ static int ci_hdrc_msm_probe(struct platform_device *pdev)
> > ci->rcdev.ops = &ci_hdrc_msm_reset_ops;
> > ci->rcdev.of_node = pdev->dev.of_node;
> > ci->rcdev.nr_resets = 2;
> > - ret = reset_controller_register(&ci->rcdev);
> > + ret = devm_reset_controller_register(&pdev->dev, &ci->rcdev);
> > if (ret)
> > return ret;
> >
> > @@ -272,7 +272,6 @@ static int ci_hdrc_msm_probe(struct platform_device *pdev)
> > err_iface:
> > clk_disable_unprepare(ci->core_clk);
> > err_fs:
> > - reset_controller_unregister(&ci->rcdev);
>
> It is devm API, why the unregister needs to be called at
> fail path?
>

I am not very clear about your problem...
After using devm_reset_controller_register(), I have removed
reset_controller_unregister() calls
in this patch.

> Peter
>
> > return ret;
> > }
> >
> > @@ -284,7 +283,6 @@ static int ci_hdrc_msm_remove(struct platform_device *pdev)
> > ci_hdrc_remove_device(ci->ci);
> > clk_disable_unprepare(ci->iface_clk);
> > clk_disable_unprepare(ci->core_clk);
> > - reset_controller_unregister(&ci->rcdev);
> >
> > return 0;
> > }
> > --
> > 2.20.1
> >

2019-08-29 03:41:00

by Peter Chen

[permalink] [raw]
Subject: Re: [PATCH] usb: chipidea: msm: Use device-managed registration API

On 19-08-28 19:42:32, Chuhong Yuan wrote:
> On Wed, Aug 28, 2019 at 11:24 AM Peter Chen <[email protected]> wrote:
> >
> > On 19-07-23 11:02:07, Chuhong Yuan wrote:
> > > Use devm_reset_controller_register to get rid
> > > of manual unregistration.
> > >
> > > Signed-off-by: Chuhong Yuan <[email protected]>
> > > ---
> > > drivers/usb/chipidea/ci_hdrc_msm.c | 4 +---
> > > 1 file changed, 1 insertion(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/usb/chipidea/ci_hdrc_msm.c b/drivers/usb/chipidea/ci_hdrc_msm.c
> > > index bb4645a8ca46..067542e84aea 100644
> > > --- a/drivers/usb/chipidea/ci_hdrc_msm.c
> > > +++ b/drivers/usb/chipidea/ci_hdrc_msm.c
> > > @@ -216,7 +216,7 @@ static int ci_hdrc_msm_probe(struct platform_device *pdev)
> > > ci->rcdev.ops = &ci_hdrc_msm_reset_ops;
> > > ci->rcdev.of_node = pdev->dev.of_node;
> > > ci->rcdev.nr_resets = 2;
> > > - ret = reset_controller_register(&ci->rcdev);
> > > + ret = devm_reset_controller_register(&pdev->dev, &ci->rcdev);
> > > if (ret)
> > > return ret;
> > >
> > > @@ -272,7 +272,6 @@ static int ci_hdrc_msm_probe(struct platform_device *pdev)
> > > err_iface:
> > > clk_disable_unprepare(ci->core_clk);
> > > err_fs:
> > > - reset_controller_unregister(&ci->rcdev);
> >
> > It is devm API, why the unregister needs to be called at
> > fail path?
> >
>
> I am not very clear about your problem...
> After using devm_reset_controller_register(), I have removed
> reset_controller_unregister() calls
> in this patch.
>

Sorry, my fault.

Your patch is ok, but try to clean up the label "err_fs" since
it is not needed.

Peter

> > Peter
> >
> > > return ret;
> > > }
> > >
> > > @@ -284,7 +283,6 @@ static int ci_hdrc_msm_remove(struct platform_device *pdev)
> > > ci_hdrc_remove_device(ci->ci);
> > > clk_disable_unprepare(ci->iface_clk);
> > > clk_disable_unprepare(ci->core_clk);
> > > - reset_controller_unregister(&ci->rcdev);
> > >
> > > return 0;
> > > }
> > > --
> > > 2.20.1
> > >