All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthias Brugger <matthias.bgg@gmail.com>
To: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org,
	 linux-kernel@vger.kernel.org, nfraprado@collabora.com,
	rex-bc.chen@mediatek.com, zhiyong.tao@mediatek.com
Subject: Re: [PATCH v3 3/5] soc: mediatek: pwrap: Move and check return value of platform_get_irq()
Date: Tue, 17 May 2022 11:49:32 +0200	[thread overview]
Message-ID: <bb1aea80-a926-8545-646e-bb526bc5cb84@gmail.com> (raw)
In-Reply-To: <03ac9b18-cb5d-5ff6-d220-f2f4062cea7e@collabora.com>



On 17/05/2022 11:34, AngeloGioacchino Del Regno wrote:
> Il 17/05/22 11:18, Matthias Brugger ha scritto:
>>
>>
>> On 16/05/2022 14:46, AngeloGioacchino Del Regno wrote:
>>> Move the call to platform_get_irq() earlier in the probe function
>>> and check for its return value: if no interrupt is specified, it
>>> wouldn't make sense to try to call devm_request_irq() so, in that
>>> case, we can simply return early.
>>>
>>> Moving the platform_get_irq() call also makes it possible to use
>>> one less goto, as clocks aren't required at that stage.
>>>
>>> Signed-off-by: AngeloGioacchino Del Regno 
>>> <angelogioacchino.delregno@collabora.com>
>>> Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>>> Tested-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>>> ---
>>>   drivers/soc/mediatek/mtk-pmic-wrap.c | 5 ++++-
>>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/soc/mediatek/mtk-pmic-wrap.c 
>>> b/drivers/soc/mediatek/mtk-pmic-wrap.c
>>> index 852514366f1f..332cbcabc299 100644
>>> --- a/drivers/soc/mediatek/mtk-pmic-wrap.c
>>> +++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
>>> @@ -2204,6 +2204,10 @@ static int pwrap_probe(struct platform_device *pdev)
>>>       if (!wrp)
>>>           return -ENOMEM;
>>> +    irq = platform_get_irq(pdev, 0);
>>> +    if (irq < 0)
>>> +        return irq;
>>> +
>>>       platform_set_drvdata(pdev, wrp);
>>>       wrp->master = of_device_get_match_data(&pdev->dev);
>>> @@ -2316,7 +2320,6 @@ static int pwrap_probe(struct platform_device *pdev)
>>>       if (HAS_CAP(wrp->master->caps, PWRAP_CAP_INT1_EN))
>>>           pwrap_writel(wrp, wrp->master->int1_en_all, PWRAP_INT1_EN);
>>> -    irq = platform_get_irq(pdev, 0);
>>
>> For better readability of the code I'd prefer to keep platform_get_irq next to 
>> devm_request_irq. I understand that you did this change so that you don't have 
>> to code
>> if (irq < 0) {
>>      ret = irq;
>>      goto err_out2;
>> }
>>
>> Or do I miss something?
>>
> 
> That's for the sake of reducing gotos in the code... but there's a bigger
> picture that I haven't explained in this commit and that will come later
> because I currently don't have the necessary time to perform a "decent"
> testing.
> 
> As I was explaining - the bigger pictures implies adding a new function for
> clock teardown, that we will add as a devm action:
> 
> devm_add_action_or_reset(&pdev->dev, pwrap_clk_disable_unprepare, wrp)
> 
> ...so that we will be able to remove *all* gotos from the probe function.
> 
> Sounds good?
> 

Sounds good, but that means we could get rid of the goto as well. Anyway I 
prefer to have platform_get_irq next to devm_request_irq. If we can get rid of 
the goto in the future, great.

Regards,
Matthias

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

WARNING: multiple messages have this Message-ID (diff)
From: Matthias Brugger <matthias.bgg@gmail.com>
To: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org,
	 linux-kernel@vger.kernel.org, nfraprado@collabora.com,
	rex-bc.chen@mediatek.com, zhiyong.tao@mediatek.com
Subject: Re: [PATCH v3 3/5] soc: mediatek: pwrap: Move and check return value of platform_get_irq()
Date: Tue, 17 May 2022 11:49:32 +0200	[thread overview]
Message-ID: <bb1aea80-a926-8545-646e-bb526bc5cb84@gmail.com> (raw)
In-Reply-To: <03ac9b18-cb5d-5ff6-d220-f2f4062cea7e@collabora.com>



