From: Pavel Machek <pavel@ucw.cz>
To: Pekka Paalanen <pekka.paalanen@haloniitty.fi>
Cc: Werner Sembach <wse@tuxedocomputers.com>,
Hans de Goede <hdegoede@redhat.com>, Lee Jones <lee@kernel.org>,
jikos@kernel.org, linux-kernel@vger.kernel.org,
Jelle van der Waa <jelle@vdwaa.nl>,
Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>,
"dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>,
linux-input@vger.kernel.org, ojeda@kernel.org,
linux-leds@vger.kernel.org
Subject: Re: Future handling of complex RGB devices on Linux v2
Date: Thu, 22 Feb 2024 18:38:16 +0100 [thread overview]
Message-ID: <ZdeGiMf2npmzJidU@duo.ucw.cz> (raw)
In-Reply-To: <20240222110457.71618f27@eldfell>
[-- Attachment #1: Type: text/plain, Size: 4397 bytes --]
Hi!
> > > so after more feedback from the OpenRGB maintainers I came up with an even
> > > more generic proposal:
> > > https://gitlab.com/CalcProgrammer1/OpenRGB/-/issues/3916#note_1753072869
> >
> > > >evaluate-set-command ioctl taking:
> > > >{
> > > > enum command /* one of supported_commands */
> > > > union data
> > > > {
> > > > char raw[3072],
> > > > {
> > > > <input struct for command 0>
> > > > },
> >
> > Yeah, so ... this is not a interface. This is a backdoor to pass
> > arbitrary data. That's not going to fly.
> >
> > For keyboards, we don't need complete new interface; we reasonable
> > extensions over existing display APIs -- keyboards are clearly 2D.
>
> I suppose they could be seen as *a* display, but if you are referring
> to DRM KMS UAPI, then no, I don't see that fitting at all:
So -- we already have very similar displays in
drivers/auxdisplay. drivers/auxdisplay/cfag12864b.c is 128x64 display,
1-bit display for example.
> - the "pixel grid" is not orthogonal, it's not a rectangle, and it
> might not be a grid at all
It is quite close to orthogonal. I'd suggest simply pretending it is
orthogonal grid with some pixels missing :-). We already have
cellphone displays with rounded corners and holes in them, so I
suspect handling of missing pixels will be neccessary anyway.
> - Timings and video modes? DRM KMS has always been somewhat awkward for
> display devices that do not have an inherent scanout cycle and timings
> totally depend on the amount of pixels updated at a time
> (FB_DAMAGE_CLIPS), e.g. USB displays (not USB-C DP alt mode).
> They do work, but they are very different from the usual hardware
> involved with KMS, require special consideration in userspace, and
> they still are actual displays while what we're talking about here
> are not.
As you say, there are other displays with similar problems.
> - KMS has no concept of programmed autonomous animations, and likely
> never will. They are not useful with actual displays.
Yep. We need some kind of extension here, and this is likely be quite
vendor-specific, as animations will differ between vendors. I guess
"please play pattern xyzzy with parametrs 3 and 5" might be enough for this.
> - Userspace will try to light up KMS outputs automatically and extend
> the traditional desktop there. This was already a problem for
> head-mounted displays (HMD) where it made no sense. That was worked
> around with an in-kernel list of HMDs and some KMS property
> quirking.
This will need fixing for cfag12864b.c, no? Perhaps userspace should
simply ignore anything smaller than 240x160 or something...
> Modern KMS UAPI very much aims to be a generic UAPI that abstracts
> display devices. It already breaks down a little for things like USB
> displays and virtual machines (e.g. qemu, vmware, especially with
> remote viewers), which I find unfortunate. With HMDs the genericity
> breaks down in other ways, but I'd claim HMDs are a better fit still
> than full-featured VM virtual displays (cursor plane hijacking). With
> non-displays like keyboards the genericity would be completely lost, as
> they won't work at all the same way as displays. You cannot even show
> proper images there, only coarse light patterns *IF* you actually know
> the pixel layout. But the pixel layout is(?) hardware-specific which is
> the opposite of generic.
>
> While you could dress keyboard lights etc. up with DRM KMS UAPI, the
> userspace would have to be written from scratch for them, and you
> somehow need to make existing KMS userspace to never touch those
> devices. What's the point of using DRM KMS UAPI in the first place,
> then?
Well, at least we have good UAPI to work with. Other options were 100
files in /sys/class/leds, pretending it is a linear array of leds,
just passing raw data around, and pretending it is grid of RGB888
data.
Anyway, there are devices such as these: (8x8 LED display).
https://www.laskakit.cz/8x8-led-matice-s-max7219-3mm-cervena/
We should think about what interface we want for these, and then I
believe we should make RGB keyboards use something similar.
Best regards,
Pavel
--
People of Russia, stop Putin before his war on Ukraine escalates.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
next prev parent reply other threads:[~2024-02-22 17:38 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-11 19:00 [PATCH] leds: rgb: Implement per-key keyboard backlight for several TUXEDO devices Werner Sembach
2023-10-11 19:21 ` Werner Sembach
2023-10-12 8:58 ` Pavel Machek
2023-10-12 10:02 ` Werner Sembach
2023-10-12 14:05 ` Pavel Machek
2023-10-12 16:35 ` Werner Sembach
2023-10-13 12:19 ` Pavel Machek
2023-10-13 14:38 ` Werner Sembach
2023-10-13 14:54 ` Implement per-key keyboard backlight as auxdisplay? Werner Sembach
2023-10-13 19:56 ` Pavel Machek
2023-10-13 20:03 ` Pavel Machek
2023-10-16 10:57 ` Miguel Ojeda
2023-10-23 11:40 ` Jani Nikula
2023-10-23 11:44 ` Miguel Ojeda
2023-11-20 20:53 ` Pavel Machek
2023-11-20 20:52 ` Pavel Machek
2023-11-21 11:33 ` Werner Sembach
2023-11-21 12:20 ` Hans de Goede
2023-11-21 13:29 ` Werner Sembach
2023-11-22 18:34 ` Hans de Goede
2023-11-27 10:59 ` Werner Sembach
2023-12-29 19:13 ` Werner Sembach
2024-01-17 15:26 ` Hans de Goede
2024-01-17 16:50 ` Userspace API for per key backlight for non HID (no hidraw) keyboards Hans de Goede
2024-01-17 19:03 ` Armin Wolf
2024-01-18 0:58 ` Werner Sembach
2024-01-18 17:45 ` Implement per-key keyboard backlight as auxdisplay? Pavel Machek
2024-01-18 22:32 ` Werner Sembach
2024-01-19 8:44 ` Hans de Goede
2024-01-19 10:51 ` Jani Nikula
2024-01-19 16:06 ` Werner Sembach
2024-01-19 18:33 ` Dmitry Torokhov
2024-01-19 22:14 ` Pavel Machek
2024-01-23 16:51 ` Werner Sembach
2024-01-19 16:04 ` Werner Sembach
2024-01-29 13:24 ` Hans de Goede
2024-01-30 11:12 ` Werner Sembach
2024-01-30 17:10 ` Hans de Goede
2024-01-30 18:09 ` Werner Sembach
2024-01-30 18:35 ` Hans de Goede
2024-01-30 19:08 ` Werner Sembach
2024-01-30 19:46 ` Hans de Goede
2024-01-31 11:41 ` Future handling of complex RGB devices on Linux Werner Sembach
2024-01-31 15:52 ` Roderick Colenbrander
2024-02-21 11:12 ` Future handling of complex RGB devices on Linux v2 Werner Sembach
2024-02-21 22:17 ` Pavel Machek
2024-02-22 9:04 ` Pekka Paalanen
2024-02-22 17:38 ` Pavel Machek [this message]
2024-02-23 8:53 ` Pekka Paalanen
2024-07-23 20:40 ` Keybaords with arrays of RGB LEDs was " Pavel Machek
2024-02-23 9:21 ` Thomas Zimmermann
2024-02-22 10:46 ` Hans de Goede
2024-02-22 11:38 ` Gregor Riepl
2024-02-22 12:39 ` Hans de Goede
2024-02-22 13:14 ` Future handling of complex RGB devices on Linux v3 Werner Sembach
2024-03-18 11:11 ` Hans de Goede
2024-03-19 15:18 ` Werner Sembach
2024-03-25 14:18 ` Hans de Goede
2024-03-25 17:01 ` Werner Sembach
2024-03-20 11:16 ` Werner Sembach
2024-03-20 11:33 ` Werner Sembach
2024-03-20 18:45 ` Werner Sembach
2024-03-25 14:25 ` In kernel virtual HID devices (was Future handling of complex RGB devices on Linux v3) Hans de Goede
2024-03-25 15:56 ` Benjamin Tissoires
2024-03-25 16:48 ` Werner Sembach
2024-03-25 18:30 ` Hans de Goede
2024-03-26 7:57 ` Werner Sembach
2024-03-26 15:39 ` Benjamin Tissoires
2024-03-26 16:57 ` Werner Sembach
2024-03-27 11:03 ` Benjamin Tissoires
2024-03-28 23:52 ` Werner Sembach
2024-03-27 11:01 ` Hans de Goede
2024-07-24 17:36 ` Pavel Machek
2024-07-24 21:08 ` Werner Sembach
2024-03-25 18:38 ` Miguel Ojeda
2024-04-09 13:33 ` Andy Shevchenko
2024-02-22 17:42 ` Future handling of complex RGB devices on Linux v2 Pavel Machek
2024-02-22 17:52 ` Pavel Machek
2024-02-22 17:23 ` Pavel Machek
2024-02-23 8:33 ` Werner Sembach
2024-01-19 20:15 ` Implement per-key keyboard backlight as auxdisplay? Pavel Machek
2024-01-19 20:22 ` Werner Sembach
2024-01-19 20:32 ` Pavel Machek
2024-01-29 13:24 ` Hans de Goede
2023-10-12 13:00 ` [PATCH] leds: rgb: Implement per-key keyboard backlight for several TUXEDO devices kernel test robot
2023-10-16 11:21 ` kernel test robot
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=ZdeGiMf2npmzJidU@duo.ucw.cz \
--to=pavel@ucw.cz \
--cc=dri-devel@lists.freedesktop.org \
--cc=hdegoede@redhat.com \
--cc=jelle@vdwaa.nl \
--cc=jikos@kernel.org \
--cc=lee@kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=miguel.ojeda.sandonis@gmail.com \
--cc=ojeda@kernel.org \
--cc=pekka.paalanen@haloniitty.fi \
--cc=wse@tuxedocomputers.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).