Re: [RFC 22/25] leds: tm1826: Add combined glyph support

From: Andreas FÃrber
Date: Sat Dec 21 2019 - 16:52:25 EST


Hi,

Am 21.12.19 um 22:04 schrieb Pavel Machek:
Allow to squeeze the text "HEllO" into a 4-digit display,
as seen on MeLE V9 TV box.

Enable this combining mode only if the text would overflow.

"HEll,nO"!

:-)

Ok, it is kind of cool, but... Can you take a look at
drivers/auxdisplay/charlcd.c ? It seems to support some kind of text
displays...

Why don't you look at it before making such a suggestion? ;) It is in no way
useful, as I pointed out in my cover letter. The only thing related today,
as Geert pointed out, is in the input subsystem.

Okay, so maybe we should get

AUXILIARY DISPLAY DRIVERS
M: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@xxxxxxxxx>

on the Cc: list?

Let's see if that email still exists - the code looked ancient, full of platform_data and driver-specific exported functions...

(the Yealink input driver was from 2005, too)

What you really have is a display, not a bunch of LEDs.

We have an LED Controller connected to zero, one or more displays.
They are most certainly _not_ the same thing.

If you don't want this in leds, you'll have to help make leds subsystem more
useful to external users - the latest function refactoring has been anything
but helpful here, as you've seen with the indicators, and we're completely
lacking any indexing or bulk operations on the LED controller level, since
you treat each LED as a standalone device. That's precisely why this code is
here in leds although - as I pointed out - it shouldn't belong here.

Well, your introduction mail was kind of long :-).

If someone wants to do heartbeat on

--
| | <- this segment
--
| |
--

they are probably crazy. We may not want to support that. What about
doing it as auxdisplay driver, and then exporting the indicators
around that as LEDs?

You're really just discussing which directory to put this file into - moving it around is the easiest thing...


Having USB activity trigger on 'USB' icon makes sense, on the other
hand. That would still be supported.

Actually I disagree about those indicators - that was the reason they're indicators and not, e.g., "usb". IMO people would go crazy if large text like that blinked during USB transfers. I assumed the meaning of those LEDs were to indicate whether a USB/SD medium is connected, which I did not see any better function for, and I'm not aware of us having such triggers today.

Maybe you also overread that with trigger I was referring to using RTC as trigger for a) the colon blinking every half-second and b) the text getting updated based on avsilable RTC interrupts?

You could also think of GPIO-connected LEDs that you may want to animate without two different heartbeats/timers getting out of sync. Or think of an RGB LED that today we sadly need to model as multiple GPIO LEDs instead of as one with a color property we can change (and hardcoding a color in DT/name is not helping that use case either).

auxdisplay offers no API that I could register with to drive output, nor any triggers to automate such output - that's unique to LEDs. Like I said, we can place this spi_driver file into auxdisplay/, but that doesn't solve the driver design. So I really think we need to decouple the two and keep the LED Controller driver in leds and the display logic elsewhere, with suitable new APIs to connect them. We're lacking suggestions for the how, on DT and API levels - see my response on the cover letter.

Regards,
Andreas

--
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer
HRB 36809 (AG Nürnberg)