From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: "Marek Behún" <kabel@kernel.org>
Cc: Pavel Machek <pavel@ucw.cz>,
linuxarm@huawei.com, mauro.chehab@huawei.com,
gregkh@linuxfoundation.org, linux-leds@vger.kernel.org
Subject: Re: [PATCH v2 06/17] leds: leds-nuc: allow changing the LED colors
Date: Wed, 19 May 2021 17:40:17 +0200 [thread overview]
Message-ID: <20210519174017.2f8295e1@coco.lan> (raw)
In-Reply-To: <20210519140451.0eae7d47@thinkpad>
Em Wed, 19 May 2021 14:04:51 +0200
Marek Behún <kabel@kernel.org> escreveu:
> On Wed, 19 May 2021 14:00:40 +0200
> Mauro Carvalho Chehab <mchehab+huawei@kernel.org> wrote:
>
> > Em Wed, 19 May 2021 13:07:25 +0200
> > Pavel Machek <pavel@ucw.cz> escreveu:
> >
> > > Hi!
> > >
> > > > > We have multicolor LED framerwork in Linux. This should be implemented
> > > > > via that framework. Please do not implement your own way for RGB leds.
> > > > >
> > > > > Marek
> > > >
> > > > I saw the multicolor LED framework, but IMO it won't fit here.
> > > >
> > > > See, Linux doesn't have direct access to the LED. The access is
> > > > provided via ACPI WMI.
> > >
> > > So?
> > >
> > > > The way BIOS reports the type of the led is via a bitmap flag.
> > > > So, the same LED can be represented with either single-color
> > > > or multi-color one. See:
> > > > https://www.intel.com/content/dam/support/us/en/documents/intel-nuc/WMI-Spec-Intel-NUC-NUC10ixFNx.pdf
> > > >
> > > > Table 2.2 LED Color Type
> > > > Bit Number Type
> > > > 0 Dual-color Blue / Amber
> > > > 1 Dual-color Blue / White
> > > > 2 RGB-color
> > > > 3 Single-color LED
> > > >
> > > > Also as each NUC can support up to 7, and they may have a mix of
> > > > single color, dual color and RGB LEDs, if we would use the
> > > > multicolor class for the colored ones, that would mean that the
> > > > code will need to be duplicated, as, depending on what the BIOS
> > > > reports, the LED would need to be exposed either as via
> > > > led-multicolor-class or as leds-class.
> > >
> > > So?
> > >
> > > > Worse than that, there's even a WMI command that would allow
> > > > to "switch LED type" (see page 8). On other words, the BIOS can
> > > > expose a "virtual" single-color LED, but actually implemented
> > > > in hardware using a RGB one, and this can be changed in real time.
> > >
> > > So you simply always use it as RGB one?
> >
> > Hmm... are you meaning that I should only use the multicolor led class,
> > even when the BIOS is reporting the LEDs as single color?
> >
> > I can surely do that.
>
> No. If the BIOS reports that the LED is single color, register a
> classic LED. If the BIOS reports a RGB LED, register a multi-color
> LED...
Ok. I'll try to change the code to work with both APIs. Let's hope
it won't result on too much code duplication.
-
I have one doubt about how to use this API. It is meant just
for the RGB LEDs, right?
NUC also have dual-color and multi-colored leds that don't
allow specifying the intensity of each component. All it lets
is to change the color (being, for instance, either blue or
white).
For those, the API should basically show the names of the
supported colors for each LED, letting the user change it
to some other color.
How should I map such leds? via led-class or via
led-class-multicolor?
Thanks,
Mauro
next prev parent reply other threads:[~2021-05-19 15:40 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-18 15:08 [PATCH v2 00/17] Adding support for controlling the leds found on Intel NUC Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 02/17] leds: add support for NUC WMI LEDs Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 03/17] leds: leds-nuc: detect WMI API detection Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 04/17] leds: leds-nuc: add support for changing S0 brightness Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 05/17] leds: leds-nuc: add all types of brightness Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 06/17] leds: leds-nuc: allow changing the LED colors Mauro Carvalho Chehab
2021-05-19 7:57 ` Marek Behún
2021-05-19 10:05 ` Mauro Carvalho Chehab
2021-05-19 11:07 ` Pavel Machek
2021-05-19 12:00 ` Mauro Carvalho Chehab
2021-05-19 12:04 ` Marek Behún
2021-05-19 15:40 ` Mauro Carvalho Chehab [this message]
2021-05-18 15:08 ` [PATCH v2 07/17] leds: leds-nuc: add support for WMI API version 1.0 Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 08/17] leds: leds-nuc: add basic support for NUC6 WMI Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 09/17] leds: leds-nuc: add brightness and color for NUC6 API Mauro Carvalho Chehab
2021-05-18 15:08 ` [PATCH v2 10/17] leds: leds-nuc: Add support to blink behavior for NUC8/10 Mauro Carvalho Chehab
2021-05-19 7:58 ` Marek Behun
2021-05-19 10:09 ` Mauro Carvalho Chehab
2021-05-18 15:09 ` [PATCH v2 11/17] leds: leds-nuc: get rid of an unused variable Mauro Carvalho Chehab
2021-05-18 15:09 ` [PATCH v2 12/17] leds: leds-nuc: implement blink control for NUC6 Mauro Carvalho Chehab
2021-05-18 15:09 ` [PATCH v2 13/17] leds: leds-nuc: better detect NUC6/NUC7 devices Mauro Carvalho Chehab
2021-05-18 15:09 ` [PATCH v2 14/17] leds: leds-nuc: add support for HDD activity default Mauro Carvalho Chehab
2021-05-18 15:09 ` [PATCH v2 15/17] leds: leds-nuc: fix software blink behavior logic Mauro Carvalho Chehab
2021-05-18 15:09 ` [PATCH v2 16/17] leds: leds-nuc: add support for changing the ethernet type indicator Mauro Carvalho Chehab
2021-05-19 8:02 ` Marek Behún
2021-05-19 10:18 ` Mauro Carvalho Chehab
2021-05-19 12:11 ` Marek Behún
2021-05-19 14:24 ` Mauro Carvalho Chehab
2021-05-19 15:55 ` Marek Behún
2021-05-19 18:30 ` Mauro Carvalho Chehab
2021-05-20 11:00 ` Marek Behún
2021-05-20 16:00 ` Mauro Carvalho Chehab
2021-05-20 16:36 ` Marek Behún
2021-05-20 18:59 ` Mauro Carvalho Chehab
2021-05-20 20:07 ` Marek Behún
2021-05-21 9:14 ` Mauro Carvalho Chehab
2021-05-26 14:51 ` Pavel Machek
2021-05-28 11:33 ` Mauro Carvalho Chehab
2021-05-26 14:47 ` Pavel Machek
2021-05-28 11:24 ` Mauro Carvalho Chehab
2021-05-18 15:09 ` [PATCH v2 17/17] leds: leds-nuc: add support for changing the power limit scheme Mauro Carvalho Chehab
2021-05-19 11:11 ` [PATCH v2 00/17] Adding support for controlling the leds found on Intel NUC Pavel Machek
2021-05-19 12:15 ` Mauro Carvalho Chehab
2021-05-19 19:41 ` Pavel Machek
2021-05-19 23:07 ` Mauro Carvalho Chehab
2021-05-20 16:19 ` Marek Behún
2021-05-20 19:16 ` Mauro Carvalho Chehab
2021-05-20 19:43 ` Marek Behún
2021-05-21 9:57 ` 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=20210519174017.2f8295e1@coco.lan \
--to=mchehab+huawei@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=kabel@kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=mauro.chehab@huawei.com \
--cc=pavel@ucw.cz \
/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).