All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fabio Baltieri <fabio.baltieri@gmail.com>
To: Bryan Wu <bryan.wu@canonical.com>
Cc: linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org,
	Richard Purdie <rpurdie@rpsys.net>
Subject: Re: [PATCH v2] leds: fix led_brightness_set when soft-blinking
Date: Wed, 6 Jun 2012 13:10:08 +0200	[thread overview]
Message-ID: <20120606111007.GA1311@gmail.com> (raw)
In-Reply-To: <CAK5ve-+gv=83MLAttiq8NYK0d_242UWRjJZftyKHONqMkxWTxQ@mail.gmail.com>

Hi Bryan,

On Wed, Jun 06, 2012 at 04:19:05PM +0800, Bryan Wu wrote:
> On Wed, Jun 6, 2012 at 3:19 PM, Fabio Baltieri <fabio.baltieri@gmail.com> wrote:
> > Put del_timer_sync() back into led_stop_software_blink() and move the
> > call earlier into led_blink_set() to ensure software blink timer is
> > stopped when changing trigger.  Also use led_set_brightness() instead of
> > calling led_cdev->brightness_set() directly to ensure
> > led_cdev->brightness is always consistent with current LED status.
> >
> > This ensure proper cleaning when changing triggers, as without this fix
> > a LED may be turned off while leaving it's led_cdev->brightness = 1,
> > leading to an erratic software-blink behaviour.
> >
> > The problem was easy to reproduce by changing the trigger from "timer"
> > to "oneshot".
> >
> > Signed-off-by: Fabio Baltieri <fabio.baltieri@gmail.com>
> > Cc: Bryan Wu <bryan.wu@canonical.com>
> 
> Looks fine and actually a patch fixed similar issue before in my
> fixes-for-3.5 branch.
> http://git.kernel.org/?p=linux/kernel/git/cooloney/linux-leds.git;a=commitdiff;h=b2f819714f40a6593c1ed20b69573d5fef71f392
> I plan to send out these fixes soon.
> 
> I have to rebase all patches in for-next on top of fixes, then I met
> some conflicts. After fixing conflicts, I rebuilt the for-next tree
> which contains 3 patches from you. Please grab it and test, I will try
> that on my hardware.
> http://git.kernel.org/?p=linux/kernel/git/cooloney/linux-leds.git;a=shortlog;h=refs/heads/for-next

I see the rebase but it looks like Rafal's patch was lost and that
condition in led_set_software_blink() re-appeared as the line removal
vanished from my patch but Rafal's one was not applied.

Can you check the rebase? I think that putting 

http://git.kernel.org/?p=linux/kernel/git/cooloney/linux-leds.git;a=commitdiff;h=b2f819714f40a6593c1ed20b69573d5fef71f392

before my "addoneshot blink functions" should fix the code.

Fabio

> 
> Thanks,
> -Bryan
> 
> > ---
> >
> > ...maybe that version makes more sense.
> >
> > Fabio
> >
> >  drivers/leds/led-core.c | 7 +++----
> >  1 file changed, 3 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c
> > index 579eb78..2477109 100644
> > --- a/drivers/leds/led-core.c
> > +++ b/drivers/leds/led-core.c
> > @@ -27,6 +27,7 @@ EXPORT_SYMBOL_GPL(leds_list);
> >  static void led_stop_software_blink(struct led_classdev *led_cdev)
> >  {
> >        /* deactivate previous settings */
> > +       del_timer_sync(&led_cdev->blink_timer);
> >        led_cdev->blink_delay_on = 0;
> >        led_cdev->blink_delay_off = 0;
> >  }
> > @@ -43,8 +44,6 @@ static void led_set_software_blink(struct led_classdev *led_cdev,
> >        if (!led_cdev->blink_brightness)
> >                led_cdev->blink_brightness = led_cdev->max_brightness;
> >
> > -       led_stop_software_blink(led_cdev);
> > -
> >        led_cdev->blink_delay_on = delay_on;
> >        led_cdev->blink_delay_off = delay_off;
> >
> > @@ -82,7 +81,7 @@ void led_blink_set(struct led_classdev *led_cdev,
> >                   unsigned long *delay_on,
> >                   unsigned long *delay_off)
> >  {
> > -       del_timer_sync(&led_cdev->blink_timer);
> > +       led_stop_software_blink(led_cdev);
> >
> >        led_cdev->flags &= ~LED_BLINK_ONESHOT;
> >        led_cdev->flags &= ~LED_BLINK_ONESHOT_STOP;
> > @@ -116,6 +115,6 @@ void led_brightness_set(struct led_classdev *led_cdev,
> >                        enum led_brightness brightness)
> >  {
> >        led_stop_software_blink(led_cdev);
> > -       led_cdev->brightness_set(led_cdev, brightness);
> > +       led_set_brightness(led_cdev, brightness);
> >  }
> >  EXPORT_SYMBOL(led_brightness_set);
> > --
> > 1.7.11.rc1.9.gf623ca1.dirty
> >
> 
> 
> 
> -- 
> 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

  reply	other threads:[~2012-06-06 11:08 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-05 21:38 [PATCH v2 1/2] led: add oneshot trigger Fabio Baltieri
2012-06-05 21:38 ` [PATCH 2/2] leds: fix led_brightness_set when soft-blinking Fabio Baltieri
2012-06-06  3:58   ` Bryan Wu
2012-06-06  7:00     ` Fabio Baltieri
2012-06-06  7:19       ` [PATCH v2] " Fabio Baltieri
2012-06-06  8:19         ` Bryan Wu
2012-06-06 11:10           ` Fabio Baltieri [this message]
2012-06-06 14:10             ` Bryan Wu
2012-06-06 19:11               ` Fabio Baltieri
2012-06-06 19:12                 ` [PATCH v3] " Fabio Baltieri
2012-06-06 20:30                 ` [PATCH v2] " Shuah Khan
2012-06-07 12:58                   ` Bryan Wu
2012-06-11  3:06                     ` Shuah Khan
2012-06-11 14:47                       ` Bryan Wu
2012-06-06  0:51 ` [PATCH v2 1/2] led: add oneshot trigger Shuah Khan
2012-06-06  2:56   ` Bryan Wu
2012-06-06  6:04     ` Fabio Baltieri
2012-06-06 22:11     ` [PATCH v3] " Fabio Baltieri
2012-06-07 12:58       ` Bryan Wu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120606111007.GA1311@gmail.com \
    --to=fabio.baltieri@gmail.com \
    --cc=bryan.wu@canonical.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=rpurdie@rpsys.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.