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

gpu: ipu-v3: add support for XRGB32 and XBGR32 V4L2 pixel formats

These should be used instead of the ill-defined deprecated RGB32 and
BGR32 V4L2 pixel formats.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>

+18
+4
drivers/gpu/ipu-v3/ipu-common.c
··· 122 122 case V4L2_PIX_FMT_NV16: 123 123 case V4L2_PIX_FMT_NV61: 124 124 return IPUV3_COLORSPACE_YUV; 125 + case V4L2_PIX_FMT_XRGB32: 126 + case V4L2_PIX_FMT_XBGR32: 125 127 case V4L2_PIX_FMT_RGB32: 126 128 case V4L2_PIX_FMT_BGR32: 127 129 case V4L2_PIX_FMT_RGB24: ··· 192 190 return (24 * pixel_stride) >> 3; 193 191 case V4L2_PIX_FMT_BGR32: 194 192 case V4L2_PIX_FMT_RGB32: 193 + case V4L2_PIX_FMT_XBGR32: 194 + case V4L2_PIX_FMT_XRGB32: 195 195 return (32 * pixel_stride) >> 3; 196 196 default: 197 197 break;
+8
drivers/gpu/ipu-v3/ipu-cpmem.c
··· 188 188 case V4L2_PIX_FMT_RGB32: 189 189 /* R G B A <=> [32:0] A:B:G:R */ 190 190 return DRM_FORMAT_XBGR8888; 191 + case V4L2_PIX_FMT_XBGR32: 192 + /* B G R X <=> [32:0] X:R:G:B */ 193 + return DRM_FORMAT_XRGB8888; 194 + case V4L2_PIX_FMT_XRGB32: 195 + /* X R G B <=> [32:0] B:G:R:X */ 196 + return DRM_FORMAT_BGRX8888; 191 197 case V4L2_PIX_FMT_UYVY: 192 198 return DRM_FORMAT_UYVY; 193 199 case V4L2_PIX_FMT_YUYV: ··· 793 787 break; 794 788 case V4L2_PIX_FMT_RGB32: 795 789 case V4L2_PIX_FMT_BGR32: 790 + case V4L2_PIX_FMT_XRGB32: 791 + case V4L2_PIX_FMT_XBGR32: 796 792 offset = image->rect.left * 4 + 797 793 image->rect.top * pix->bytesperline; 798 794 break;
+6
drivers/gpu/ipu-v3/ipu-image-convert.c
··· 227 227 .fourcc = V4L2_PIX_FMT_BGR32, 228 228 .bpp = 32, 229 229 }, { 230 + .fourcc = V4L2_PIX_FMT_XRGB32, 231 + .bpp = 32, 232 + }, { 233 + .fourcc = V4L2_PIX_FMT_XBGR32, 234 + .bpp = 32, 235 + }, { 230 236 .fourcc = V4L2_PIX_FMT_YUYV, 231 237 .bpp = 16, 232 238 .uv_width_dec = 2,