[PATCH 0/6] Support for LEGO MINDSTORMS EV3 LCD display
David Lechner
david at lechnology.com
Tue Aug 1 09:51:23 PDT 2017
On 07/30/2017 12:14 PM, Noralf Trønnes wrote:
>
> Den 29.07.2017 21.40, skrev David Lechner:
>> On 07/29/2017 02:17 PM, David Lechner wrote:
>>> The goal of this series is to get the built-in LCD of the LEGO
>>> MINDSTORMS EV3
>>> working. But, most of the content here is building up the
>>> infrastructure to do
>>> that.
>>>
>>
>> Some general comments/questions:
>>
>> I have noticed that DRM doesn't really have support for monochrome
>> displays. I'm guessing that is because no one really uses them anymore?
>>
>
> The repaper driver was the first monochrome drm driver and I chose to
> present it to userspace as XRGB8888 and convert it to monochrome.
> The reason for this is that everything, libraries, apps, plymouth (boot
> splash, no rgb565) supports it. I didn't see any point in adding a new
> monochrome drm format that didn't have, or probably wouldn't get
> userspace support (by libraries at least). The application of course
> needs to know this to get a good result.
>
> tinydrm_xrgb8888_to_gray8() does the conversion:
> https://cgit.freedesktop.org/drm/drm-misc/commit/drivers/gpu/drm/tinydrm?id=379ea9a1a59a5a32c8db6f164e80a3fd00cb3781
>
>
>> The LEGO EV3 display is just an LCD (not the backlit kind). It has two
>> modes of operation. It can to 2bbp grayscale or it can do 1bpp
>> monochrome. The grayscale isn't the best (looks splotchy in places),
>> so it would be nice to be able to choose between these two modes. How
>> would I implement something like that?
>>
>
> Do you expect anyone to use grayscale if it doesn't look good?
> Maybe better to add it later if there's a demand for it.
I don't expect many people to use it at all. The people that do will be
hackers like me that want to see what it is capable of, so I think I
will keep it grayscale by default.
>
>> Also, how can I indicate to userspace that this display really is
>> monochrome/grayscale since the reported color depth 16bpp?
>>
>
> There isn't unless we add formats for it.
> Since this display is in a Lego piece, doesn't it have custom userspace
> that already know it's monochrome?
The official LEGO software is like this, yes. But I am working on a
project that supports other LEGO compatible devices that have color
screens, so the same software needs to be able to detect at runtime
which type of screen it is using. Currently I have a plain fbdev driver
that provides FB_VISUAL_MONO10 for the EV3 display and so the software
knows when it has a monochrome screen and when it doesn't. But since
plain fbdev drivers can't be accepted into mainline, I need to find a
different way to detect what type of screen this is so that my graphics
library can treat it differently.
More information about the linux-arm-kernel
mailing list