Re: [PATCH/RFC v5 01/57] leds: Add brightness_set_nonblocking op

From: Pavel Machek
Date: Thu Aug 13 2015 - 10:23:57 EST


On Thu 2015-08-13 16:15:47, Andrew Lunn wrote:
> On Tue, Aug 11, 2015 at 11:37:14AM +0200, Jacek Anaszewski wrote:
> > This patch adds a new brightness_set_nonblocking op to the LED subsystem.
> > The op is intended for drivers that set brightness in a non-blocking way,
> > i.e. they neither sleep nor use delays while setting brightness.
> >
> > Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
> > Cc: Bryan Wu <cooloney@xxxxxxxxx>
> > Cc: Andrew Lunn <andrew@xxxxxxx>
> > Cc: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
> > Cc: Pavel Machek <pavel@xxxxxx>
> > Cc: Stas Sergeev <stsp@xxxxxxxxxxxxxxxxxxxxx>
> > ---
> > include/linux/leds.h | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/include/linux/leds.h b/include/linux/leds.h
> > index b122eea..c32f1b8 100644
> > --- a/include/linux/leds.h
> > +++ b/include/linux/leds.h
> > @@ -53,6 +53,9 @@ struct led_classdev {
> > /* Must not sleep, use a workqueue if needed */
> > void (*brightness_set)(struct led_classdev *led_cdev,
> > enum led_brightness brightness);
> > + /* Intended for drivers that set brightness in a non-blocking way */
> > + void (*brightness_set_nonblocking)(struct led_classdev *led_cdev,
> > + enum led_brightness brightness);
>
> Hi Jacek
>
> >From an API design point of view, i'm not sure this is the best way to
> go. You now have two calls which do the same thing, with the plan that
> you want to invert the meaning of brightness_set, the old well known
> API call, sometime later. This inverting the meaning is going to catch
> people out and introduce bugs.

Yes please.
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
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/