* [PATCH] leds: use led_brightness_set in led_trigger_event @ 2012-06-11 20:57 Fabio Baltieri 2012-06-11 21:38 ` Shuah Khan 0 siblings, 1 reply; 7+ messages in thread From: Fabio Baltieri @ 2012-06-11 20:57 UTC (permalink / raw) To: Bryan Wu; +Cc: linux-leds, linux-kernel, Richard Purdie, Fabio Baltieri Fix led_trigger_event() to use led_brightness_set() instead of led_set_brightness(), so that any pending blink timer is stopped before setting the new brightness value. Without this fix LED status may be overridden by a pending timer. This allows a trigger to use a mix of led_trigger_event(), led_trigger_blink() and led_trigger_blink_oneshot() without races. Signed-off-by: Fabio Baltieri <fabio.baltieri@gmail.com> Cc: Bryan Wu <bryan.wu@canonical.com> --- Hi Bryan, I found this one while working on another patch but I think it's also needed by other drivers which mixes led_trigger_blink() and led_trigger_event(), such as power_supply_leds. Without this a led don't stop blinking as it should when calling led_trigger_event(). Should not cause any harm on other drivers. (I'm starting to find the whole led_set_brightness/led_brightness_set thing a bit confusing BTW...) Fabio drivers/leds/led-triggers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c index fa0b9be..b88d3b9 100644 --- a/drivers/leds/led-triggers.c +++ b/drivers/leds/led-triggers.c @@ -224,7 +224,7 @@ void led_trigger_event(struct led_trigger *trig, struct led_classdev *led_cdev; led_cdev = list_entry(entry, struct led_classdev, trig_list); - led_set_brightness(led_cdev, brightness); + led_brightness_set(led_cdev, brightness); } read_unlock(&trig->leddev_list_lock); } -- 1.7.11.rc1.9.gf623ca1.dirty ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] leds: use led_brightness_set in led_trigger_event 2012-06-11 20:57 [PATCH] leds: use led_brightness_set in led_trigger_event Fabio Baltieri @ 2012-06-11 21:38 ` Shuah Khan 2012-06-12 7:16 ` Fabio Baltieri 0 siblings, 1 reply; 7+ messages in thread From: Shuah Khan @ 2012-06-11 21:38 UTC (permalink / raw) To: Fabio Baltieri Cc: shuahkhan, Bryan Wu, linux-leds, linux-kernel, Richard Purdie On Mon, 2012-06-11 at 22:57 +0200, Fabio Baltieri wrote: > Fix led_trigger_event() to use led_brightness_set() instead of > led_set_brightness(), so that any pending blink timer is stopped before > setting the new brightness value. Without this fix LED status may be > overridden by a pending timer. > > This allows a trigger to use a mix of led_trigger_event(), > led_trigger_blink() and led_trigger_blink_oneshot() without races. > > Signed-off-by: Fabio Baltieri <fabio.baltieri@gmail.com> > Cc: Bryan Wu <bryan.wu@canonical.com> > --- > Hi Bryan, > > I found this one while working on another patch but I think it's also needed by > other drivers which mixes led_trigger_blink() and led_trigger_event(), such as > power_supply_leds. > > Without this a led don't stop blinking as it should when calling > led_trigger_event(). Good find. This is very subtle race though because both timer and oneshot triggers call led_brightness_set() from their deactivate routines. Is this when these events triggered using oneshot trigger? > > Should not cause any harm on other drivers. > > (I'm starting to find the whole led_set_brightness/led_brightness_set thing a > bit confusing BTW...) I agree with the names are confusing. :) It found it confusing as well. Probably why we have this bug hiding until led_trigger_blink() came along. led_brightness_set() calls led_set_brightness(). led_set_brightness() takes cares about whether the driver is in suspend state and invokes driver's brightness_set interface. Maybe led_clear_blink_timer() would be a better name for this led_brightness_set() routine. I can volunteer to make this change if we agree that this will be a good one to clear this naming confusion. -- Shuah > > Fabio > > drivers/leds/led-triggers.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c > index fa0b9be..b88d3b9 100644 > --- a/drivers/leds/led-triggers.c > +++ b/drivers/leds/led-triggers.c > @@ -224,7 +224,7 @@ void led_trigger_event(struct led_trigger *trig, > struct led_classdev *led_cdev; > > led_cdev = list_entry(entry, struct led_classdev, trig_list); > - led_set_brightness(led_cdev, brightness); > + led_brightness_set(led_cdev, brightness); This is in-line with led_trigger_set() which is calling led_bightness_set() correctly. Also led_classdev_unregister() calls it I think for the same reason so the blink timer can be stopped. > } > read_unlock(&trig->leddev_list_lock); > } ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] leds: use led_brightness_set in led_trigger_event 2012-06-11 21:38 ` Shuah Khan @ 2012-06-12 7:16 ` Fabio Baltieri 2012-06-12 7:51 ` Bryan Wu 0 siblings, 1 reply; 7+ messages in thread From: Fabio Baltieri @ 2012-06-12 7:16 UTC (permalink / raw) To: Shuah Khan; +Cc: Bryan Wu, linux-leds, linux-kernel, Richard Purdie On Mon, Jun 11, 2012 at 03:38:25PM -0600, Shuah Khan wrote: > On Mon, 2012-06-11 at 22:57 +0200, Fabio Baltieri wrote: > > Fix led_trigger_event() to use led_brightness_set() instead of > > led_set_brightness(), so that any pending blink timer is stopped before > > setting the new brightness value. Without this fix LED status may be > > overridden by a pending timer. > > > > This allows a trigger to use a mix of led_trigger_event(), > > led_trigger_blink() and led_trigger_blink_oneshot() without races. > > > > Signed-off-by: Fabio Baltieri <fabio.baltieri@gmail.com> > > Cc: Bryan Wu <bryan.wu@canonical.com> > > --- > > Hi Bryan, > > > > I found this one while working on another patch but I think it's also needed by > > other drivers which mixes led_trigger_blink() and led_trigger_event(), such as > > power_supply_leds. > > > > Without this a led don't stop blinking as it should when calling > > led_trigger_event(). > > Good find. This is very subtle race though because both timer and > oneshot triggers call led_brightness_set() from their deactivate > routines. Is this when these events triggered using oneshot trigger? Actually that was when mixing blink (both timer and oneshot, they use the same timer) and standard trigger-event-set. It should be safe if only internal (core) functions call set_brightness. > > > > Should not cause any harm on other drivers. > > > > (I'm starting to find the whole led_set_brightness/led_brightness_set thing a > > bit confusing BTW...) > > I agree with the names are confusing. :) It found it confusing as well. > Probably why we have this bug hiding until led_trigger_blink() came > along. > > led_brightness_set() calls led_set_brightness(). led_set_brightness() > takes cares about whether the driver is in suspend state and invokes > driver's brightness_set interface. Maybe led_clear_blink_timer() would > be a better name for this led_brightness_set() routine. I think maybe we should just rename the function to led_set_brightness() for the safe one (the one whichh also deactivate the time) and _led_set_brightness() for the internal one, to put some emphasis to the "internal" nature of the second. > I can volunteer to make this change if we agree that this will be a good > one to clear this naming confusion. That would save some headache in the future! :-) Fabio > > -- Shuah > > > > > Fabio > > > > drivers/leds/led-triggers.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c > > index fa0b9be..b88d3b9 100644 > > --- a/drivers/leds/led-triggers.c > > +++ b/drivers/leds/led-triggers.c > > @@ -224,7 +224,7 @@ void led_trigger_event(struct led_trigger *trig, > > struct led_classdev *led_cdev; > > > > led_cdev = list_entry(entry, struct led_classdev, trig_list); > > - led_set_brightness(led_cdev, brightness); > > + led_brightness_set(led_cdev, brightness); > > This is in-line with led_trigger_set() which is calling > led_bightness_set() correctly. Also led_classdev_unregister() calls it I > think for the same reason so the blink timer can be stopped. > > > } > > read_unlock(&trig->leddev_list_lock); > > } > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] leds: use led_brightness_set in led_trigger_event 2012-06-12 7:16 ` Fabio Baltieri @ 2012-06-12 7:51 ` Bryan Wu 2012-06-12 17:15 ` Shuah Khan 0 siblings, 1 reply; 7+ messages in thread From: Bryan Wu @ 2012-06-12 7:51 UTC (permalink / raw) To: Fabio Baltieri; +Cc: Shuah Khan, linux-leds, linux-kernel, Richard Purdie On Tue, Jun 12, 2012 at 3:16 PM, Fabio Baltieri <fabio.baltieri@gmail.com> wrote: > On Mon, Jun 11, 2012 at 03:38:25PM -0600, Shuah Khan wrote: >> On Mon, 2012-06-11 at 22:57 +0200, Fabio Baltieri wrote: >> > Fix led_trigger_event() to use led_brightness_set() instead of >> > led_set_brightness(), so that any pending blink timer is stopped before >> > setting the new brightness value. Without this fix LED status may be >> > overridden by a pending timer. >> > >> > This allows a trigger to use a mix of led_trigger_event(), >> > led_trigger_blink() and led_trigger_blink_oneshot() without races. >> > >> > Signed-off-by: Fabio Baltieri <fabio.baltieri@gmail.com> >> > Cc: Bryan Wu <bryan.wu@canonical.com> >> > --- >> > Hi Bryan, >> > >> > I found this one while working on another patch but I think it's also needed by >> > other drivers which mixes led_trigger_blink() and led_trigger_event(), such as >> > power_supply_leds. >> > >> > Without this a led don't stop blinking as it should when calling >> > led_trigger_event(). >> >> Good find. This is very subtle race though because both timer and >> oneshot triggers call led_brightness_set() from their deactivate >> routines. Is this when these events triggered using oneshot trigger? > > Actually that was when mixing blink (both timer and oneshot, they use > the same timer) and standard trigger-event-set. It should be safe if > only internal (core) functions call set_brightness. > >> > >> > Should not cause any harm on other drivers. >> > >> > (I'm starting to find the whole led_set_brightness/led_brightness_set thing a >> > bit confusing BTW...) >> >> I agree with the names are confusing. :) It found it confusing as well. >> Probably why we have this bug hiding until led_trigger_blink() came >> along. >> >> led_brightness_set() calls led_set_brightness(). led_set_brightness() >> takes cares about whether the driver is in suspend state and invokes >> driver's brightness_set interface. Maybe led_clear_blink_timer() would >> be a better name for this led_brightness_set() routine. > > I think maybe we should just rename the function to led_set_brightness() > for the safe one (the one whichh also deactivate the time) and > _led_set_brightness() for the internal one, to put some emphasis to the > "internal" nature of the second. > Thanks for catching this. It's a good idea we sort out those confusing name. Probably __led_set_bringness() is more conventional than _led_set_brightness(). And might also need to revisit other function names. >> I can volunteer to make this change if we agree that this will be a good >> one to clear this naming confusion. > OK, good Shuah, please go ahead and submit patches and I will hold this patch for a while and wait for the final fixing. -Bryan > That would save some headache in the future! :-) > > Fabio > >> >> -- Shuah >> >> > >> > Fabio >> > >> > drivers/leds/led-triggers.c | 2 +- >> > 1 file changed, 1 insertion(+), 1 deletion(-) >> > >> > diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c >> > index fa0b9be..b88d3b9 100644 >> > --- a/drivers/leds/led-triggers.c >> > +++ b/drivers/leds/led-triggers.c >> > @@ -224,7 +224,7 @@ void led_trigger_event(struct led_trigger *trig, >> > struct led_classdev *led_cdev; >> > >> > led_cdev = list_entry(entry, struct led_classdev, trig_list); >> > - led_set_brightness(led_cdev, brightness); >> > + led_brightness_set(led_cdev, brightness); >> >> This is in-line with led_trigger_set() which is calling >> led_bightness_set() correctly. Also led_classdev_unregister() calls it I >> think for the same reason so the blink timer can be stopped. >> >> > } >> > read_unlock(&trig->leddev_list_lock); >> > } >> >> -- Bryan Wu <bryan.wu@canonical.com> Kernel Developer +86.186-168-78255 Mobile Canonical Ltd. www.canonical.com Ubuntu - Linux for human beings | www.ubuntu.com ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] leds: use led_brightness_set in led_trigger_event 2012-06-12 7:51 ` Bryan Wu @ 2012-06-12 17:15 ` Shuah Khan 2012-06-13 2:01 ` [PATCH] leds: Rename led_set_brightness() to __led_set_brightness() Shuah Khan 0 siblings, 1 reply; 7+ messages in thread From: Shuah Khan @ 2012-06-12 17:15 UTC (permalink / raw) To: Bryan Wu Cc: shuahkhan, Fabio Baltieri, linux-leds, linux-kernel, Richard Purdie > > Thanks for catching this. It's a good idea we sort out those confusing name. > Probably __led_set_bringness() is more conventional than _led_set_brightness(). > > And might also need to revisit other function names. > > >> I can volunteer to make this change if we agree that this will be a good > >> one to clear this naming confusion. > > > > OK, good Shuah, please go ahead and submit patches and I will hold > this patch for a while and wait for the final fixing. > Thanks. __led_set_brightness() sounds good. Will base patches off of linux-leds devel unless that is not the right one. -- Shuah ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH] leds: Rename led_set_brightness() to __led_set_brightness() 2012-06-12 17:15 ` Shuah Khan @ 2012-06-13 2:01 ` Shuah Khan 2012-06-13 4:25 ` Bryan Wu 0 siblings, 1 reply; 7+ messages in thread From: Shuah Khan @ 2012-06-13 2:01 UTC (permalink / raw) To: Bryan Wu Cc: shuahkhan, Fabio Baltieri, linux-leds, linux-kernel, Richard Purdie Rename leds internal interface led_set_brightness() to __led_set_brightness() to reduce confusion between led_set_brightness() and the external interface led_brightness_set(). led_brightness_set() cancels the timer and then calls led_set_brightness(). Signed-off-by: Shuah Khan <shuahkhan@gmail.com> --- Bryan, This is the first patch that renames led_set_brightness() to __led_set_brightness(). Will send another patch that renames led_brightness_set() to led_set_brightness(). -- Shuah drivers/leds/led-class.c | 6 +++--- drivers/leds/led-core.c | 4 ++-- drivers/leds/led-triggers.c | 2 +- drivers/leds/leds.h | 2 +- drivers/leds/ledtrig-backlight.c | 8 ++++---- drivers/leds/ledtrig-default-on.c | 2 +- drivers/leds/ledtrig-gpio.c | 6 +++--- drivers/leds/ledtrig-heartbeat.c | 2 +- drivers/leds/ledtrig-oneshot.c | 4 ++-- drivers/leds/ledtrig-transient.c | 8 ++++---- 10 files changed, 22 insertions(+), 22 deletions(-) diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c index 81eb091..cb0a6eb 100644 --- a/drivers/leds/led-class.c +++ b/drivers/leds/led-class.c @@ -53,7 +53,7 @@ static ssize_t led_brightness_store(struct device *dev, if (state == LED_OFF) led_trigger_remove(led_cdev); - led_set_brightness(led_cdev, state); + __led_set_brightness(led_cdev, state); return size; } @@ -82,7 +82,7 @@ static void led_timer_function(unsigned long data) unsigned long delay; if (!led_cdev->blink_delay_on || !led_cdev->blink_delay_off) { - led_set_brightness(led_cdev, LED_OFF); + __led_set_brightness(led_cdev, LED_OFF); return; } @@ -105,7 +105,7 @@ static void led_timer_function(unsigned long data) delay = led_cdev->blink_delay_off; } - led_set_brightness(led_cdev, brightness); + __led_set_brightness(led_cdev, brightness); /* Return in next iteration if led is in one-shot mode and we are in * the final blink state so that the led is toggled each delay_on + diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c index 31f1f78..176961b 100644 --- a/drivers/leds/led-core.c +++ b/drivers/leds/led-core.c @@ -45,7 +45,7 @@ static void led_set_software_blink(struct led_classdev *led_cdev, /* never off - just set to brightness */ if (!delay_off) { - led_set_brightness(led_cdev, led_cdev->blink_brightness); + __led_set_brightness(led_cdev, led_cdev->blink_brightness); return; } @@ -111,6 +111,6 @@ void led_brightness_set(struct led_classdev *led_cdev, led_cdev->blink_delay_on = 0; led_cdev->blink_delay_off = 0; - led_set_brightness(led_cdev, brightness); + __led_set_brightness(led_cdev, brightness); } EXPORT_SYMBOL(led_brightness_set); diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c index fa0b9be..f8b14dd 100644 --- a/drivers/leds/led-triggers.c +++ b/drivers/leds/led-triggers.c @@ -224,7 +224,7 @@ void led_trigger_event(struct led_trigger *trig, struct led_classdev *led_cdev; led_cdev = list_entry(entry, struct led_classdev, trig_list); - led_set_brightness(led_cdev, brightness); + __led_set_brightness(led_cdev, brightness); } read_unlock(&trig->leddev_list_lock); } diff --git a/drivers/leds/leds.h b/drivers/leds/leds.h index e77c7f8..d02acd4 100644 --- a/drivers/leds/leds.h +++ b/drivers/leds/leds.h @@ -17,7 +17,7 @@ #include <linux/rwsem.h> #include <linux/leds.h> -static inline void led_set_brightness(struct led_classdev *led_cdev, +static inline void __led_set_brightness(struct led_classdev *led_cdev, enum led_brightness value) { if (value > led_cdev->max_brightness) diff --git a/drivers/leds/ledtrig-backlight.c b/drivers/leds/ledtrig-backlight.c index e272686..b941685 100644 --- a/drivers/leds/ledtrig-backlight.c +++ b/drivers/leds/ledtrig-backlight.c @@ -46,9 +46,9 @@ static int fb_notifier_callback(struct notifier_block *p, if ((n->old_status == UNBLANK) ^ n->invert) { n->brightness = led->brightness; - led_set_brightness(led, LED_OFF); + __led_set_brightness(led, LED_OFF); } else { - led_set_brightness(led, n->brightness); + __led_set_brightness(led, n->brightness); } n->old_status = new_status; @@ -87,9 +87,9 @@ static ssize_t bl_trig_invert_store(struct device *dev, /* After inverting, we need to update the LED. */ if ((n->old_status == BLANK) ^ n->invert) - led_set_brightness(led, LED_OFF); + __led_set_brightness(led, LED_OFF); else - led_set_brightness(led, n->brightness); + __led_set_brightness(led, n->brightness); return num; } diff --git a/drivers/leds/ledtrig-default-on.c b/drivers/leds/ledtrig-default-on.c index a4ef54b..eac1f1b 100644 --- a/drivers/leds/ledtrig-default-on.c +++ b/drivers/leds/ledtrig-default-on.c @@ -19,7 +19,7 @@ static void defon_trig_activate(struct led_classdev *led_cdev) { - led_set_brightness(led_cdev, led_cdev->max_brightness); + __led_set_brightness(led_cdev, led_cdev->max_brightness); } static struct led_trigger defon_led_trigger = { diff --git a/drivers/leds/ledtrig-gpio.c b/drivers/leds/ledtrig-gpio.c index f057c10..ba215dc 100644 --- a/drivers/leds/ledtrig-gpio.c +++ b/drivers/leds/ledtrig-gpio.c @@ -54,12 +54,12 @@ static void gpio_trig_work(struct work_struct *work) if (tmp) { if (gpio_data->desired_brightness) - led_set_brightness(gpio_data->led, + __led_set_brightness(gpio_data->led, gpio_data->desired_brightness); else - led_set_brightness(gpio_data->led, LED_FULL); + __led_set_brightness(gpio_data->led, LED_FULL); } else { - led_set_brightness(gpio_data->led, LED_OFF); + __led_set_brightness(gpio_data->led, LED_OFF); } } diff --git a/drivers/leds/ledtrig-heartbeat.c b/drivers/leds/ledtrig-heartbeat.c index 41dc76d..d3039f2 100644 --- a/drivers/leds/ledtrig-heartbeat.c +++ b/drivers/leds/ledtrig-heartbeat.c @@ -67,7 +67,7 @@ static void led_heartbeat_function(unsigned long data) break; } - led_set_brightness(led_cdev, brightness); + __led_set_brightness(led_cdev, brightness); mod_timer(&heartbeat_data->timer, jiffies + delay); } diff --git a/drivers/leds/ledtrig-oneshot.c b/drivers/leds/ledtrig-oneshot.c index 5c9edf7..5cbab41 100644 --- a/drivers/leds/ledtrig-oneshot.c +++ b/drivers/leds/ledtrig-oneshot.c @@ -63,9 +63,9 @@ static ssize_t led_invert_store(struct device *dev, oneshot_data->invert = !!state; if (oneshot_data->invert) - led_set_brightness(led_cdev, LED_FULL); + __led_set_brightness(led_cdev, LED_FULL); else - led_set_brightness(led_cdev, LED_OFF); + __led_set_brightness(led_cdev, LED_OFF); return size; } diff --git a/drivers/leds/ledtrig-transient.c b/drivers/leds/ledtrig-transient.c index 83179f4..398f104 100644 --- a/drivers/leds/ledtrig-transient.c +++ b/drivers/leds/ledtrig-transient.c @@ -41,7 +41,7 @@ static void transient_timer_function(unsigned long data) struct transient_trig_data *transient_data = led_cdev->trigger_data; transient_data->activate = 0; - led_set_brightness(led_cdev, transient_data->restore_state); + __led_set_brightness(led_cdev, transient_data->restore_state); } static ssize_t transient_activate_show(struct device *dev, @@ -72,7 +72,7 @@ static ssize_t transient_activate_store(struct device *dev, if (state == 0 && transient_data->activate == 1) { del_timer(&transient_data->timer); transient_data->activate = state; - led_set_brightness(led_cdev, transient_data->restore_state); + __led_set_brightness(led_cdev, transient_data->restore_state); return size; } @@ -80,7 +80,7 @@ static ssize_t transient_activate_store(struct device *dev, if (state == 1 && transient_data->activate == 0 && transient_data->duration != 0) { transient_data->activate = state; - led_set_brightness(led_cdev, transient_data->state); + __led_set_brightness(led_cdev, transient_data->state); transient_data->restore_state = (transient_data->state == LED_FULL) ? LED_OFF : LED_FULL; mod_timer(&transient_data->timer, @@ -203,7 +203,7 @@ static void transient_trig_deactivate(struct led_classdev *led_cdev) if (led_cdev->activated) { del_timer_sync(&transient_data->timer); - led_set_brightness(led_cdev, transient_data->restore_state); + __led_set_brightness(led_cdev, transient_data->restore_state); device_remove_file(led_cdev->dev, &dev_attr_activate); device_remove_file(led_cdev->dev, &dev_attr_duration); device_remove_file(led_cdev->dev, &dev_attr_state); -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] leds: Rename led_set_brightness() to __led_set_brightness() 2012-06-13 2:01 ` [PATCH] leds: Rename led_set_brightness() to __led_set_brightness() Shuah Khan @ 2012-06-13 4:25 ` Bryan Wu 0 siblings, 0 replies; 7+ messages in thread From: Bryan Wu @ 2012-06-13 4:25 UTC (permalink / raw) To: shuahkhan; +Cc: Fabio Baltieri, linux-leds, linux-kernel, Richard Purdie On Wed, Jun 13, 2012 at 10:01 AM, Shuah Khan <shuahkhan@gmail.com> wrote: > Rename leds internal interface led_set_brightness() to __led_set_brightness() > to reduce confusion between led_set_brightness() and the external interface > led_brightness_set(). led_brightness_set() cancels the timer and then calls > led_set_brightness(). > > > Signed-off-by: Shuah Khan <shuahkhan@gmail.com> > --- > > Bryan, > > This is the first patch that renames led_set_brightness() to __led_set_brightness(). > Will send another patch that renames led_brightness_set() to led_set_brightness(). > > -- Shuah OK, thanks, applied to devel and for-next > > > drivers/leds/led-class.c | 6 +++--- > drivers/leds/led-core.c | 4 ++-- > drivers/leds/led-triggers.c | 2 +- > drivers/leds/leds.h | 2 +- > drivers/leds/ledtrig-backlight.c | 8 ++++---- > drivers/leds/ledtrig-default-on.c | 2 +- > drivers/leds/ledtrig-gpio.c | 6 +++--- > drivers/leds/ledtrig-heartbeat.c | 2 +- > drivers/leds/ledtrig-oneshot.c | 4 ++-- > drivers/leds/ledtrig-transient.c | 8 ++++---- > 10 files changed, 22 insertions(+), 22 deletions(-) > > diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c > index 81eb091..cb0a6eb 100644 > --- a/drivers/leds/led-class.c > +++ b/drivers/leds/led-class.c > @@ -53,7 +53,7 @@ static ssize_t led_brightness_store(struct device *dev, > > if (state == LED_OFF) > led_trigger_remove(led_cdev); > - led_set_brightness(led_cdev, state); > + __led_set_brightness(led_cdev, state); > > return size; > } > @@ -82,7 +82,7 @@ static void led_timer_function(unsigned long data) > unsigned long delay; > > if (!led_cdev->blink_delay_on || !led_cdev->blink_delay_off) { > - led_set_brightness(led_cdev, LED_OFF); > + __led_set_brightness(led_cdev, LED_OFF); > return; > } > > @@ -105,7 +105,7 @@ static void led_timer_function(unsigned long data) > delay = led_cdev->blink_delay_off; > } > > - led_set_brightness(led_cdev, brightness); > + __led_set_brightness(led_cdev, brightness); > > /* Return in next iteration if led is in one-shot mode and we are in > * the final blink state so that the led is toggled each delay_on + > diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c > index 31f1f78..176961b 100644 > --- a/drivers/leds/led-core.c > +++ b/drivers/leds/led-core.c > @@ -45,7 +45,7 @@ static void led_set_software_blink(struct led_classdev *led_cdev, > > /* never off - just set to brightness */ > if (!delay_off) { > - led_set_brightness(led_cdev, led_cdev->blink_brightness); > + __led_set_brightness(led_cdev, led_cdev->blink_brightness); > return; > } > > @@ -111,6 +111,6 @@ void led_brightness_set(struct led_classdev *led_cdev, > led_cdev->blink_delay_on = 0; > led_cdev->blink_delay_off = 0; > > - led_set_brightness(led_cdev, brightness); > + __led_set_brightness(led_cdev, brightness); > } > EXPORT_SYMBOL(led_brightness_set); > diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c > index fa0b9be..f8b14dd 100644 > --- a/drivers/leds/led-triggers.c > +++ b/drivers/leds/led-triggers.c > @@ -224,7 +224,7 @@ void led_trigger_event(struct led_trigger *trig, > struct led_classdev *led_cdev; > > led_cdev = list_entry(entry, struct led_classdev, trig_list); > - led_set_brightness(led_cdev, brightness); > + __led_set_brightness(led_cdev, brightness); > } > read_unlock(&trig->leddev_list_lock); > } > diff --git a/drivers/leds/leds.h b/drivers/leds/leds.h > index e77c7f8..d02acd4 100644 > --- a/drivers/leds/leds.h > +++ b/drivers/leds/leds.h > @@ -17,7 +17,7 @@ > #include <linux/rwsem.h> > #include <linux/leds.h> > > -static inline void led_set_brightness(struct led_classdev *led_cdev, > +static inline void __led_set_brightness(struct led_classdev *led_cdev, > enum led_brightness value) > { > if (value > led_cdev->max_brightness) > diff --git a/drivers/leds/ledtrig-backlight.c b/drivers/leds/ledtrig-backlight.c > index e272686..b941685 100644 > --- a/drivers/leds/ledtrig-backlight.c > +++ b/drivers/leds/ledtrig-backlight.c > @@ -46,9 +46,9 @@ static int fb_notifier_callback(struct notifier_block *p, > > if ((n->old_status == UNBLANK) ^ n->invert) { > n->brightness = led->brightness; > - led_set_brightness(led, LED_OFF); > + __led_set_brightness(led, LED_OFF); > } else { > - led_set_brightness(led, n->brightness); > + __led_set_brightness(led, n->brightness); > } > > n->old_status = new_status; > @@ -87,9 +87,9 @@ static ssize_t bl_trig_invert_store(struct device *dev, > > /* After inverting, we need to update the LED. */ > if ((n->old_status == BLANK) ^ n->invert) > - led_set_brightness(led, LED_OFF); > + __led_set_brightness(led, LED_OFF); > else > - led_set_brightness(led, n->brightness); > + __led_set_brightness(led, n->brightness); > > return num; > } > diff --git a/drivers/leds/ledtrig-default-on.c b/drivers/leds/ledtrig-default-on.c > index a4ef54b..eac1f1b 100644 > --- a/drivers/leds/ledtrig-default-on.c > +++ b/drivers/leds/ledtrig-default-on.c > @@ -19,7 +19,7 @@ > > static void defon_trig_activate(struct led_classdev *led_cdev) > { > - led_set_brightness(led_cdev, led_cdev->max_brightness); > + __led_set_brightness(led_cdev, led_cdev->max_brightness); > } > > static struct led_trigger defon_led_trigger = { > diff --git a/drivers/leds/ledtrig-gpio.c b/drivers/leds/ledtrig-gpio.c > index f057c10..ba215dc 100644 > --- a/drivers/leds/ledtrig-gpio.c > +++ b/drivers/leds/ledtrig-gpio.c > @@ -54,12 +54,12 @@ static void gpio_trig_work(struct work_struct *work) > > if (tmp) { > if (gpio_data->desired_brightness) > - led_set_brightness(gpio_data->led, > + __led_set_brightness(gpio_data->led, > gpio_data->desired_brightness); > else > - led_set_brightness(gpio_data->led, LED_FULL); > + __led_set_brightness(gpio_data->led, LED_FULL); > } else { > - led_set_brightness(gpio_data->led, LED_OFF); > + __led_set_brightness(gpio_data->led, LED_OFF); > } > } > > diff --git a/drivers/leds/ledtrig-heartbeat.c b/drivers/leds/ledtrig-heartbeat.c > index 41dc76d..d3039f2 100644 > --- a/drivers/leds/ledtrig-heartbeat.c > +++ b/drivers/leds/ledtrig-heartbeat.c > @@ -67,7 +67,7 @@ static void led_heartbeat_function(unsigned long data) > break; > } > > - led_set_brightness(led_cdev, brightness); > + __led_set_brightness(led_cdev, brightness); > mod_timer(&heartbeat_data->timer, jiffies + delay); > } > > diff --git a/drivers/leds/ledtrig-oneshot.c b/drivers/leds/ledtrig-oneshot.c > index 5c9edf7..5cbab41 100644 > --- a/drivers/leds/ledtrig-oneshot.c > +++ b/drivers/leds/ledtrig-oneshot.c > @@ -63,9 +63,9 @@ static ssize_t led_invert_store(struct device *dev, > oneshot_data->invert = !!state; > > if (oneshot_data->invert) > - led_set_brightness(led_cdev, LED_FULL); > + __led_set_brightness(led_cdev, LED_FULL); > else > - led_set_brightness(led_cdev, LED_OFF); > + __led_set_brightness(led_cdev, LED_OFF); > > return size; > } > diff --git a/drivers/leds/ledtrig-transient.c b/drivers/leds/ledtrig-transient.c > index 83179f4..398f104 100644 > --- a/drivers/leds/ledtrig-transient.c > +++ b/drivers/leds/ledtrig-transient.c > @@ -41,7 +41,7 @@ static void transient_timer_function(unsigned long data) > struct transient_trig_data *transient_data = led_cdev->trigger_data; > > transient_data->activate = 0; > - led_set_brightness(led_cdev, transient_data->restore_state); > + __led_set_brightness(led_cdev, transient_data->restore_state); > } > > static ssize_t transient_activate_show(struct device *dev, > @@ -72,7 +72,7 @@ static ssize_t transient_activate_store(struct device *dev, > if (state == 0 && transient_data->activate == 1) { > del_timer(&transient_data->timer); > transient_data->activate = state; > - led_set_brightness(led_cdev, transient_data->restore_state); > + __led_set_brightness(led_cdev, transient_data->restore_state); > return size; > } > > @@ -80,7 +80,7 @@ static ssize_t transient_activate_store(struct device *dev, > if (state == 1 && transient_data->activate == 0 && > transient_data->duration != 0) { > transient_data->activate = state; > - led_set_brightness(led_cdev, transient_data->state); > + __led_set_brightness(led_cdev, transient_data->state); > transient_data->restore_state = > (transient_data->state == LED_FULL) ? LED_OFF : LED_FULL; > mod_timer(&transient_data->timer, > @@ -203,7 +203,7 @@ static void transient_trig_deactivate(struct led_classdev *led_cdev) > > if (led_cdev->activated) { > del_timer_sync(&transient_data->timer); > - led_set_brightness(led_cdev, transient_data->restore_state); > + __led_set_brightness(led_cdev, transient_data->restore_state); > device_remove_file(led_cdev->dev, &dev_attr_activate); > device_remove_file(led_cdev->dev, &dev_attr_duration); > device_remove_file(led_cdev->dev, &dev_attr_state); > -- > 1.7.9.5 > > > -- Bryan Wu <bryan.wu@canonical.com> Kernel Developer +86.186-168-78255 Mobile Canonical Ltd. www.canonical.com Ubuntu - Linux for human beings | www.ubuntu.com ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-06-13 4:26 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-06-11 20:57 [PATCH] leds: use led_brightness_set in led_trigger_event Fabio Baltieri 2012-06-11 21:38 ` Shuah Khan 2012-06-12 7:16 ` Fabio Baltieri 2012-06-12 7:51 ` Bryan Wu 2012-06-12 17:15 ` Shuah Khan 2012-06-13 2:01 ` [PATCH] leds: Rename led_set_brightness() to __led_set_brightness() Shuah Khan 2012-06-13 4:25 ` Bryan Wu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox