From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 76F62C433FF for ; Sat, 27 Jul 2019 13:31:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 621182075C for ; Sat, 27 Jul 2019 13:31:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387647AbfG0Nbh (ORCPT ); Sat, 27 Jul 2019 09:31:37 -0400 Received: from saturn.retrosnub.co.uk ([46.235.226.198]:42860 "EHLO saturn.retrosnub.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387514AbfG0Nbh (ORCPT ); Sat, 27 Jul 2019 09:31:37 -0400 Received: from archlinux (cpc149474-cmbg20-2-0-cust94.5-4.cable.virginm.net [82.4.196.95]) by saturn.retrosnub.co.uk (Postfix; Retrosnub mail submission) with ESMTPSA id 941819E6A6F; Sat, 27 Jul 2019 14:31:34 +0100 (BST) Date: Sat, 27 Jul 2019 14:31:33 +0100 From: Jonathan Cameron To: Patrick Havelange Cc: Chuhong Yuan , William Breathitt Gray , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2] counter/ftm-quaddec: Use device-managed registration API Message-ID: <20190727143133.26a36f70@archlinux> In-Reply-To: References: <20190726022836.7182-1-hslester96@gmail.com> X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 26 Jul 2019 14:51:30 +0200 Patrick Havelange wrote: > Hello, > > On Fri, Jul 26, 2019 at 4:28 AM Chuhong Yuan wrote: > > > > Make use of devm_counter_register. > > Then we can remove redundant unregistration API > > usage to make code simpler. > > > > Signed-off-by: Chuhong Yuan > > --- > > 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 > >