[PATCH 1/5] gpiolib: devres: Introduce the function devm_request_gpio_array
Rob Jones
rob.jones at codethink.co.uk
Wed Jul 9 05:48:29 PDT 2014
On 09/07/14 12:52, Julia Lawall wrote:
>
>
> On Wed, 9 Jul 2014, Rob Jones wrote:
>
>> Please note that I submitted a patch on 02/07/14 to create this
>> function which was acked by Linus Walleij on 05/07/14.
>>
>> Great minds think alike, and all that.
>>
>> However, I think that the version I submitted better replicates the
>> original (non devm) functionality, see below.
<snip>
>>> +int devm_gpio_request_array(struct device *dev, const struct gpio *array,
>>> + size_t num)
>>> +{
>>> + int i, err;
>>> +
>>> + for (i = 0; i < num; i++, array++) {
>>> + err = devm_gpio_request_one(dev, array->gpio, array->flags,
>>> + array->label);
>>> + if (err)
>>> + return err;
>>
>> The failure path in the version I submitted frees up any already
>> allocated gpios on the first failure.
>
> Himangi first proposed doing that, but I thought it was not really in the
> spirit of devm functions, which is to leave that implicit. No strong
> opinion on the matter, though.
>
Interestingly, we came at it from the other direction: I originally
didn't have the unwind in and our internal review guys suggested that
it was in the original function so putting it in would:
1. make this a better analogue of the original
2. help avoid deadlocks
3. allow the driver to retry, perhaps requesting reduced functionality.
> julia
>
<snip>
--
Rob Jones
Codethink Ltd
mailto:rob.jones at codethink.co.uk
tel:+44 161 236 5575
More information about the linux-arm-kernel
mailing list