Hi Philipp,
On 19-08-14 17:10, Philipp Zabel wrote:
Support is already implemented for the corresponding DRM formats, just hook up the remaining V4L2 pixel formats.
Signed-off-by: Philipp Zabel p.zabel@pengutronix.de
drivers/gpu/ipu-v3/ipu-common.c | 16 ++++++++++------ drivers/gpu/ipu-v3/ipu-cpmem.c | 26 +++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/ipu-v3/ipu-common.c b/drivers/gpu/ipu-v3/ipu-common.c index 6386e2fe2ff7..ee2a025e54cf 100644 --- a/drivers/gpu/ipu-v3/ipu-common.c +++ b/drivers/gpu/ipu-v3/ipu-common.c @@ -113,13 +113,17 @@ enum ipu_color_space ipu_pixelformat_to_colorspace(u32 pixelformat) case V4L2_PIX_FMT_NV16: case V4L2_PIX_FMT_NV61: return IPUV3_COLORSPACE_YUV;
- case V4L2_PIX_FMT_XRGB32:
- case V4L2_PIX_FMT_XBGR32:
- case V4L2_PIX_FMT_RGB32:
- case V4L2_PIX_FMT_BGR32:
- case V4L2_PIX_FMT_RGB24:
- case V4L2_PIX_FMT_BGR24: case V4L2_PIX_FMT_RGB565:
- case V4L2_PIX_FMT_BGR24:
Nitpick: Should we add '/* fall through */' comments?
Feel free to add my Reviewed-by: Marco Felsch m.felsch@pengutronix.de
- case V4L2_PIX_FMT_RGB24:
- case V4L2_PIX_FMT_ABGR32:
- case V4L2_PIX_FMT_XBGR32:
- case V4L2_PIX_FMT_BGRA32:
- case V4L2_PIX_FMT_BGRX32:
- case V4L2_PIX_FMT_RGBA32:
- case V4L2_PIX_FMT_RGBX32:
- case V4L2_PIX_FMT_ARGB32:
- case V4L2_PIX_FMT_XRGB32: return IPUV3_COLORSPACE_RGB; default: return IPUV3_COLORSPACE_UNKNOWN;
diff --git a/drivers/gpu/ipu-v3/ipu-cpmem.c b/drivers/gpu/ipu-v3/ipu-cpmem.c index be1226ce28cd..a1c85d1521f5 100644 --- a/drivers/gpu/ipu-v3/ipu-cpmem.c +++ b/drivers/gpu/ipu-v3/ipu-cpmem.c @@ -182,9 +182,27 @@ static int v4l2_pix_fmt_to_drm_fourcc(u32 pixelformat) case V4L2_PIX_FMT_RGB32: /* R G B A <=> [32:0] A:B:G:R */ return DRM_FORMAT_XBGR8888;
- case V4L2_PIX_FMT_ABGR32:
/* B G R A <=> [32:0] A:R:G:B */
case V4L2_PIX_FMT_XBGR32: /* B G R X <=> [32:0] X:R:G:B */ return DRM_FORMAT_XRGB8888;return DRM_FORMAT_ARGB8888;
- case V4L2_PIX_FMT_BGRA32:
/* A B G R <=> [32:0] R:G:B:A */
return DRM_FORMAT_RGBA8888;
- case V4L2_PIX_FMT_BGRX32:
/* X B G R <=> [32:0] R:G:B:X */
return DRM_FORMAT_RGBX8888;
- case V4L2_PIX_FMT_RGBA32:
/* R G B A <=> [32:0] A:B:G:R */
return DRM_FORMAT_ABGR8888;
- case V4L2_PIX_FMT_RGBX32:
/* R G B X <=> [32:0] X:B:G:R */
return DRM_FORMAT_XBGR8888;
- case V4L2_PIX_FMT_ARGB32:
/* A R G B <=> [32:0] B:G:R:A */
case V4L2_PIX_FMT_XRGB32: /* X R G B <=> [32:0] B:G:R:X */ return DRM_FORMAT_BGRX8888;return DRM_FORMAT_BGRA8888;
@@ -823,8 +841,14 @@ int ipu_cpmem_set_image(struct ipuv3_channel *ch, struct ipu_image *image) break; case V4L2_PIX_FMT_RGB32: case V4L2_PIX_FMT_BGR32:
- case V4L2_PIX_FMT_XRGB32:
- case V4L2_PIX_FMT_ABGR32: case V4L2_PIX_FMT_XBGR32:
- case V4L2_PIX_FMT_BGRA32:
- case V4L2_PIX_FMT_BGRX32:
- case V4L2_PIX_FMT_RGBA32:
- case V4L2_PIX_FMT_RGBX32:
- case V4L2_PIX_FMT_ARGB32:
- case V4L2_PIX_FMT_XRGB32: offset = image->rect.left * 4 + image->rect.top * pix->bytesperline; break;
-- 2.20.1