Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/gud: Add GUD_PIXEL_FORMAT_R8

Add support for 8-bit greyscale format.

Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210929191201.34456-5-noralf@tronnes.org

+10 -2
+2
drivers/gpu/drm/gud/gud_drv.c
··· 523 523 switch (format) { 524 524 case GUD_DRM_FORMAT_R1: 525 525 fallthrough; 526 + case DRM_FORMAT_R8: 527 + fallthrough; 526 528 case GUD_DRM_FORMAT_XRGB1111: 527 529 if (!xrgb8888_emulation_format) 528 530 xrgb8888_emulation_format = info;
+4
drivers/gpu/drm/gud/gud_internal.h
··· 80 80 switch (fourcc) { 81 81 case GUD_DRM_FORMAT_R1: 82 82 return GUD_PIXEL_FORMAT_R1; 83 + case DRM_FORMAT_R8: 84 + return GUD_PIXEL_FORMAT_R8; 83 85 case GUD_DRM_FORMAT_XRGB1111: 84 86 return GUD_PIXEL_FORMAT_XRGB1111; 85 87 case DRM_FORMAT_RGB565: ··· 100 98 switch (format) { 101 99 case GUD_PIXEL_FORMAT_R1: 102 100 return GUD_DRM_FORMAT_R1; 101 + case GUD_PIXEL_FORMAT_R8: 102 + return DRM_FORMAT_R8; 103 103 case GUD_PIXEL_FORMAT_XRGB1111: 104 104 return GUD_DRM_FORMAT_XRGB1111; 105 105 case GUD_PIXEL_FORMAT_RGB565:
+2
drivers/gpu/drm/gud/gud_pipe.c
··· 189 189 ret = -ENOMEM; 190 190 goto end_cpu_access; 191 191 } 192 + } else if (format->format == DRM_FORMAT_R8) { 193 + drm_fb_xrgb8888_to_gray8(buf, vaddr, fb, rect); 192 194 } else if (format->format == DRM_FORMAT_RGB565) { 193 195 drm_fb_xrgb8888_to_rgb565(buf, vaddr, fb, rect, gud_is_big_endian()); 194 196 } else {
+2 -2
include/drm/gud.h
··· 246 246 /* Get supported pixel formats as a byte array of GUD_PIXEL_FORMAT_* */ 247 247 #define GUD_REQ_GET_FORMATS 0x40 248 248 #define GUD_FORMATS_MAX_NUM 32 249 - /* R1 is a 1-bit monochrome transfer format presented to userspace as XRGB8888 */ 250 - #define GUD_PIXEL_FORMAT_R1 0x01 249 + #define GUD_PIXEL_FORMAT_R1 0x01 /* 1-bit monochrome */ 250 + #define GUD_PIXEL_FORMAT_R8 0x08 /* 8-bit greyscale */ 251 251 #define GUD_PIXEL_FORMAT_XRGB1111 0x20 252 252 #define GUD_PIXEL_FORMAT_RGB565 0x40 253 253 #define GUD_PIXEL_FORMAT_XRGB8888 0x80