Re: [PATCH 3/3] pinctrl: sx150x: add a static gpio/pinctrl pin range mapping
From: Peter Rosin
Date: Wed Jan 17 2018 - 10:38:01 EST
On 2018-01-17 16:05, Andrew Jeffery wrote:
> On Wed, 2018-01-17 at 14:34 +0100, Peter Rosin wrote:
>> Without such a range, gpiolib fails with -EPROBE_DEFER, pending the
>> addition of the range. So, without a range, gpiolib will keep
>> deferring indefinitely.
>>
>> Fixes: e10f72bf4b3e ("gpio: gpiolib: Generalise state persistence beyond sleep")
>
> This is a bit of a nit-pick, but I'd argue the hazard always existed in
> the pinctrl-sx150x's probe however hadn't been triggered until now. My
> instinct is Fixes should instead point to 9e80f9064e73 ("pinctrl: Add
> SX150X GPIO Extender Pinctrl Driver"). Having said that I still think
> it's worth pointing out in the commit message that e10f72bf4b3e ("gpio:
> gpiolib: Generalise state persistence beyond sleep") is the motivation
> for your patch (i.e. mention both commits).
Linus, if you agree, just change the commit message as you see fit. Can't
say I'm proud of any of it...
Cheers,
Peter
> Regardless, thanks to you both for getting to the bottom of this.
>
> Andrew
>
>> Suggested-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
>> Signed-off-by: Peter Rosin <peda@xxxxxxxxxx>
>> ---
>> drivers/pinctrl/pinctrl-sx150x.c | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/drivers/pinctrl/pinctrl-sx150x.c b/drivers/pinctrl/pinctrl-sx150x.c
>> index 049dd15e04ef..cbf58a10113d 100644
>> --- a/drivers/pinctrl/pinctrl-sx150x.c
>> +++ b/drivers/pinctrl/pinctrl-sx150x.c
>> @@ -1193,6 +1193,11 @@ static int sx150x_probe(struct i2c_client *client,
>> if (ret)
>> return ret;
>>
>> + ret = gpiochip_add_pin_range(&pctl->gpio, dev_name(dev),
>> + 0, 0, pctl->data->npins);
>> + if (ret)
>> + return ret;
>> +
>> /* Add Interrupt support if an irq is specified */
>> if (client->irq > 0) {
>> pctl->irq_chip.name = devm_kstrdup(dev, client->name,