[media] v4l2-dv-timings: add new arg to v4l2_match_dv_timings
[deliverable/linux.git] / drivers / media / v4l2-core / v4l2-dv-timings.c
index 9926d521ea888973ba1dc57324c24ee2e9e50eed..ec258b73001a26a96dcdb56d8c76e64b5762f1d9 100644 (file)
@@ -209,7 +209,7 @@ bool v4l2_find_dv_timings_cap(struct v4l2_dv_timings *t,
                if (v4l2_valid_dv_timings(v4l2_dv_timings_presets + i, cap,
                                          fnc, fnc_handle) &&
                    v4l2_match_dv_timings(t, v4l2_dv_timings_presets + i,
-                                         pclock_delta)) {
+                                         pclock_delta, false)) {
                        u32 flags = t->bt.flags & V4L2_DV_FL_REDUCED_FPS;
 
                        *t = v4l2_dv_timings_presets[i];
@@ -228,12 +228,14 @@ EXPORT_SYMBOL_GPL(v4l2_find_dv_timings_cap);
  * @t1 - compare this v4l2_dv_timings struct...
  * @t2 - with this struct.
  * @pclock_delta - the allowed pixelclock deviation.
+ * @match_reduced_fps - if true, then fail if V4L2_DV_FL_REDUCED_FPS does not
+ * match.
  *
  * Compare t1 with t2 with a given margin of error for the pixelclock.
  */
 bool v4l2_match_dv_timings(const struct v4l2_dv_timings *t1,
                           const struct v4l2_dv_timings *t2,
-                          unsigned pclock_delta)
+                          unsigned pclock_delta, bool match_reduced_fps)
 {
        if (t1->type != t2->type || t1->type != V4L2_DV_BT_656_1120)
                return false;
@@ -249,6 +251,9 @@ bool v4l2_match_dv_timings(const struct v4l2_dv_timings *t1,
            t1->bt.vfrontporch == t2->bt.vfrontporch &&
            t1->bt.vsync == t2->bt.vsync &&
            t1->bt.vbackporch == t2->bt.vbackporch &&
+           (!match_reduced_fps ||
+            (t1->bt.flags & V4L2_DV_FL_REDUCED_FPS) ==
+               (t2->bt.flags & V4L2_DV_FL_REDUCED_FPS)) &&
            (!t1->bt.interlaced ||
                (t1->bt.il_vfrontporch == t2->bt.il_vfrontporch &&
                 t1->bt.il_vsync == t2->bt.il_vsync &&
This page took 0.043235 seconds and 5 git commands to generate.