Re: [PATCH v2 08/23] gpio: sysfs: use gpio_device_find() to iterate over existing devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 5, 2024 at 2:47 PM Andy Shevchenko
<andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
>
> On Mon, Feb 05, 2024 at 02:39:40PM +0100, Bartosz Golaszewski wrote:
> > On Mon, Feb 5, 2024 at 2:38 PM Andy Shevchenko
> > <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
> > > On Mon, Feb 05, 2024 at 02:19:10PM +0100, Bartosz Golaszewski wrote:
> > > > On Mon, Feb 5, 2024 at 1:36 PM Andy Shevchenko
> > > > <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
> > > > > On Mon, Feb 05, 2024 at 10:34:03AM +0100, Bartosz Golaszewski wrote:
>
> ...
>
> > > > > > +static int gpiofind_sysfs_register(struct gpio_chip *gc, void *data)
> > > > > > +{
> > > > > > +     struct gpio_device *gdev = gc->gpiodev;
> > > > > > +     int ret;
> > > > > > +
> > > > > > +     if (gdev->mockdev)
> > > > > > +             return 0;
> > > > > > +
> > > > > > +     ret = gpiochip_sysfs_register(gdev);
> > > > > > +     if (ret)
> > > > > > +             chip_err(gc, "failed to register the sysfs entry: %d\n", ret);
> > > > >
> > > > > > +     return 0;
> > > > >
> > > > > ???
> > >
> > > What the point of function to be int if you effectively ignore this by always
> > > returning 0?
> > >
> >
> > Because the signature of the callback expects an int to be returned?
>
> But why do you return 0 instead of ret?
>

Because we don't want to *find* a device really. We just want to
iterate over all of them and call a callback. Any value other than 0
will be interpreted as a match. Besides: failure to register one GPIO
sysfs entry shouldn't maybe cause a failure for all subsequent
devices?

Bart

> > > > Not sure what the ... and ??? mean? The commit message should have
> > > > read "... traverse it from gpiofind_sysfs_register()" I agree but the
> > > > latter?
> > >
> > > I didn't realize this may not be obvious :-(.
> > >
> > > > > > +}
>
> --
> With Best Regards,
> Andy Shevchenko
>
>





[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux