[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1274875268.24079.1.camel@rex>
Date: Wed, 26 May 2010 13:01:08 +0100
From: Richard Purdie <rpurdie@...ys.net>
To: Mark Brown <broonie@...nsource.wolfsonmicro.com>
Cc: Uwe Kleine-K?nig <u.kleine-koenig@...gutronix.de>,
Philippe R?tornaz <philippe.retornaz@...l.ch>,
linux-arm-kernel@...ts.infradead.org,
maramaopercheseimorto@...il.com, sameo@...ux.intel.com,
s.hauer@...gutronix.de, linux-kernel@...r.kernel.org,
valentin.longchamp@...l.ch
Subject: Re: [PATCH 1/2] mc13783: add LED support
On Mon, 2010-05-17 at 21:00 +0100, Mark Brown wrote:
> On Mon, May 17, 2010 at 09:02:42PM +0200, Uwe Kleine-K?nig wrote:
> > On Mon, May 17, 2010 at 06:40:22PM +0200, Philippe R?tornaz wrote:
>
> > > +static void mc13783_led_set(struct led_classdev *led_cdev,
> > > + enum led_brightness value)
> > > +{
> > > + struct mc13783_led *led;
> > > +
> > > + led = container_of(led_cdev, struct mc13783_led, cdev);
> > > + led->new_brightness = value;
> > > + schedule_work(&led->work);
> > > +}
>
> > I wonder why you don't set the registers directly here, but use a work
> > struct instead.
>
> The LED API allows clients to configure the LEDs from interrupt context
> so for devices on blocking buses (like this) the driver needs to defer
> the actual implementation of the change.
>
> It'd be nice to add helpers for this to the LED core, there's quite a
> few drivers implementing this idiom now - a flag that does the deferring
> of the set() for example.
Agreed, or a wrapper around the core which deferred implementations
could just use. I'm open to patches :)
Cheers,
Richard
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists