[v2] counter/ftm-quaddec: Use device-managed registration API
diff mbox series

Message ID 20190726022836.7182-1-hslester96@gmail.com
State Superseded
Headers show
Series
  • [v2] counter/ftm-quaddec: Use device-managed registration API
Related show

Commit Message

Chuhong Yuan July 26, 2019, 2:28 a.m. UTC
Make use of devm_counter_register.
Then we can remove redundant unregistration API
usage to make code simpler.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
---
Changes in v2:
  - Use devm_add_action_or_reset to keep
    resource release order.
  - _remove() function is redundant now,
    delete it.

 drivers/counter/ftm-quaddec.c | 31 +++++++++++--------------------
 1 file changed, 11 insertions(+), 20 deletions(-)

 static int ftm_quaddec_get_prescaler(struct counter_device *counter,
@@ -316,22 +317,13 @@ static int ftm_quaddec_probe(struct platform_device *pdev)
 	mutex_init(&ftm->ftm_quaddec_mutex);
 
 	ftm_quaddec_init(ftm);
-
-	ret = counter_register(&ftm->counter);
+	ret = devm_add_action_or_reset(&pdev->dev, ftm_quaddec_disable, ftm);
 	if (ret)
-		ftm_quaddec_disable(ftm);
-
-	return ret;
-}
-
-static int ftm_quaddec_remove(struct platform_device *pdev)
-{
-	struct ftm_quaddec *ftm = platform_get_drvdata(pdev);
-
-	counter_unregister(&ftm->counter);
-
-	ftm_quaddec_disable(ftm);
+		return ret;
 
+	ret = devm_counter_register(&pdev->dev, &ftm->counter);
+	if (ret)
+		return ret;
 	return 0;
 }
 
@@ -346,7 +338,6 @@ static struct platform_driver ftm_quaddec_driver = {
 		.of_match_table = ftm_quaddec_match,
 	},
 	.probe = ftm_quaddec_probe,
-	.remove = ftm_quaddec_remove,
 };
 
 module_platform_driver(ftm_quaddec_driver);

Comments

Patrick Havelange July 26, 2019, 12:51 p.m. UTC | #1
Hello,

On Fri, Jul 26, 2019 at 4:28 AM Chuhong Yuan <hslester96@gmail.com> wrote:
>
> Make use of devm_counter_register.
> Then we can remove redundant unregistration API
> usage to make code simpler.
>
> Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
> ---
> Changes in v2:
>   - Use devm_add_action_or_reset to keep
>     resource release order.

This is better now indeed.

However it seems there is an issue with the mail/patch format, I'm
unable to apply it with git am, and if you look at
https://lore.kernel.org/patchwork/patch/1105782/ the diff section is
missing the beginning of the patch. I don't know why, but I think it
should be looked into.

Otherwise, it's fine by me.

Regards,

Patrick Havelange


>   - _remove() function is redundant now,
>     delete it.
>
>  drivers/counter/ftm-quaddec.c | 31 +++++++++++--------------------
>  1 file changed, 11 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/counter/ftm-quaddec.c b/drivers/counter/ftm-quaddec.c
> index 68a9b7393457..76c70a6c3593 100644
> --- a/drivers/counter/ftm-quaddec.c
> +++ b/drivers/counter/ftm-quaddec.c
> @@ -100,16 +100,17 @@ static void ftm_quaddec_init(struct ftm_quaddec *ftm)
>         ftm_set_write_protection(ftm);
>  }
>
> -static void ftm_quaddec_disable(struct ftm_quaddec *ftm)
> +static void ftm_quaddec_disable(void *ftm)
>  {
> -       ftm_clear_write_protection(ftm);
> -       ftm_write(ftm, FTM_MODE, 0);
> -       ftm_write(ftm, FTM_QDCTRL, 0);
> +       struct ftm_quaddec *ftm_qua = ftm;
>
> +       ftm_clear_write_protection(ftm_qua);
> +       ftm_write(ftm_qua, FTM_MODE, 0);
> +       ftm_write(ftm_qua, FTM_QDCTRL, 0);
>         /*
>          * This is enough to disable the counter. No clock has been
>          * selected by writing to FTM_SC in init()
>          */
> -       ftm_set_write_protection(ftm);
> +       ftm_set_write_protection(ftm_qua);
>  }
>
>  static int ftm_quaddec_get_prescaler(struct counter_device *counter,
> @@ -316,22 +317,13 @@ static int ftm_quaddec_probe(struct platform_device *pdev)
>         mutex_init(&ftm->ftm_quaddec_mutex);
>
>         ftm_quaddec_init(ftm);
> -
> -       ret = counter_register(&ftm->counter);
> +       ret = devm_add_action_or_reset(&pdev->dev, ftm_quaddec_disable, ftm);
>         if (ret)
> -               ftm_quaddec_disable(ftm);
> -
> -       return ret;
> -}
> -
> -static int ftm_quaddec_remove(struct platform_device *pdev)
> -{
> -       struct ftm_quaddec *ftm = platform_get_drvdata(pdev);
> -
> -       counter_unregister(&ftm->counter);
> -
> -       ftm_quaddec_disable(ftm);
> +               return ret;
>
> +       ret = devm_counter_register(&pdev->dev, &ftm->counter);
> +       if (ret)
> +               return ret;
>         return 0;
>  }
>
> @@ -346,7 +338,6 @@ static struct platform_driver ftm_quaddec_driver = {
>                 .of_match_table = ftm_quaddec_match,
>         },
>         .probe = ftm_quaddec_probe,
> -       .remove = ftm_quaddec_remove,
>  };
>
>  module_platform_driver(ftm_quaddec_driver);
> --
> 2.20.1
>
Chuhong Yuan July 26, 2019, 1:21 p.m. UTC | #2
Patrick Havelange <patrick.havelange@essensium.com> 于2019年7月26日周五 下午8:51写道:
>
> Hello,
>
> On Fri, Jul 26, 2019 at 4:28 AM Chuhong Yuan <hslester96@gmail.com> wrote:
> >
> > Make use of devm_counter_register.
> > Then we can remove redundant unregistration API
> > usage to make code simpler.
> >
> > Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
> > ---
> > Changes in v2:
> >   - Use devm_add_action_or_reset to keep
> >     resource release order.
>
> This is better now indeed.
>
> However it seems there is an issue with the mail/patch format, I'm
> unable to apply it with git am, and if you look at
> https://lore.kernel.org/patchwork/patch/1105782/ the diff section is
> missing the beginning of the patch. I don't know why, but I think it
> should be looked into.
>
> Otherwise, it's fine by me.
>
> Regards,
>
> Patrick Havelange

I am also not clear about why this issue happened.
Maybe it is caused by changelog format.
I will revise changelog and resend it later.



