[PATCH] iio: adc: fsl-imx25-gcq: fix the right check andsimplify code
tangbin
tangbin at cmss.chinamobile.com
Mon Aug 2 04:50:26 PDT 2021
Hi Jonathan:
On 2021/8/2 18:16, Jonathan Cameron wrote:
> On Mon, 2 Aug 2021 10:31:58 +0800
> tangbin <tangbin at cmss.chinamobile.com> wrote:
>
>> Hi Jonathan:
>>
>> On 2021/8/1 0:45, Jonathan Cameron wrote:
>>> On Tue, 27 Jul 2021 20:52:09 +0800
>>> Tang Bin <tangbin at cmss.chinamobile.com> wrote:
>>>
>>>> For the function of platform_get_irq(), the example in platform.c is
>>>> * int irq = platform_get_irq(pdev, 0);
>>>> * if (irq < 0)
>>>> * return irq;
>>>> So the return value of zero is unnecessary to check. And move it
>>>> up to a little bit can simplify the code jump.
>>>>
>>>> Co-developed-by: Zhang Shengju <zhangshengju at cmss.chinamobile.com>
>>>> Signed-off-by: Zhang Shengju <zhangshengju at cmss.chinamobile.com>
>>>> Signed-off-by: Tang Bin <tangbin at cmss.chinamobile.com>
>>> Hi,
>>>
>>> Logically it is better to keep the irq handling all together, so
>>> I would prefer we didn't move it.
>> Got it in this place.
>>> Also, platform_get_irq() is documented as never returning 0, so the current
>>> code is not incorrect. As such, this looks like noise unless there is
>>> some plan to make use of the 0 return value? What benefit do we get from
>>> this change?
>> Thanks for your reply, I think the benefit of this change maybe just
>> simplify the code.
>>
>> Because the return value is never equal to 0, so the check in here is
>> redundant.
>>
>> We can make the patch like this:
>>
>>>> ---
>>>> drivers/iio/adc/fsl-imx25-gcq.c | 12 ++++--------
>>>> 1 file changed, 4 insertions(+), 8 deletions(-)
>>>>
>>>> diff --git a/drivers/iio/adc/fsl-imx25-gcq.c b/drivers/iio/adc/fsl-imx25-gcq.c
>>>> index 8cb51cf7a..d28976f21 100644
>>>> --- a/drivers/iio/adc/fsl-imx25-gcq.c
>>>> +++ b/drivers/iio/adc/fsl-imx25-gcq.c
>>>> @@ -320,6 +320,10 @@ static int mx25_gcq_probe(struct platform_device *pdev)
>>>> if (ret)
>>>> return ret;
>>>>
>>>> + priv->irq = platform_get_irq(pdev, 0);
>>>> + if (priv->irq < 0)
>>>> + return priv->irq;
>>>> +
>>>> for (i = 0; i != 4; ++i) {
>>>> if (!priv->vref[i])
>>>> continue;
>>>> @@ -336,14 +340,6 @@ static int mx25_gcq_probe(struct platform_device *pdev)
>>>> goto err_vref_disable;
>>>> }
>>>>
>>>> - priv->irq = platform_get_irq(pdev, 0);
>>>> - if (priv->irq <= 0) {
>>>> - ret = priv->irq;
>>>> - if (!ret)
>>>> - ret = -ENXIO;
>>>> - goto err_clk_unprepare;
>>>> - }
>>>> -
>> priv->irq = platform_get_irq(pdev, 0);
>> if (priv->irq < 0) {
>> ret = priv->irq;
>> goto err_clk_unprepare;
>> }
>>
>> If you think this is ok, I will send V2 for you. If you think these
>> change is meaningless,
> OK, it's a minor tidy up, so lets go with that, or perhaps this is even tidier?
> Assuming types of ret and irq are appropriate (I've not checked!)
>
>
> ret = platform_get_irq(pdev, 0);
> if (ret)
> goto err_clk_unprepare;
>
> priv->irq = ret;
>
Thanks for your reply, ret or irq or priv->irq are all appropriate, and
the changes of mine maybe traditional.
I will send v2 for you like your changes.
Thank you very much.
Tang Bin
>> just dropped this.
>>
>> Thanks
>>
>> Tang Bin
>>
>>
>>
>>
More information about the linux-arm-kernel
mailing list