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

media: vicodec: add support for 4 new RGB32 pixelformats

Add support for V4L2_PIX_FMT_BGRA/X32 and V4L2_PIX_FMT_RGBA/X32 formats.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>

authored by

Hans Verkuil and committed by
Mauro Carvalho Chehab
b40dc2bf 6b226597

+28 -2
+28 -2
drivers/media/platform/vicodec/codec-v4l2-fwht.c
··· 29 29 { V4L2_PIX_FMT_HSV24, 3, 3, 1, 3, 3, 1, 1, 3, 1, FWHT_FL_PIXENC_HSV}, 30 30 { V4L2_PIX_FMT_BGR32, 4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB}, 31 31 { V4L2_PIX_FMT_XBGR32, 4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB}, 32 + { V4L2_PIX_FMT_ABGR32, 4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB}, 32 33 { V4L2_PIX_FMT_RGB32, 4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB}, 33 34 { V4L2_PIX_FMT_XRGB32, 4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB}, 34 - { V4L2_PIX_FMT_HSV32, 4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_HSV}, 35 35 { V4L2_PIX_FMT_ARGB32, 4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB}, 36 - { V4L2_PIX_FMT_ABGR32, 4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB}, 36 + { V4L2_PIX_FMT_BGRX32, 4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB}, 37 + { V4L2_PIX_FMT_BGRA32, 4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB}, 38 + { V4L2_PIX_FMT_RGBX32, 4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_RGB}, 39 + { V4L2_PIX_FMT_RGBA32, 4, 4, 1, 4, 4, 1, 1, 4, 1, FWHT_FL_PIXENC_RGB}, 40 + { V4L2_PIX_FMT_HSV32, 4, 4, 1, 4, 4, 1, 1, 3, 1, FWHT_FL_PIXENC_HSV}, 37 41 { V4L2_PIX_FMT_GREY, 1, 1, 1, 1, 0, 1, 1, 1, 1, FWHT_FL_PIXENC_RGB}, 38 42 }; 39 43 ··· 196 192 rf->cr = rf->cb + 2; 197 193 rf->luma++; 198 194 rf->alpha = rf->cr + 1; 195 + break; 196 + case V4L2_PIX_FMT_BGRX32: 197 + rf->cb = rf->luma + 1; 198 + rf->cr = rf->cb + 2; 199 + rf->luma += 2; 200 + break; 201 + case V4L2_PIX_FMT_BGRA32: 202 + rf->alpha = rf->luma; 203 + rf->cb = rf->luma + 1; 204 + rf->cr = rf->cb + 2; 205 + rf->luma += 2; 206 + break; 207 + case V4L2_PIX_FMT_RGBX32: 208 + rf->cr = rf->luma; 209 + rf->cb = rf->cr + 2; 210 + rf->luma++; 211 + break; 212 + case V4L2_PIX_FMT_RGBA32: 213 + rf->alpha = rf->luma + 3; 214 + rf->cr = rf->luma; 215 + rf->cb = rf->cr + 2; 216 + rf->luma++; 199 217 break; 200 218 default: 201 219 return -EINVAL;