>
>
> >   - _remove() function is redundant now,
> >     delete it.
> >
> >  drivers/counter/ftm-quaddec.c | 31 +++++++++++--------------------
> >  1 file changed, 11 insertions(+), 20 deletions(-)
> >
> > diff --git a/drivers/counter/ftm-quaddec.c b/drivers/counter/ftm-quaddec.c
> > index 68a9b7393457..76c70a6c3593 100644
> > --- a/drivers/counter/ftm-quaddec.c
> > +++ b/drivers/counter/ftm-quaddec.c
> > @@ -100,16 +100,17 @@ static void ftm_quaddec_init(struct ftm_quaddec *ftm)
> >         ftm_set_write_protection(ftm);
> >  }
> >
> > -static void ftm_quaddec_disable(struct ftm_quaddec *ftm)
> > +static void ftm_quaddec_disable(void *ftm)
> >  {
> > -       ftm_clear_write_protection(ftm);
> > -       ftm_write(ftm, FTM_MODE, 0);
> > -       ftm_write(ftm, FTM_QDCTRL, 0);
> > +       struct ftm_quaddec *ftm_qua = ftm;
> >
> > +       ftm_clear_write_protection(ftm_qua);
> > +       ftm_write(ftm_qua, FTM_MODE, 0);
> > +       ftm_write(ftm_qua, FTM_QDCTRL, 0);
> >         /*
> >          * This is enough to disable the counter. No clock has been
> >          * selected by writing to FTM_SC in init()
> >          */
> > -       ftm_set_write_protection(ftm);
> > +       ftm_set_write_protection(ftm_qua);
> >  }
> >
> >  static int ftm_quaddec_get_prescaler(struct counter_device *counter,
> > @@ -316,22 +317,13 @@ static int ftm_quaddec_probe(struct platform_device *pdev)
> >         mutex_init(&ftm->ftm_quaddec_mutex);
> >
> >         ftm_quaddec_init(ftm);
> > -
> > -       ret = counter_register(&ftm->counter);
> > +       ret = devm_add_action_or_reset(&pdev->dev, ftm_quaddec_disable, ftm);
> >         if (ret)
> > -               ftm_quaddec_disable(ftm);
> > -
> > -       return ret;
> > -}
> > -
> > -static int ftm_quaddec_remove(struct platform_device *pdev)
> > -{
> > -       struct ftm_quaddec *ftm = platform_get_drvdata(pdev);
> > -
> > -       counter_unregister(&ftm->counter);
> > -
> > -       ftm_quaddec_disable(ftm);
> > +               return ret;
> >
> > +       ret = devm_counter_register(&pdev->dev, &ftm->counter);
> > +       if (ret)
> > +               return ret;
> >         return 0;
> >  }
> >
> > @@ -346,7 +338,6 @@ static struct platform_driver ftm_quaddec_driver = {
> >                 .of_match_table = ftm_quaddec_match,
> >         },
> >         .probe = ftm_quaddec_probe,
> > -       .remove = ftm_quaddec_remove,
> >  };
> >
> >  module_platform_driver(ftm_quaddec_driver);
> > --
> > 2.20.1
> >
Jonathan Cameron July 27, 2019, 1:31 p.m. UTC | #3
On Fri, 26 Jul 2019 14:51:30 +0200
Patrick Havelange <patrick.havelange@essensium.com> wrote:

> Hello,
> 
> On Fri, Jul 26, 2019 at 4:28 AM Chuhong Yuan <hslester96@gmail.com> wrote:
> >
> > Make use of devm_counter_register.
> > Then we can remove redundant unregistration API
> > usage to make code simpler.
> >
> > Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
> > ---
> > Changes in v2:
> >   - Use devm_add_action_or_reset to keep
> >     resource release order.  
> 
> This is better now indeed.
> 
> However it seems there is an issue with the mail/patch format, I'm
> unable to apply it with git am, and if you look at
> https://lore.kernel.org/patchwork/patch/1105782/ the diff section is
> missing the beginning of the patch. I don't know why, but I think it
> should be looked into.
> 
> Otherwise, it's fine by me.
Hi Patrick,

A formal, Acked-by or Reviewed-by definitely preferred if you are happy
to give one.

This looks fine to me as well. William, if you are happy with the resend
of this, then let me know if you want me to queue it up.

Thanks,

Jonathan

