From: Pavel Machek <pavel@ucw.cz>
To: Dan Murphy <dmurphy@ti.com>
Cc: Yurii Pavlovskyi <yurii.pavlovskyi@gmail.com>,
Andy Shevchenko <andy.shevchenko@gmail.com>,
Jacek Anaszewski <jacek.anaszewski@gmail.com>,
Linux LED Subsystem <linux-leds@vger.kernel.org>,
Corentin Chary <corentin.chary@gmail.com>,
Darren Hart <dvhart@infradead.org>,
Andy Shevchenko <andy@infradead.org>,
Daniel Drake <drake@endlessm.com>,
acpi4asus-user <acpi4asus-user@lists.sourceforge.net>,
Platform Driver <platform-driver-x86@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-api@vger.kernel.org
Subject: Re: [PATCH v3 09/11] platform/x86: asus-wmi: Control RGB keyboard backlight
Date: Fri, 10 May 2019 00:34:37 +0200 [thread overview]
Message-ID: <20190509223436.GB527@amd> (raw)
In-Reply-To: <2f26dd9e-ada7-8e20-c810-a647854c338c@ti.com>
[-- Attachment #1: Type: text/plain, Size: 3147 bytes --]
Hi!
> >> Yes, please. We have common interface for LED drivers; this needs to
> >> use it.
> >
> > That is indeed a better option and I did in fact considered this first and
> > even did a test implementation. The discoveries were:
> > 1. The WMI methods are write-only and only written all at once in a
> > transaction manner (also invoking solely first RGB-interface method has no
> > effect until some other keyboard backlight method is called).
Write-only is not a problem, right? Nor should be transaction. Just
cache the values in kernel.
> > 2. In addition to RGB there are several control values, which switch
> > effects, speed and enable or disable the backlight under specific
> > conditions or switch whether it is set temporarily or permanently (not that
> > these are critical functionalities, but for the sake of
> > completeness).
Yep, lets ignore that for now.
> > 3. The EC is really slow
> > # time bash -c "echo 1 > /sys/devices/platform/faustus/kbbl_set"
> >
> > real 0m0,691s
> > user 0m0,000s
> > sys 0m0,691s
> >
> > (please ignore the sysfs-path there, it's essentially the same code running
> > as in this patch). It is consistently same for both temporary and permanent
> > configuration. Writing after every change would take about (6+)x of that.
> > Not that it's that unbearable though as it is not likely to be
> > done often.
Yup, this is quite ugly.
What about simply ignoring changes as they happen, and then setting
RGB channels when nothing changes for 10msec?
> > I was not quite happy with that implementation so I opted for writing sort
> > of sysfs wrapper instead that would allow same sort of transactions as
> > provided by BIOS. I agree that it's non-standard solution.
> >
> > If I understood correctly, the typical current RGB led_class devices from
> > the Linux tree currently provide channels as separate LEDs. There are also
> > blink / pattern options present, I guess one could misuse them for setting
> > effects and speed. So one could make 3 devices for RGB + 3 for awake,
> > sleep, boot modes + 1 for setting effect / speed.
Take a look at "pattern" trigger. That should give you effect/speed
options. .. for single channel.
> > I'd guess the end solution might be also either something like combination
> > of both approaches (RGB leds + separate sysfs interface) or some extension
> > of the led_class device interface. Dropping support of the non-essential
> > features for the sake of uniformity of ABI would also be an option to
> > consider (exposing just three RGB LEDs with brightness only), not happy one
> > though.
> >
> > In any case this looks like it might need some additional research,
> > discussion, development, and a pair of iterations so I tend to separate
> > this patch from the series and post it extra after the others are through
> > to avoid dragging 10+ patches around.
Separate patch certainly makes sense.
Best regards,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
next prev parent reply other threads:[~2019-05-09 22:34 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <7acd57fe-604a-a96a-4ca2-a25bc88d6405@gmail.com>
2019-04-19 10:14 ` [PATCH v3 09/11] platform/x86: asus-wmi: Control RGB keyboard backlight Yurii Pavlovskyi
2019-05-08 14:02 ` Andy Shevchenko
2019-05-08 17:12 ` Pavel Machek
2019-05-09 19:04 ` Yurii Pavlovskyi
2019-05-09 20:45 ` Dan Murphy
2019-05-09 21:06 ` Andy Shevchenko
2019-05-09 21:44 ` Dan Murphy
2019-05-09 22:15 ` Pavel Machek
2019-05-09 22:34 ` Pavel Machek [this message]
2019-04-19 10:15 ` [PATCH v3 10/11] platform/x86: asus-wmi: Switch fan boost mode Yurii Pavlovskyi
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=20190509223436.GB527@amd \
--to=pavel@ucw.cz \
--cc=acpi4asus-user@lists.sourceforge.net \
--cc=andy.shevchenko@gmail.com \
--cc=andy@infradead.org \
--cc=corentin.chary@gmail.com \
--cc=dmurphy@ti.com \
--cc=drake@endlessm.com \
--cc=dvhart@infradead.org \
--cc=jacek.anaszewski@gmail.com \
--cc=linux-api@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=yurii.pavlovskyi@gmail.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).