[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <9b491299-1e56-498a-bdfb-20f2cd108280@suse.de>
Date: Wed, 3 Dec 2025 10:42:01 +0100
From: Thomas Zimmermann <tzimmermann@...e.de>
To: René Rebe <rene@...ctco.de>,
dri-devel@...ts.freedesktop.org, linux-kernel@...r.kernel.org
Cc: Dave Airlie <airlied@...hat.com>
Subject: Re: [PATCH] drm/mgag200: fix big-endian support
Hi,
let's first go through the ast patch. Most of that review also applies
to this driver.
Best regards
Thomas
Am 02.12.25 um 16:42 schrieb René Rebe:
> Unlike the original deleted Matrox mga driver, the new mgag200 driver
> has the frame-buffer RGBX swapped on big-endian RISC systems. Fix by
> enabling byte swapping "PowerPC" OPMODE for any __BIG_ENDIAN config.
>
> Fixes: 414c45310625 ("mgag200: initial g200se driver (v2)")
> Signed-off-by: René Rebe <rene@...ctco.de>
> ---
> Tested on IBM 43p Model 150 (7043-150) running T2/Linux.
> ---
> drivers/gpu/drm/mgag200/mgag200_mode.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c b/drivers/gpu/drm/mgag200/mgag200_mode.c
> index 951d715dea30..9073063f6473 100644
> --- a/drivers/gpu/drm/mgag200/mgag200_mode.c
> +++ b/drivers/gpu/drm/mgag200/mgag200_mode.c
> @@ -655,6 +655,20 @@ void mgag200_crtc_helper_atomic_enable(struct drm_crtc *crtc, struct drm_atomic_
> else
> mgag200_crtc_fill_gamma(mdev, format);
>
> +#ifdef __BIG_ENDIAN
> + /* Big-endian byte-swapping */
> + switch (format->format) {
> + case DRM_FORMAT_RGB565:
> + WREG32(MGAREG_OPMODE, 1 << 16);
> + break;
> + case DRM_FORMAT_XRGB8888:
> + WREG32(MGAREG_OPMODE, 2 << 16);
> + break;
> + default:
> + break;
> + }
> +#endif
> +
> mgag200_enable_display(mdev);
> }
>
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG Nürnberg)
Powered by blists - more mailing lists