dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] gpu: ipu-v3: enable remaining 32-bit RGB V4L2 pixel formats
@ 2019-08-14 15:10 Philipp Zabel
  2019-08-14 15:10 ` [PATCH 2/2] gpu: ipu-v3: image-convert: enable V4L2_PIX_FMT_BGRX32 and _RGBX32 Philipp Zabel
  2019-08-15  6:36 ` [PATCH 1/2] gpu: ipu-v3: enable remaining 32-bit RGB V4L2 pixel formats Marco Felsch
  0 siblings, 2 replies; 4+ messages in thread
From: Philipp Zabel @ 2019-08-14 15:10 UTC (permalink / raw)
  To: dri-devel; +Cc: kernel, Steve Longerbeam

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:
+	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 */
+		return DRM_FORMAT_ARGB8888;
 	case V4L2_PIX_FMT_XBGR32:
 		/* B G R X <=> [32:0] X:R:G:B */
 		return DRM_FORMAT_XRGB8888;
+	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 */
+		return DRM_FORMAT_BGRA8888;
 	case V4L2_PIX_FMT_XRGB32:
 		/* X R G B <=> [32:0] B:G:R:X */
 		return DRM_FORMAT_BGRX8888;
@@ -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

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] gpu: ipu-v3: image-convert: enable V4L2_PIX_FMT_BGRX32 and _RGBX32
  2019-08-14 15:10 [PATCH 1/2] gpu: ipu-v3: enable remaining 32-bit RGB V4L2 pixel formats Philipp Zabel
@ 2019-08-14 15:10 ` Philipp Zabel
  2019-08-15  6:36 ` [PATCH 1/2] gpu: ipu-v3: enable remaining 32-bit RGB V4L2 pixel formats Marco Felsch
  1 sibling, 0 replies; 4+ messages in thread
From: Philipp Zabel @ 2019-08-14 15:10 UTC (permalink / raw)
  To: dri-devel; +Cc: kernel, Steve Longerbeam

Enable image converter support for V4L2_PIX_FMT_BGRX32 and
V4L2_PIX_FMT_RGBX32 pixel formats.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
 drivers/gpu/ipu-v3/ipu-image-convert.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/gpu/ipu-v3/ipu-image-convert.c b/drivers/gpu/ipu-v3/ipu-image-convert.c
index c48bf74f2106..eeca50d9a1ee 100644
--- a/drivers/gpu/ipu-v3/ipu-image-convert.c
+++ b/drivers/gpu/ipu-v3/ipu-image-convert.c
@@ -251,6 +251,12 @@ static const struct ipu_image_pixfmt image_convert_formats[] = {
 	}, {
 		.fourcc	= V4L2_PIX_FMT_XBGR32,
 		.bpp    = 32,
+	}, {
+		.fourcc	= V4L2_PIX_FMT_BGRX32,
+		.bpp    = 32,
+	}, {
+		.fourcc	= V4L2_PIX_FMT_RGBX32,
+		.bpp    = 32,
 	}, {
 		.fourcc	= V4L2_PIX_FMT_YUYV,
 		.bpp    = 16,
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] gpu: ipu-v3: enable remaining 32-bit RGB V4L2 pixel formats
  2019-08-14 15:10 [PATCH 1/2] gpu: ipu-v3: enable remaining 32-bit RGB V4L2 pixel formats Philipp Zabel
  2019-08-14 15:10 ` [PATCH 2/2] gpu: ipu-v3: image-convert: enable V4L2_PIX_FMT_BGRX32 and _RGBX32 Philipp Zabel
@ 2019-08-15  6:36 ` Marco Felsch
  2019-08-15  9:01   ` Philipp Zabel
  1 sibling, 1 reply; 4+ messages in thread
From: Marco Felsch @ 2019-08-15  6:36 UTC (permalink / raw)
  To: Philipp Zabel; +Cc: kernel, dri-devel, Steve Longerbeam

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 */
> +		return DRM_FORMAT_ARGB8888;
>  	case V4L2_PIX_FMT_XBGR32:
>  		/* B G R X <=> [32:0] X:R:G:B */
>  		return DRM_FORMAT_XRGB8888;
> +	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 */
> +		return DRM_FORMAT_BGRA8888;
>  	case V4L2_PIX_FMT_XRGB32:
>  		/* X R G B <=> [32:0] B:G:R:X */
>  		return DRM_FORMAT_BGRX8888;
> @@ -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
> 
> 
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] gpu: ipu-v3: enable remaining 32-bit RGB V4L2 pixel formats
  2019-08-15  6:36 ` [PATCH 1/2] gpu: ipu-v3: enable remaining 32-bit RGB V4L2 pixel formats Marco Felsch
@ 2019-08-15  9:01   ` Philipp Zabel
  0 siblings, 0 replies; 4+ messages in thread
From: Philipp Zabel @ 2019-08-15  9:01 UTC (permalink / raw)
  To: Marco Felsch; +Cc: kernel, dri-devel, Steve Longerbeam

Hi Marco,

On Thu, 2019-08-15 at 08:36 +0200, Marco Felsch wrote:
> 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? 

Not for this. -Wimplicit-fallthrough only requires annotation if there
are statements between two cases.

> Feel free to add my
> Reviewed-by: Marco Felsch <m.felsch@pengutronix.de>

Thanks!

regards
Philipp
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-08-15  9:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-14 15:10 [PATCH 1/2] gpu: ipu-v3: enable remaining 32-bit RGB V4L2 pixel formats Philipp Zabel
2019-08-14 15:10 ` [PATCH 2/2] gpu: ipu-v3: image-convert: enable V4L2_PIX_FMT_BGRX32 and _RGBX32 Philipp Zabel
2019-08-15  6:36 ` [PATCH 1/2] gpu: ipu-v3: enable remaining 32-bit RGB V4L2 pixel formats Marco Felsch
2019-08-15  9:01   ` Philipp Zabel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox