Commit 1adb35c2 authored by Thomas Zimmermann's avatar Thomas Zimmermann
Browse files

drm/vesadrm: Prepare color management for palette-based framebuffers



Distiguish between component-based formats and 'the rest' in vesadrm's
color management. Scanout buffers with component-based format allow
for gamma correction. Palette-based formats (i.e., 'the rest') require
palette setup.

Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
Link: https://lore.kernel.org/r/20250714151513.309475-9-tzimmermann@suse.de
parent cbc383ce
Loading
Loading
Loading
Loading
+15 −8
Original line number Diff line number Diff line
@@ -223,6 +223,11 @@ static void vesadrm_crtc_helper_atomic_flush(struct drm_crtc *crtc,
	 * plane's color format.
	 */
	if (crtc_state->enable && crtc_state->color_mgmt_changed) {
		switch (sysfb->fb_format->format) {
		/*
		 * Component formats
		 */
		default:
			if (sysfb_crtc_state->format == sysfb->fb_format) {
				if (crtc_state->gamma_lut)
					vesadrm_load_gamma_lut(vesa,
@@ -233,6 +238,8 @@ static void vesadrm_crtc_helper_atomic_flush(struct drm_crtc *crtc,
			} else {
				vesadrm_fill_gamma_lut(vesa, sysfb_crtc_state->format);
			}
			break;
		}
	}
}