[PATCH] v4l: vsp1: Disable HSV formats on Gen3 hardware

2017-02-28 Thread Laurent Pinchart
While all VSP instances can process HSV internally, on Gen3 hardware
reading or writing HSV24 or HSV32 from/to memory causes the device to
hang. Disable those pixel formats on Gen3 hardware.

Signed-off-by: Laurent Pinchart 
---
 drivers/media/platform/vsp1/vsp1_pipe.c | 12 +---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/media/platform/vsp1/vsp1_pipe.c 
b/drivers/media/platform/vsp1/vsp1_pipe.c
index 3f1acf68dc6e..35364f594e19 100644
--- a/drivers/media/platform/vsp1/vsp1_pipe.c
+++ b/drivers/media/platform/vsp1/vsp1_pipe.c
@@ -157,9 +157,15 @@ const struct vsp1_format_info *vsp1_get_format_info(struct 
vsp1_device *vsp1,
 {
unsigned int i;
 
-   /* Special case, the VYUY format is supported on Gen2 only. */
-   if (vsp1->info->gen != 2 && fourcc == V4L2_PIX_FMT_VYUY)
-   return NULL;
+   /* Special case, the VYUY and HSV formats are supported on Gen2 only. */
+   if (vsp1->info->gen != 2) {
+   switch (fourcc) {
+   case V4L2_PIX_FMT_VYUY:
+   case V4L2_PIX_FMT_HSV24:
+   case V4L2_PIX_FMT_HSV32:
+   return NULL;
+   }
+   }
 
for (i = 0; i < ARRAY_SIZE(vsp1_video_formats); ++i) {
const struct vsp1_format_info *info = &vsp1_video_formats[i];
-- 
Regards,

Laurent Pinchart



Re: [PATCH] v4l: vsp1: Disable HSV formats on Gen3 hardware

2017-03-02 Thread Kieran Bingham
Hi Laurent,

LGTM! :-)

On 28/02/17 23:08, Laurent Pinchart wrote:
> While all VSP instances can process HSV internally, on Gen3 hardware
> reading or writing HSV24 or HSV32 from/to memory causes the device to
> hang. Disable those pixel formats on Gen3 hardware.
> 
> Signed-off-by: Laurent Pinchart 

Reviewed-by: Kieran Bingham 

> ---
>  drivers/media/platform/vsp1/vsp1_pipe.c | 12 +---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/media/platform/vsp1/vsp1_pipe.c 
> b/drivers/media/platform/vsp1/vsp1_pipe.c
> index 3f1acf68dc6e..35364f594e19 100644
> --- a/drivers/media/platform/vsp1/vsp1_pipe.c
> +++ b/drivers/media/platform/vsp1/vsp1_pipe.c
> @@ -157,9 +157,15 @@ const struct vsp1_format_info 
> *vsp1_get_format_info(struct vsp1_device *vsp1,
>  {
>   unsigned int i;
>  
> - /* Special case, the VYUY format is supported on Gen2 only. */
> - if (vsp1->info->gen != 2 && fourcc == V4L2_PIX_FMT_VYUY)
> - return NULL;
> + /* Special case, the VYUY and HSV formats are supported on Gen2 only. */
> + if (vsp1->info->gen != 2) {
> + switch (fourcc) {
> + case V4L2_PIX_FMT_VYUY:
> + case V4L2_PIX_FMT_HSV24:
> + case V4L2_PIX_FMT_HSV32:
> + return NULL;
> + }
> + }
>  
>   for (i = 0; i < ARRAY_SIZE(vsp1_video_formats); ++i) {
>   const struct vsp1_format_info *info = &vsp1_video_formats[i];
>