linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jacek Anaszewski <jacek.anaszewski@gmail.com>
To: Jacek Anaszewski <j.anaszewski@samsung.com>, linux-leds@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
	Fabio Baltieri <fabio.baltieri@gmail.com>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	Pavel Machek <pavel@ucw.cz>, Andrew Lunn <andrew@lunn.ch>
Subject: Re: [PATCH 2/2] leds: core: Remove delayed_set_value property from struct led_classdev
Date: Sun, 6 Nov 2016 14:49:06 +0100	[thread overview]
Message-ID: <5839241e-e69e-40ea-9a6a-da2ff291117e@gmail.com> (raw)
In-Reply-To: <1475661812-26215-2-git-send-email-j.anaszewski@samsung.com>

Withdrawing this patch as it breaks restoring brightness
on resume.

Thanks,
Jacek Anaszewski

On 10/05/2016 12:03 PM, Jacek Anaszewski wrote:
> delayed_set_value property was introduced in the commit
> d23a22a74fde ("leds: delay led_set_brightness if stopping soft-blink").
> Its aim was to allow calling led_set_brightness() from hard irq context
> when soft blinking is enabled. Later LED core refactoring preserved
> the property, although in an ineffective way. That bug was harmless
> because in the new approach brightness setting is deferred until the
> next timer tick when software blinking is enabled.
>
> Since LED brightness is assigned immediately in
> led_set_brightness_nosleep() or through struct led_classdev's
> blink_brightness while soft blinking is enabled, then
> delayed_set_value is no longer required.
>
> Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
> Cc: Fabio Baltieri <fabio.baltieri@gmail.com>
> Cc: Sakari Ailus <sakari.ailus@linux.intel.com>
> Cc: Pavel Machek <pavel@ucw.cz>
> Cc: Andrew Lunn <andrew@lunn.ch>
> ---
>  drivers/leds/led-core.c | 8 ++++----
>  include/linux/leds.h    | 1 -
>  2 files changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c
> index 3bce448..2d0c75a 100644
> --- a/drivers/leds/led-core.c
> +++ b/drivers/leds/led-core.c
> @@ -107,15 +107,15 @@ static void set_brightness_delayed(struct work_struct *ws)
>  	int ret = 0;
>
>  	if (led_cdev->flags & LED_BLINK_DISABLE) {
> -		led_cdev->delayed_set_value = LED_OFF;
> +		led_cdev->brightness = LED_OFF;
>  		led_stop_software_blink(led_cdev);
>  		led_cdev->flags &= ~LED_BLINK_DISABLE;
>  	}
>
> -	ret = __led_set_brightness(led_cdev, led_cdev->delayed_set_value);
> +	ret = __led_set_brightness(led_cdev, led_cdev->brightness);
>  	if (ret == -ENOTSUPP)
>  		ret = __led_set_brightness_blocking(led_cdev,
> -					led_cdev->delayed_set_value);
> +					led_cdev->brightness);
>  	if (ret < 0 &&
>  	    /* LED HW might have been unplugged, therefore don't warn */
>  	    !(ret == -ENODEV && (led_cdev->flags & LED_UNREGISTERING) &&
> @@ -260,7 +260,7 @@ void led_set_brightness_nopm(struct led_classdev *led_cdev,
>  		return;
>
>  	/* If brightness setting can sleep, delegate it to a work queue task */
> -	led_cdev->delayed_set_value = value;
> +	led_cdev->brightness = value;
>  	schedule_work(&led_cdev->set_brightness_work);
>  }
>  EXPORT_SYMBOL_GPL(led_set_brightness_nopm);
> diff --git a/include/linux/leds.h b/include/linux/leds.h
> index ddfcb2d..52993de 100644
> --- a/include/linux/leds.h
> +++ b/include/linux/leds.h
> @@ -92,7 +92,6 @@ struct led_classdev {
>  	void			(*flash_resume)(struct led_classdev *led_cdev);
>
>  	struct work_struct	set_brightness_work;
> -	int			delayed_set_value;
>
>  #ifdef CONFIG_LEDS_TRIGGERS
>  	/* Protects the trigger data below */
>

  reply	other threads:[~2016-11-06 13:49 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-05 10:03 [PATCH 1/2] leds: ledtrig-heartbeat: Make top brightness adjustable Jacek Anaszewski
2016-10-05 10:03 ` [PATCH 2/2] leds: core: Remove delayed_set_value property from struct led_classdev Jacek Anaszewski
2016-11-06 13:49   ` Jacek Anaszewski [this message]
2016-10-19 10:38 ` [PATCH 1/2] leds: ledtrig-heartbeat: Make top brightness adjustable Pavel Machek

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=5839241e-e69e-40ea-9a6a-da2ff291117e@gmail.com \
    --to=jacek.anaszewski@gmail.com \
    --cc=andrew@lunn.ch \
    --cc=fabio.baltieri@gmail.com \
    --cc=j.anaszewski@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=pavel@ucw.cz \
    --cc=sakari.ailus@linux.intel.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).