Re: [PATCH v1 1/2] leds: trigger: gpio: GPIO 0 is valid

Andy Shevchenko
2019-08-30T15:01:57Z

On Mon, Aug 26, 2019 at 08:36:04PM +0200, Jacek Anaszewski wrote:
> On 8/26/19 11:57 AM, Andy Shevchenko wrote:
> > On Sat, Aug 24, 2019 at 06:47:54PM +0200, Jacek Anaszewski wrote:
> >> On 8/21/19 7:17 PM, Andy Shevchenko wrote:
> >>> Allow all valid GPIOs to be used in the driver.
> >>>
> >>> Fixes: 17354bfe8527 ("leds: Add gpio-led trigger")
> >>> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> >
> >>> - if (!gpio) {
> >>> - if (gpio_data->gpio != 0)
> >>> + if (!gpio_is_valid(gpio)) {
> >>> + if (gpio_is_valid(gpio_data->gpio))
> >>> free_irq(gpio_to_irq(gpio_data->gpio), led);
> >>> - gpio_data->gpio = 0;
> >>> + gpio_data->gpio = gpio;
> >>
> >> It looks odd to me. I'd just assign invalid constant gpio number
> >> e.g. -1.
> >
> > Current ABI (unsigned) doesn't allow us to do this. Internally we can redefine
>
> Ah, right, missed that.
>
> > invalid GPIO line number to -1 or so, but does it worth it? And actually I
> > would prefer -EINVAL or -ENOENT in such cases.
>
> OK, we can keep your "= gpio" assignment in view of the above, but need
> to return error instead of "n".

Then we will break an ABI, where user expects no error it suddenly will be one.

--
With Best Regards,
Andy Shevchenko