From: Jacek Anaszewski <jacek.anaszewski@gmail.com>
To: Sakari Ailus <sakari.ailus@iki.fi>,
Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org,
pavel@ucw.cz, sakari.ailus@linux.intel.com, andrew@lunn.ch
Subject: Re: [PATCH v3 04/10] leds: core: Use set_brightness_work for the blocking op
Date: Sun, 18 Oct 2015 09:06:07 +0200 [thread overview]
Message-ID: <562344DF.3050207@gmail.com> (raw)
In-Reply-To: <20151016154358.GN26916@valkosipuli.retiisi.org.uk>
Hi Sakari,
Thanks for the review.
On 10/16/2015 05:43 PM, Sakari Ailus wrote:
> Hi Jacek,
>
> I think I'd rearrange patches 3 and 4; delayed_set_brightness is briefly
> needed in patch 3 but again no longer here.
The impression that delayed_set_brightness is not needed is caused
by my mistake in set_brightness_delayed(), please see my explanation
below.
> I have to say I quite like the set, it cleans up the framework a lot.
> Thanks!
>
> On Wed, Oct 07, 2015 at 11:10:42AM +0200, Jacek Anaszewski wrote:
>> This patch makes LED core capable of setting brightness for drivers
>> that implement brightness_set_blocking op. It removes from LED class
>> drivers responsibility for using work queues on their own.
>>
>> In order to achieve this set_brightness_delayed callback is being
>> modified to directly call one of available ops for brightness setting.
>>
>> led_set_brightness_async() function didn't set brightness in an
>> asynchronous way in all cases. It was mistakenly assuming that all
>> LED subsystem drivers used work queue in their brightness_set op,
>> whereas only half of them did that. Since it has no users now,
>> it is being removed.
>>
>> Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
>> ---
>> drivers/leds/led-core.c | 12 +++++++++++-
>> drivers/leds/leds.h | 10 ----------
>> include/linux/leds.h | 2 +-
>> 3 files changed, 12 insertions(+), 12 deletions(-)
>>
>> diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c
>> index a1f53aa..7d2512f 100644
>> --- a/drivers/leds/led-core.c
>> +++ b/drivers/leds/led-core.c
>> @@ -83,6 +83,7 @@ static void set_brightness_delayed(struct work_struct *ws)
>> {
>> struct led_classdev *led_cdev =
>> container_of(ws, struct led_classdev, set_brightness_work);
>> + int ret = 0;
>>
>> if (led_cdev->flags & LED_BLINK_DISABLE) {
>> led_cdev->delayed_set_value = LED_OFF;
>> @@ -90,7 +91,16 @@ static void set_brightness_delayed(struct work_struct *ws)
>> led_cdev->flags &= ~LED_BLINK_DISABLE;
>> }
>>
>> - led_set_brightness_async(led_cdev, led_cdev->delayed_set_value);
>> + if (led_cdev->brightness_set)
>> + led_cdev->brightness_set(led_cdev, led_cdev->brightness);
s/led_cdev->brightness/led_cdev->delayed_set_value/
>> + else if (led_cdev->brightness_set_blocking)
>> + ret = led_cdev->brightness_set_blocking(led_cdev,
>> + led_cdev->brightness);
s/led_cdev->brightness/led_cdev->delayed_set_value/
led_set_brightness_nopm() wouldn't have effect if we relied here on
led_cdev->brightness. The former, being called from
led_classdev_suspend(), turns the LED off, but without overwriting
led_cdev->brightness, so that led_classdev_resume could restore it.
I will submit the fixed set soon.
--
Best Regards,
Jacek Anaszewski
next prev parent reply other threads:[~2015-10-18 7:06 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-07 9:10 [PATCH v3 00/10] LED core improvements Jacek Anaszewski
2015-10-07 9:10 ` [PATCH v3 01/10] leds: core: Add two new LED_BLINK_ flags Jacek Anaszewski
2015-10-16 15:32 ` Sakari Ailus
2015-10-07 9:10 ` [PATCH v3 02/10] leds: Rename brightness_set_sync op to brightness_set_blocking Jacek Anaszewski
2015-10-16 15:34 ` Sakari Ailus
2015-10-07 9:10 ` [PATCH v3 03/10] leds: core: Add led_set_brightness_nosleep{nopm} functions Jacek Anaszewski
2015-10-07 9:10 ` [PATCH v3 04/10] leds: core: Use set_brightness_work for the blocking op Jacek Anaszewski
2015-10-16 15:43 ` Sakari Ailus
2015-10-18 7:06 ` Jacek Anaszewski [this message]
2015-10-07 9:10 ` [PATCH v3 05/10] leds: core: Drivers shouldn't enforce SYNC/ASYNC brightness setting Jacek Anaszewski
2015-10-07 9:10 ` [PATCH v3 06/10] Documentation: leds: Add description of brightness setting API Jacek Anaszewski
2015-10-16 15:36 ` Sakari Ailus
2015-10-18 7:08 ` Jacek Anaszewski
2015-10-07 9:10 ` [PATCH v3 07/10] leds: max77693: Remove work queue Jacek Anaszewski
2015-10-07 9:10 ` [PATCH v3 08/10] leds: aat1290: " Jacek Anaszewski
2015-10-07 9:10 ` [PATCH v3 09/10] leds: ktd2692: " Jacek Anaszewski
2015-10-07 9:10 ` [PATCH v3 10/10] media: flash: use led_set_brightness_sync for torch brightness Jacek Anaszewski
2015-10-07 10:49 ` Pavel Machek
2015-11-16 9:35 ` Jacek Anaszewski
2015-11-16 9:47 ` Sakari Ailus
2015-11-16 13:34 ` Jacek Anaszewski
2015-12-03 13:35 ` Mauro Carvalho Chehab
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=562344DF.3050207@gmail.com \
--to=jacek.anaszewski@gmail.com \
--cc=andrew@lunn.ch \
--cc=j.anaszewski@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=pavel@ucw.cz \
--cc=sakari.ailus@iki.fi \
--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 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.