From: Lee Jones <lee@kernel.org>
To: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Cc: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
"Qingtao Cao" <qingtao.cao.au@gmail.com>,
"Qingtao Cao" <qingtao.cao@digi.com>,
"Pavel Machek" <pavel@ucw.cz>,
linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/1] leds: ledtrig-tty.c: call led_set_brightness() when the blocking callback is not available
Date: Fri, 20 Jan 2023 13:27:50 +0000 [thread overview]
Message-ID: <Y8qW1tlDmw6KEIuu@google.com> (raw)
In-Reply-To: <ad4a1069-72c6-a431-336f-ed78a57a1ba0@gmail.com>
On Sat, 07 Jan 2023, Jacek Anaszewski wrote:
> Hi all,
>
> On 1/4/23 17:20, Lee Jones wrote:
> > On Fri, 09 Dec 2022, Uwe Kleine-König wrote:
> >
> > > On Fri, Dec 09, 2022 at 10:10:38AM +1000, Qingtao Cao wrote:
> > > > The Marvell GPIO controller's driver will setup its struct gpio_chip's can_sleep
> > > > false, making create_gpio_led() setting up the brightness_set function pointer
> > > > instead of the brightness_set_blocking function pointer. In this case the
> > > > nonblocking version led_set_brightness() should be fallen back on by ledtrig_tty_work()
> > > >
> > > > Signed-off-by: Qingtao Cao <qingtao.cao@digi.com>
> > > > ---
> > > > drivers/leds/trigger/ledtrig-tty.c | 10 ++++++++--
> > > > 1 file changed, 8 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/drivers/leds/trigger/ledtrig-tty.c b/drivers/leds/trigger/ledtrig-tty.c
> > > > index f62db7e520b5..e43d285b5d06 100644
> > > > --- a/drivers/leds/trigger/ledtrig-tty.c
> > > > +++ b/drivers/leds/trigger/ledtrig-tty.c
> > > > @@ -122,12 +122,18 @@ static void ledtrig_tty_work(struct work_struct *work)
> > > > if (icount.rx != trigger_data->rx ||
> > > > icount.tx != trigger_data->tx) {
> > > > - led_set_brightness_sync(trigger_data->led_cdev, LED_ON);
> > > > + if (trigger_data->led_cdev->brightness_set_blocking)
> > > > + led_set_brightness_sync(trigger_data->led_cdev, LED_ON);
> > > > + else if (trigger_data->led_cdev->brightness_set)
> > > > + led_set_brightness(trigger_data->led_cdev, LED_ON);
> > >
> > > I had similar issues in the past where a function call worked for
> > > sleeping LEDs but not atomic ones (or the other way around? Don't
> > > remember the details.)
> > >
> > > I wonder if there isn't a function that does the right thing no matter
> > > what type the LED is. The other triggers should have the same issue, and
> > > doing the above check in all of them just looks wrong.
> >
> > Anyone fancy taking a deeper dive into this?
> >
> > I'd usually have a go myself, but I'm presently swamped.
> >
> > Pavel already has an idea?
> >
>
> There is led_set_brightness_nosleep() and it should be used here
> from the beginning. Generally it should be used always in triggers.
Thanks for helping to keep an eye on things Jacek.
Much appreciated.
--
Lee Jones [李琼斯]
next prev parent reply other threads:[~2023-01-20 13:28 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-09 0:10 [PATCH 1/1] leds: ledtrig-tty.c: call led_set_brightness() when the blocking callback is not available Qingtao Cao
2022-12-09 12:40 ` Uwe Kleine-König
2023-01-04 16:20 ` Lee Jones
2023-01-07 18:34 ` Jacek Anaszewski
2023-01-20 13:27 ` Lee Jones [this message]
2023-01-22 22:18 ` Jacek Anaszewski
2023-01-23 9:01 ` Lee Jones
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=Y8qW1tlDmw6KEIuu@google.com \
--to=lee@kernel.org \
--cc=jacek.anaszewski@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=pavel@ucw.cz \
--cc=qingtao.cao.au@gmail.com \
--cc=qingtao.cao@digi.com \
--cc=u.kleine-koenig@pengutronix.de \
/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.