Re: [PATCH 4/4] mfd: twl6040-core: Use gpio_request_one

From: Igor Grinberg
Date: Thu Dec 01 2011 - 04:10:15 EST


On 12/01/11 10:18, Axel Lin wrote:
> 2011/12/1 Igor Grinberg <grinberg@xxxxxxxxxxxxxx>:
>> On 12/01/11 03:55, Axel Lin wrote:
>>> Use gpio_request_one() instead of multiple gpiolib calls.
>>>
>>> Signed-off-by: Axel Lin <axel.lin@xxxxxxxxx>
>>> ---
>>> drivers/mfd/twl6040-core.c | 7 ++-----
>>> 1 files changed, 2 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/mfd/twl6040-core.c b/drivers/mfd/twl6040-core.c
>>> index 268f80f..e57b1d1 100644
>>> --- a/drivers/mfd/twl6040-core.c
>>> +++ b/drivers/mfd/twl6040-core.c
>>> @@ -509,13 +509,10 @@ static int __devinit twl6040_probe(struct platform_device *pdev)
>>> twl6040->audpwron = -EINVAL;
>>>
>>> if (gpio_is_valid(twl6040->audpwron)) {
>>> - ret = gpio_request(twl6040->audpwron, "audpwron");
>>> + ret = gpio_request_one(twl6040->audpwron, GPIOF_OUT_INIT_LOW,
>>> + "audpwron");
>>> if (ret)
>>> goto gpio1_err;
>>> -
>>> - ret = gpio_direction_output(twl6040->audpwron, 0);
>>> - if (ret)
>>> - goto gpio2_err;
>>> }
>>
>> same here, double check gpio_is_valid()?
>
> In the case of
> twl6040->audpwron = -EINVAL; ( see line 509 )
> gpio_is_valid returns false, we just don't request gpio.
>
> If we remove the gpio_is_valid checking here,
> then gpio_request_one will return -EINVAL.
> Then the code always goes to the error path if twl6040->audpwron is -EINVAL.

Thanks for the explanation.
So the GPIO is optional - now it makes sense to me.


--
Regards,
Igor.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/