On 17/05/2022 11:34, AngeloGioacchino Del Regno wrote:
> Il 17/05/22 11:18, Matthias Brugger ha scritto:
>>
>>
>> On 16/05/2022 14:46, AngeloGioacchino Del Regno wrote:
>>> Move the call to platform_get_irq() earlier in the probe function
>>> and check for its return value: if no interrupt is specified, it
>>> wouldn't make sense to try to call devm_request_irq() so, in that
>>> case, we can simply return early.
>>>
>>> Moving the platform_get_irq() call also makes it possible to use
>>> one less goto, as clocks aren't required at that stage.
>>>
>>> Signed-off-by: AngeloGioacchino Del Regno 
>>> <angelogioacchino.delregno@collabora.com>
>>> Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>>> Tested-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>>> ---
>>>   drivers/soc/mediatek/mtk-pmic-wrap.c | 5 ++++-
>>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/soc/mediatek/mtk-pmic-wrap.c 
>>> b/drivers/soc/mediatek/mtk-pmic-wrap.c
>>> index 852514366f1f..332cbcabc299 100644
>>> --- a/drivers/soc/mediatek/mtk-pmic-wrap.c
>>> +++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
>>> @@ -2204,6 +2204,10 @@ static int pwrap_probe(struct platform_device *pdev)
>>>       if (!wrp)
>>>           return -ENOMEM;
>>> +    irq = platform_get_irq(pdev, 0);
>>> +    if (irq < 0)
>>> +        return irq;
>>> +
>>>       platform_set_drvdata(pdev, wrp);
>>>       wrp->master = of_device_get_match_data(&pdev->dev);
>>> @@ -2316,7 +2320,6 @@ static int pwrap_probe(struct platform_device *pdev)
>>>       if (HAS_CAP(wrp->master->caps, PWRAP_CAP_INT1_EN))
>>>           pwrap_writel(wrp, wrp->master->int1_en_all, PWRAP_INT1_EN);
>>> -    irq = platform_get_irq(pdev, 0);
>>
>> For better readability of the code I'd prefer to keep platform_get_irq next to 
>> devm_request_irq. I understand that you did this change so that you don't have 
>> to code
>> if (irq < 0) {
>>      ret = irq;
>>      goto err_out2;
>> }
>>
>> Or do I miss something?
>>
> 
> That's for the sake of reducing gotos in the code... but there's a bigger
> picture that I haven't explained in this commit and that will come later
> because I currently don't have the necessary time to perform a "decent"
> testing.
> 
> As I was explaining - the bigger pictures implies adding a new function for
> clock teardown, that we will add as a devm action:
> 
> devm_add_action_or_reset(&pdev->dev, pwrap_clk_disable_unprepare, wrp)
> 
> ...so that we will be able to remove *all* gotos from the probe function.
> 
> Sounds good?
> 

Sounds good, but that means we could get rid of the goto as well. Anyway I 
prefer to have platform_get_irq next to devm_request_irq. If we can get rid of 
the goto in the future, great.

Regards,
Matthias

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Matthias Brugger <matthias.bgg@gmail.com>
To: AngeloGioacchino Del Regno  <angelogioacchino.delregno@collabora.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org,
	nfraprado@collabora.com, rex-bc.chen@mediatek.com,
	zhiyong.tao@mediatek.com
Subject: Re: [PATCH v3 3/5] soc: mediatek: pwrap: Move and check return value of platform_get_irq()
Date: Tue, 17 May 2022 11:49:32 +0200	[thread overview]
Message-ID: <bb1aea80-a926-8545-646e-bb526bc5cb84@gmail.com> (raw)
In-Reply-To: <03ac9b18-cb5d-5ff6-d220-f2f4062cea7e@collabora.com>



On 17/05/2022 11:34, AngeloGioacchino Del Regno wrote:
> Il 17/05/22 11:18, Matthias Brugger ha scritto:
>>
>>
>> On 16/05/2022 14:46, AngeloGioacchino Del Regno wrote:
>>> Move the call to platform_get_irq() earlier in the probe function
>>> and check for its return value: if no interrupt is specified, it
>>> wouldn't make sense to try to call devm_request_irq() so, in that
>>> case, we can simply return early.
>>>
>>> Moving the platform_get_irq() call also makes it possible to use
>>> one less goto, as clocks aren't required at that stage.
>>>
>>> Signed-off-by: AngeloGioacchino Del Regno 
>>> <angelogioacchino.delregno@collabora.com>
>>> Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>>> Tested-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>>> ---
>>>   drivers/soc/mediatek/mtk-pmic-wrap.c | 5 ++++-
>>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/soc/mediatek/mtk-pmic-wrap.c 
>>> b/drivers/soc/mediatek/mtk-pmic-wrap.c
>>> index 852514366f1f..332cbcabc299 100644
>>> --- a/drivers/soc/mediatek/mtk-pmic-wrap.c
>>> +++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
>>> @@ -2204,6 +2204,10 @@ static int pwrap_probe(struct platform_device *pdev)
>>>       if (!wrp)
>>>           return -ENOMEM;
>>> +    irq = platform_get_irq(pdev, 0);
>>> +    if (irq < 0)
>>> +        return irq;
>>> +
>>>       platform_set_drvdata(pdev, wrp);
>>>       wrp->master = of_device_get_match_data(&pdev->dev);
>>> @@ -2316,7 +2320,6 @@ static int pwrap_probe(struct platform_device *pdev)
>>>       if (HAS_CAP(wrp->master->caps, PWRAP_CAP_INT1_EN))
>>>           pwrap_writel(wrp, wrp->master->int1_en_all, PWRAP_INT1_EN);
>>> -    irq = platform_get_irq(pdev, 0);
>>
>> For better readability of the code I'd prefer to keep platform_get_irq next to 
>> devm_request_irq. I understand that you did this change so that you don't have 
>> to code
>> if (irq < 0) {
>>      ret = irq;
>>      goto err_out2;
>> }
>>
>> Or do I miss something?
>>
> 
> That's for the sake of reducing gotos in the code... but there's a bigger
> picture that I haven't explained in this commit and that will come later
> because I currently don't have the necessary time to perform a "decent"
> testing.
> 
> As I was explaining - the bigger pictures implies adding a new function for
> clock teardown, that we will add as a devm action:
> 
> devm_add_action_or_reset(&pdev->dev, pwrap_clk_disable_unprepare, wrp)
> 
> ...so that we will be able to remove *all* gotos from the probe function.
> 
> Sounds good?
> 

Sounds good, but that means we could get rid of the goto as well. Anyway I 
prefer to have platform_get_irq next to devm_request_irq. If we can get rid of 
the goto in the future, great.

Regards,
Matthias

  reply	other threads:[~2022-05-17  9:49 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-16 12:46 [PATCH v3 0/5] MediaTek PMIC Wrap improvements and cleanups AngeloGioacchino Del Regno
2022-05-16 12:46 ` AngeloGioacchino Del Regno
2022-05-16 12:46 ` AngeloGioacchino Del Regno
2022-05-16 12:46 ` [PATCH v3 1/5] soc: mediatek: pwrap: Use readx_poll_timeout() instead of custom function AngeloGioacchino Del Regno
2022-05-16 12:46   ` AngeloGioacchino Del Regno
2022-05-16 12:46   ` AngeloGioacchino Del Regno
2022-05-17  9:25   ` Matthias Brugger
2022-05-17  9:25     ` Matthias Brugger
2022-05-17  9:25     ` Matthias Brugger
2022-05-17  9:41     ` AngeloGioacchino Del Regno
2022-05-17  9:41       ` AngeloGioacchino Del Regno
2022-05-17  9:41       ` AngeloGioacchino Del Regno
2022-05-17  9:44       ` Matthias Brugger
2022-05-17  9:44         ` Matthias Brugger
2022-05-17  9:44         ` Matthias Brugger
2022-05-16 12:46 ` [PATCH v3 2/5] soc: mediatek: pwrap: Switch to devm_platform_ioremap_resource_byname() AngeloGioacchino Del Regno
2022-05-16 12:46   ` AngeloGioacchino Del Regno
2022-05-16 12:46   ` AngeloGioacchino Del Regno
2022-05-16 12:46 ` [PATCH v3 3/5] soc: mediatek: pwrap: Move and check return value of platform_get_irq() AngeloGioacchino Del Regno
2022-05-16 12:46   ` AngeloGioacchino Del Regno
2022-05-16 12:46   ` AngeloGioacchino Del Regno
2022-05-17  9:18   ` Matthias Brugger
2022-05-17  9:18     ` Matthias Brugger
2022-05-17  9:18     ` Matthias Brugger
2022-05-17  9:34     ` AngeloGioacchino Del Regno
2022-05-17  9:34       ` AngeloGioacchino Del Regno
2022-05-17  9:34       ` AngeloGioacchino Del Regno
2022-05-17  9:49       ` Matthias Brugger [this message]
2022-05-17  9:49         ` Matthias Brugger
2022-05-17  9:49         ` Matthias Brugger
2022-05-17 10:35         ` AngeloGioacchino Del Regno
2022-05-17 10:35           ` AngeloGioacchino Del Regno
2022-05-17 10:35           ` AngeloGioacchino Del Regno
2022-05-16 12:46 ` [PATCH v3 4/5] soc: mediatek: pwrap: Move IO pointers to new structure AngeloGioacchino Del Regno
2022-05-16 12:46   ` AngeloGioacchino Del Regno
2022-05-16 12:46   ` AngeloGioacchino Del Regno
2022-05-16 12:46 ` [PATCH v3 5/5] soc: mediatek: pwrap: Compress of_device_id entries to one line AngeloGioacchino Del Regno
2022-05-16 12:46   ` AngeloGioacchino Del Regno
2022-05-16 12:46   ` AngeloGioacchino Del Regno
2022-05-17  9:23   ` Matthias Brugger
2022-05-17  9:23     ` Matthias Brugger
2022-05-17  9:23     ` Matthias Brugger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bb1aea80-a926-8545-646e-bb526bc5cb84@gmail.com \
    --to=matthias.bgg@gmail.com \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=nfraprado@collabora.com \
    --cc=rex-bc.chen@mediatek.com \
    --cc=zhiyong.tao@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.