]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/mgag200: Enable DRM_FORMAT_XRGB1555 on the primary plane
authorThomas Zimmermann <tzimmermann@suse.de>
Wed, 15 Apr 2026 15:23:40 +0000 (17:23 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Mon, 20 Apr 2026 07:15:57 +0000 (09:15 +0200)
The driver already sets the format for the depth value in the XMULCTRL
register. Add the format to the other switch statements, set the helpers
for gamma correction and export the XRGB1555 in the primary plane's
format array.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
Link: https://patch.msgid.link/20260415152625.101710-7-tzimmermann@suse.de
drivers/gpu/drm/mgag200/mgag200_g200se.c
drivers/gpu/drm/mgag200/mgag200_mode.c

index 746ce11b75fb63577fdbb6a08ad31598161935cb..5c2185d6b707825029f0d66f23dc5993284271ed 100644 (file)
@@ -82,6 +82,7 @@ static void mgag200_g200se_set_hiprilvl(struct mga_device *mdev,
                        bpp = 32;
                        break;
                case DRM_FORMAT_RGB565:
+               case DRM_FORMAT_XRGB1555:
                        bpp = 16;
                        break;
                case DRM_FORMAT_C8:
index 7fe1d492083e9ba72c51983bcda047d4087e2ab0..bd346b828773a896d903e0633f7efc854d8266cf 100644 (file)
@@ -59,6 +59,9 @@ void mgag200_crtc_fill_gamma(struct mga_device *mdev,
        case DRM_FORMAT_C8:
                drm_crtc_fill_palette_8(crtc, mgag200_set_gamma_lut);
                break;
+       case DRM_FORMAT_XRGB1555:
+               drm_crtc_fill_gamma_555(crtc, mgag200_set_gamma_lut);
+               break;
        case DRM_FORMAT_RGB565:
                drm_crtc_fill_gamma_565(crtc, mgag200_set_gamma_lut);
                break;
@@ -83,6 +86,9 @@ void mgag200_crtc_load_gamma(struct mga_device *mdev,
        case DRM_FORMAT_C8:
                drm_crtc_load_palette_8(crtc, lut, mgag200_set_gamma_lut);
                break;
+       case DRM_FORMAT_XRGB1555:
+               drm_crtc_load_gamma_555_from_888(crtc, lut, mgag200_set_gamma_lut);
+               break;
        case DRM_FORMAT_RGB565:
                drm_crtc_load_gamma_565_from_888(crtc, lut, mgag200_set_gamma_lut);
                break;
@@ -180,6 +186,7 @@ static void mgag200_set_datasiz(struct mga_device *mdev, u32 format)
 
        /* Big-endian byte-swapping */
        switch (format) {
+       case DRM_FORMAT_XRGB1555:
        case DRM_FORMAT_RGB565:
                opmode |= 0x10100;
                break;
@@ -443,6 +450,7 @@ static void mgag200_handle_damage(struct mga_device *mdev, const struct iosys_ma
 const uint32_t mgag200_primary_plane_formats[] = {
        DRM_FORMAT_XRGB8888,
        DRM_FORMAT_RGB565,
+       DRM_FORMAT_XRGB1555,
        DRM_FORMAT_RGB888,
        DRM_FORMAT_C8,
 };