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 |
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 --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);
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(-)