> 
> Regards,
> 
> Patrick Havelange
> 
> 
> >   - _remove() function is redundant now,
> >     delete it.
> >
> >  drivers/counter/ftm-quaddec.c | 31 +++++++++++--------------------
> >  1 file changed, 11 insertions(+), 20 deletions(-)
> >
> > diff --git a/drivers/counter/ftm-quaddec.c b/drivers/counter/ftm-quaddec.c
> > index 68a9b7393457..76c70a6c3593 100644
> > --- a/drivers/counter/ftm-quaddec.c
> > +++ b/drivers/counter/ftm-quaddec.c
> > @@ -100,16 +100,17 @@ static void ftm_quaddec_init(struct ftm_quaddec *ftm)
> >         ftm_set_write_protection(ftm);
> >  }
> >
> > -static void ftm_quaddec_disable(struct ftm_quaddec *ftm)
> > +static void ftm_quaddec_disable(void *ftm)
> >  {
> > -       ftm_clear_write_protection(ftm);
> > -       ftm_write(ftm, FTM_MODE, 0);
> > -       ftm_write(ftm, FTM_QDCTRL, 0);
> > +       struct ftm_quaddec *ftm_qua = ftm;
> >
> > +       ftm_clear_write_protection(ftm_qua);
> > +       ftm_write(ftm_qua, FTM_MODE, 0);
> > +       ftm_write(ftm_qua, FTM_QDCTRL, 0);
> >         /*
> >          * This is enough to disable the counter. No clock has been
> >          * selected by writing to FTM_SC in init()
> >          */
> > -       ftm_set_write_protection(ftm);
> > +       ftm_set_write_protection(ftm_qua);
> >  }
> >
> >  static int ftm_quaddec_get_prescaler(struct counter_device *counter,
> > @@ -316,22 +317,13 @@ static int ftm_quaddec_probe(struct platform_device *pdev)
> >         mutex_init(&ftm->ftm_quaddec_mutex);
> >
> >         ftm_quaddec_init(ftm);
> > -
> > -       ret = counter_register(&ftm->counter);
> > +       ret = devm_add_action_or_reset(&pdev->dev, ftm_quaddec_disable, ftm);
> >         if (ret)
> > -               ftm_quaddec_disable(ftm);
> > -
> > -       return ret;
> > -}
> > -
> > -static int ftm_quaddec_remove(struct platform_device *pdev)
> > -{
> > -       struct ftm_quaddec *ftm = platform_get_drvdata(pdev);
> > -
> > -       counter_unregister(&ftm->counter);
> > -
> > -       ftm_quaddec_disable(ftm);
> > +               return ret;
> >
> > +       ret = devm_counter_register(&pdev->dev, &ftm->counter);
> > +       if (ret)
> > +               return ret;
> >         return 0;
> >  }
> >
> > @@ -346,7 +338,6 @@ static struct platform_driver ftm_quaddec_driver = {
> >                 .of_match_table = ftm_quaddec_match,
> >         },
> >         .probe = ftm_quaddec_probe,
> > -       .remove = ftm_quaddec_remove,
> >  };
> >
> >  module_platform_driver(ftm_quaddec_driver);
> > --
> > 2.20.1
> >
William Breathitt Gray July 27, 2019, 6:13 p.m. UTC | #4
On Sat, Jul 27, 2019 at 02:31:33PM +0100, Jonathan Cameron wrote:
> On Fri, 26 Jul 2019 14:51:30 +0200
> Patrick Havelange <patrick.havelange@essensium.com> wrote:
> 
> > Hello,
> > 
> > On Fri, Jul 26, 2019 at 4:28 AM Chuhong Yuan <hslester96@gmail.com> wrote:
> > >
> > > Make use of devm_counter_register.
> > > Then we can remove redundant unregistration API
> > > usage to make code simpler.
> > >
> > > Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
> > > ---
> > > Changes in v2:
> > >   - Use devm_add_action_or_reset to keep
> > >     resource release order.  
> > 
> > This is better now indeed.
> > 
> > However it seems there is an issue with the mail/patch format, I'm
> > unable to apply it with git am, and if you look at
> > https://lore.kernel.org/patchwork/patch/1105782/ the diff section is
> > missing the beginning of the patch. I don't know why, but I think it
> > should be looked into.
> > 
> > Otherwise, it's fine by me.
> Hi Patrick,
> 
> A formal, Acked-by or Reviewed-by definitely preferred if you are happy
> to give one.
> 
> This looks fine to me as well. William, if you are happy with the resend
> of this, then let me know if you want me to queue it up.
> 
> Thanks,
> 
> Jonathan

I'm all right with these changes too. Feel free to queue up the resend
version in your tree when you are ready.

William Breathitt Gray

