My penguin has blue feets (aka: RGB versus BGR troubles)

Sam Ravnborg sam at ravnborg.org
Sat Jul 27 09:56:24 UTC 2019


Hi all.

Thanks for the responses.
It turns out this was a PICNIC error
(Problem In Chair, Not In Computer)

On Fri, Jul 26, 2019 at 10:36:26PM +0200, Sam Ravnborg wrote:
> Hi all.
> 
> The Atmel at91sam9263 has a nice LCDC IP core that supports several
> formats:
>     DRM_FORMAT_XBGR8888, DRM_FORMAT_BGR888, DRM_FORMAT_BGR565
> 
> (It also supports a palletized C8 format, but thats for later).
> 
> The formats are all BGR formats - and some boards actually reverse Blue
> and Red when wiring up the display. I have added a DT property to
> identify boards with this difference.
> 
> The penguin shown during boot of the kernel had blue feet which is a
> clear sign that RED and GREEN was reversed.
> 
> So to fix this I (got help from imirkin on irc) I implmented a quirk.
> See patch below.
> 
> With the quirk enabled I see:
> - penguin shown during kernel boot has yellow feets (OK)
> - modetest tell the driver reports: XB24 BG24 BG16 (as expected)
> - modetest -s fails with:
>     # modetest -M atmel-lcdc -s 34:800x480-60Hz
modetest do not like the "Hz" prefix when specifying the refresh rate.
When Hz is added it reverts back to XR24.

So when I use:
    # modetest -M atmel-lcdc  -s 34:800x480 at BG24

Then I see the expected output with the right colors.

I also had got the false impression that if no format was specified
modetest would use the first format reported from the driver.
This was obviously also wrong.

So all-in-all - I am quite happy with how things works now.
Needs to do more testing, polishing a few patches and then
I can send out a v3 of this driver.

	Sam


More information about the dri-devel mailing list