Re: [PATCH] drm/ast: Fix big-endian support

From: René Rebe
Date: Wed Dec 10 2025 - 10:33:54 EST


Hallo,

On Wed, 10 Dec 2025 09:55:50 +0100, Thomas Zimmermann <tzimmermann@xxxxxxx> wrote:
...
> >> Does that fix the color corruption?
> > Following your suggestions conversion does not want to just work:
> >
> > root@XCODE_SPARC_T4_1:~# dmesg | tail
> > [ 105.444761] ast 0000:0a:00.0: AST 2200 detected
> > [ 105.444947] ast 0000:0a:00.0: [drm] dram MCLK=266 Mhz type=2
> > bus_width=32
> > [ 105.444963] ast 0000:0a:00.0: [drm] Using analog VGA
> > [ 105.445470] [drm] Initialized ast 0.1.0 for 0000:0a:00.0 on minor 0
> > [ 105.673289] ast 0000:0a:00.0: [drm] format BX24 little-endian
> > (0x34325842) not supported
> > [ 105.673302] ast 0000:0a:00.0: [drm] No compatible format found
> > [ 105.673348] ast 0000:0a:00.0: [drm] *ERROR* fbdev: Failed to setup
> > emulation (ret=-22)
> > [ 105.901306] ast 0000:0a:00.0: [drm] format BX24 little-endian
> > (0x34325842) not supported
> > [ 105.901319] ast 0000:0a:00.0: [drm] No compatible format found
> > [ 105.901350] ast 0000:0a:00.0: [drm] *ERROR* fbdev: Failed to setup
> > emulation (ret=-22)
>
> Oh well...
>
> There's a very simple patch attach. Does it fix the problem?

Yes, only leaving the hardcoded swapping from my patch liek this fixes
the byte-swapped output as expected on the sparc64 Sun T4.

How would you like me to go from here? Just use the chip_id to force
swapping and enable hw swapper for pre-AST2400 chips or fix the
generic format selection to work as you had suggested?

Does the ast_primary_plane_formats need to byte swapped formats for it
to work?

Thanks for sticking with it!

René

> Best regards
> Thomas

--
René Rebe, ExactCODE GmbH, Berlin, Germany
https://exactco.dehttps://t2linux.comhttps://patreon.com/renerebe