> 
> > 
> > Regards,
> > 
> > Patrick Havelange
> > 
> > 
> > >   - _remove() function is redundant now,
> > >     delete it.
> > >
> > >  drivers/counter/ftm-quaddec.c | 31 +++++++++++--------------------
> > >  1 file changed, 11 insertions(+), 20 deletions(-)
> > >
> > > diff --git a/drivers/counter/ftm-quaddec.c b/drivers/counter/ftm-quaddec.c
> > > index 68a9b7393457..76c70a6c3593 100644
> > > --- a/drivers/counter/ftm-quaddec.c
> > > +++ b/drivers/counter/ftm-quaddec.c
> > > @@ -100,16 +100,17 @@ static void ftm_quaddec_init(struct ftm_quaddec *ftm)
> > >         ftm_set_write_protection(ftm);
> > >  }
> > >
> > > -static void ftm_quaddec_disable(struct ftm_quaddec *ftm)
> > > +static void ftm_quaddec_disable(void *ftm)
> > >  {
> > > -       ftm_clear_write_protection(ftm);
> > > -       ftm_write(ftm, FTM_MODE, 0);
> > > -       ftm_write(ftm, FTM_QDCTRL, 0);
> > > +       struct ftm_quaddec *ftm_qua = ftm;
> > >
> > > +       ftm_clear_write_protection(ftm_qua);
> > > +       ftm_write(ftm_qua, FTM_MODE, 0);
> > > +       ftm_write(ftm_qua, FTM_QDCTRL, 0);
> > >         /*
> > >          * This is enough to disable the counter. No clock has been
> > >          * selected by writing to FTM_SC in init()
> > >          */
> > > -       ftm_set_write_protection(ftm);
> > > +       ftm_set_write_protection(ftm_qua);
> > >  }
> > >
> > >  static int ftm_quaddec_get_prescaler(struct counter_device *counter,
> > > @@ -316,22 +317,13 @@ static int ftm_quaddec_probe(struct platform_device *pdev)
> > >         mutex_init(&ftm->ftm_quaddec_mutex);
> > >
> > >         ftm_quaddec_init(ftm);
> > > -
> > > -       ret = counter_register(&ftm->counter);
> > > +       ret = devm_add_action_or_reset(&pdev->dev, ftm_quaddec_disable, ftm);
> > >         if (ret)
> > > -               ftm_quaddec_disable(ftm);
> > > -
> > > -       return ret;
> > > -}
> > > -
> > > -static int ftm_quaddec_remove(struct platform_device *pdev)
> > > -{
> > > -       struct ftm_quaddec *ftm = platform_get_drvdata(pdev);
> > > -
> > > -       counter_unregister(&ftm->counter);
> > > -
> > > -       ftm_quaddec_disable(ftm);
> > > +               return ret;
> > >
> > > +       ret = devm_counter_register(&pdev->dev, &ftm->counter);
> > > +       if (ret)
> > > +               return ret;
> > >         return 0;
> > >  }
> > >
> > > @@ -346,7 +338,6 @@ static struct platform_driver ftm_quaddec_driver = {
> > >                 .of_match_table = ftm_quaddec_match,
> > >         },
> > >         .probe = ftm_quaddec_probe,
> > > -       .remove = ftm_quaddec_remove,
> > >  };
> > >
> > >  module_platform_driver(ftm_quaddec_driver);
> > > --
> > > 2.20.1
> > >  
>

Patch
diff mbox series

diff --git a/drivers/counter/ftm-quaddec.c b/drivers/counter/ftm-quaddec.c
index 68a9b7393457..76c70a6c3593 100644
--- a/drivers/counter/ftm-quaddec.c
+++ b/drivers/counter/ftm-quaddec.c
@@ -100,16 +100,17 @@  static void ftm_quaddec_init(struct ftm_quaddec *ftm)
 	ftm_set_write_protection(ftm);
 }
 
-static void ftm_quaddec_disable(struct ftm_quaddec *ftm)
+static void ftm_quaddec_disable(void *ftm)
 {
-	ftm_clear_write_protection(ftm);
-	ftm_write(ftm, FTM_MODE, 0);
-	ftm_write(ftm, FTM_QDCTRL, 0);
+	struct ftm_quaddec *ftm_qua = ftm;

+	ftm_clear_write_protection(ftm_qua);
+	ftm_write(ftm_qua, FTM_MODE, 0);
+	ftm_write(ftm_qua, FTM_QDCTRL, 0);
 	/*
 	 * This is enough to disable the counter. No clock has been
 	 * selected by writing to FTM_SC in init()
 	 */
-	ftm_set_write_protection(ftm);
+	ftm_set_write_protection(ftm_qua);
 }