[PATCH 0/9] drm/vesadrm: Support 8-bit palettes

Thomas Zimmermann tzimmermann at suse.de
Tue Jun 17 14:23:12 UTC 2025


VESA provides a wide range ot 8-bit palette modes. Add support to
vesadrm. For compatibility with common userspace the driver also
provides XRGB8888 on top of the palettized output.

Patches 1 to 3 prepare screen_info and struct pixel_format for
indexed formats. This cleans up the code for other drivers as well.
The pixel-format compare functions will be helpful in various places.

Patches 4 to 6 prepare for using RGB332 as intermediate format
between XRGB8888 and C8. This requires support for format conversion
and RGB332 hardware palettes.

Patches 7 to 9 update vesadrm. Patches 7 and 8 prepare the driver
without adding new functionality. Patch 9 adds support for the color
formats C8 and XRGB888. It adjusts output color formats in the plane's
atomic_check helper as needed. Palette setup happens in atomic_flush
as usual.

Tested on VGA hardware. Besides supporting odd use cases, this feature
can also help with testing support for low-end displays. Such displays
often have similar limitations.

Thomas Zimmermann (9):
  video: pixel_format: Add compare helpers
  video: screen_info: Add pixel-format helper for linear framebuffers
  drm/sysfb: Find screen_info format with helpers
  drm/sysfb: Blit to CRTC destination format
  drm/color-mgmt: Prepare for RGB332 palettes
  drm/format-helper: Add XRGB8888-to-RGB332 to drm_fb_blit()
  drm/vesadrm: Rename vesadrm_set_gamma_lut() to vesadrm_set_color_lut()
  drm/vesadrm: Prepare color management for palette-based framebuffers
  drm/vesadrm: Support DRM_FORMAT_C8

 drivers/gpu/drm/drm_color_mgmt.c              |  32 ++++
 drivers/gpu/drm/drm_format_helper.c           |   3 +
 drivers/gpu/drm/sysfb/drm_sysfb_helper.h      |   2 +-
 drivers/gpu/drm/sysfb/drm_sysfb_modeset.c     |  29 ++--
 drivers/gpu/drm/sysfb/drm_sysfb_screen_info.c |  21 ++-
 drivers/gpu/drm/sysfb/vesadrm.c               | 153 ++++++++++++++++--
 drivers/video/screen_info_generic.c           |  55 +++++++
 include/drm/drm_color_mgmt.h                  |   1 +
 include/linux/screen_info.h                   |   2 +
 include/video/pixel_format.h                  |  61 +++++++
 10 files changed, 319 insertions(+), 40 deletions(-)

-- 
2.49.0



More information about the dri-devel mailing list