diff mbox series

media: vivid: fix device init when no_error_inj=1 and fb disabled

Message ID 20190724151922.11124-1-guillaume.tucker@collabora.com (mailing list archive)
State New, archived
Headers show
Series media: vivid: fix device init when no_error_inj=1 and fb disabled | expand

Commit Message

Guillaume Tucker July 24, 2019, 3:19 p.m. UTC
Add an extra condition to add the video output control class when the
device has some hdmi outputs defined.  This is required to then always
be able to add the display present control, which is enabled when
there are some hdmi outputs.

This fixes the corner case where no_error_inj is enabled and the
device has no frame buffer but some hdmi outputs, as otherwise the
video output control class would be added anyway.  Without this fix,
the sanity checks fail in v4l2_ctrl_new() as name is NULL.

Fixes: c533435ffb91 ("media: vivid: add display present control")
Cc: stable@vger.kernel.org
Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
---
 drivers/media/platform/vivid/vivid-ctrls.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Hans Verkuil July 25, 2019, 8:01 a.m. UTC | #1
On 7/24/19 5:19 PM, Guillaume Tucker wrote:
> Add an extra condition to add the video output control class when the
> device has some hdmi outputs defined.  This is required to then always
> be able to add the display present control, which is enabled when
> there are some hdmi outputs.
> 
> This fixes the corner case where no_error_inj is enabled and the
> device has no frame buffer but some hdmi outputs, as otherwise the
> video output control class would be added anyway.  Without this fix,
> the sanity checks fail in v4l2_ctrl_new() as name is NULL.

Good catch.

Note that you can just drop the no_error_inj module option: v4l2-compliance
will detect the vivid driver and skip the error controls while testing.

I stopped using no_error_inj since I made that v4l2-compliance change.

Regards,

	Hans

> 
> Fixes: c533435ffb91 ("media: vivid: add display present control")
> Cc: stable@vger.kernel.org
> Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
> ---
>  drivers/media/platform/vivid/vivid-ctrls.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/media/platform/vivid/vivid-ctrls.c b/drivers/media/platform/vivid/vivid-ctrls.c
> index 3e916c8befb7..7a52f585cab7 100644
> --- a/drivers/media/platform/vivid/vivid-ctrls.c
> +++ b/drivers/media/platform/vivid/vivid-ctrls.c
> @@ -1473,7 +1473,7 @@ int vivid_create_controls(struct vivid_dev *dev, bool show_ccs_cap,
>  	v4l2_ctrl_handler_init(hdl_vid_cap, 55);
>  	v4l2_ctrl_new_custom(hdl_vid_cap, &vivid_ctrl_class, NULL);
>  	v4l2_ctrl_handler_init(hdl_vid_out, 26);
> -	if (!no_error_inj || dev->has_fb)
> +	if (!no_error_inj || dev->has_fb || dev->num_hdmi_outputs)
>  		v4l2_ctrl_new_custom(hdl_vid_out, &vivid_ctrl_class, NULL);
>  	v4l2_ctrl_handler_init(hdl_vbi_cap, 21);
>  	v4l2_ctrl_new_custom(hdl_vbi_cap, &vivid_ctrl_class, NULL);
>
diff mbox series

Patch

diff --git a/drivers/media/platform/vivid/vivid-ctrls.c b/drivers/media/platform/vivid/vivid-ctrls.c
index 3e916c8befb7..7a52f585cab7 100644
--- a/drivers/media/platform/vivid/vivid-ctrls.c
+++ b/drivers/media/platform/vivid/vivid-ctrls.c
@@ -1473,7 +1473,7 @@  int vivid_create_controls(struct vivid_dev *dev, bool show_ccs_cap,
 	v4l2_ctrl_handler_init(hdl_vid_cap, 55);
 	v4l2_ctrl_new_custom(hdl_vid_cap, &vivid_ctrl_class, NULL);
 	v4l2_ctrl_handler_init(hdl_vid_out, 26);
-	if (!no_error_inj || dev->has_fb)
+	if (!no_error_inj || dev->has_fb || dev->num_hdmi_outputs)
 		v4l2_ctrl_new_custom(hdl_vid_out, &vivid_ctrl_class, NULL);
 	v4l2_ctrl_handler_init(hdl_vbi_cap, 21);
 	v4l2_ctrl_new_custom(hdl_vbi_cap, &vivid_ctrl_class, NULL);