vivid: allow s_dv_timings if it is the same as the current
PATCH 1/1 vivid: allow s_dv_timings if it is the same as the current
Allow setting the same timings as the current timings (i.e., do nothing in that case). The code was actually there, but the vb2_is_busy() call was done before the timings check instead of afterwards.
Found by v4l2-compliance.
Signed-off-by Hans Verkuil <[email protected]>
drivers/media/platform/vivid/vivid-vid-cap.c +2 -2
@@ -1585,13 +1585,13 @@ int vivid_vid_cap_s_dv_timings(struct file *file, void *_fh,if (!vivid_is_hdmi_cap (dev))return -ENODATA ; -if (vb2_is_busy (&dev->vb_vid_cap_q)) -return -EBUSY ;if (!v4l2_find_dv_timings_cap (timings, &vivid_dv_timings_cap,0 ,NULL ,NULL ))return -EINVAL ;if (v4l2_match_dv_timings (timings, &dev->dv_timings_cap,0 ))return 0 ; +if (vb2_is_busy (&dev->vb_vid_cap_q)) +return -EBUSY ; dev->dv_timings_cap = *timings;vivid_update_format_cap (dev, false);return 0 ;
drivers/media/platform/vivid/vivid-vid-out.c +2 -2
@@ -1125,13 +1125,13 @@ int vivid_vid_out_s_dv_timings(struct file *file, void *_fh,if (!vivid_is_hdmi_out (dev))return -ENODATA ; -if (vb2_is_busy (&dev->vb_vid_out_q)) -return -EBUSY ;if (!v4l2_find_dv_timings_cap (timings, &vivid_dv_timings_cap,0 ,NULL ,NULL ))return -EINVAL ;if (v4l2_match_dv_timings (timings, &dev->dv_timings_out,0 ))return 0 ; +if (vb2_is_busy (&dev->vb_vid_out_q)) +return -EBUSY ; dev->dv_timings_out = *timings;vivid_update_format_out (dev);return 0 ;