Re: [PATCH] media: vivid: fix device init when no_error_inj=1 and fb disabled

From: Hans Verkuil
Date: Thu Jul 25 2019 - 14:04:07 EST


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@xxxxxxxxxxxxxxx
> Signed-off-by: Guillaume Tucker <guillaume.tucker@xxxxxxxxxxxxx>
> ---
> 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);
>