aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/media/v4l2-dv-timings.h
diff options
context:
space:
mode:
authorPrashant Laddha <prladdha@cisco.com>2015-09-22 11:27:28 -0300
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2015-11-17 15:05:14 -0200
commit8d7322f4f753644bd00d3a7a267c43f506a0b9c1 (patch)
tree727c1feb893e0ab3e9849ba730c0cf6b1066bc80 /include/media/v4l2-dv-timings.h
parent[media] v4l2-device: Don't unregister ACPI/Device Tree based devices (diff)
downloadwireguard-linux-8d7322f4f753644bd00d3a7a267c43f506a0b9c1.tar.xz
wireguard-linux-8d7322f4f753644bd00d3a7a267c43f506a0b9c1.zip
[media] v4l2-dv-timings: add condition checks for reduced fps
Added a helper function to check necessary conditions required for reduced fps. The reduced fps is supported for CVT and CEA861 timings. CVT supports reduced fps only if reduced blanking v2 (indicated by vsync = 8) is true. Whereas CEA861 supports reduced fps if V4L2_DV_FL_CAN_REDUCE_FPS flag is true. Signed-off-by: Prashant Laddha <prladdha@cisco.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'include/media/v4l2-dv-timings.h')
-rw-r--r--include/media/v4l2-dv-timings.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/include/media/v4l2-dv-timings.h b/include/media/v4l2-dv-timings.h
index a209526b6014..69829a5a1368 100644
--- a/include/media/v4l2-dv-timings.h
+++ b/include/media/v4l2-dv-timings.h
@@ -183,4 +183,25 @@ bool v4l2_detect_gtf(unsigned frame_height, unsigned hfreq, unsigned vsync,
*/
struct v4l2_fract v4l2_calc_aspect_ratio(u8 hor_landscape, u8 vert_portrait);
+/*
+ * reduce_fps - check if conditions for reduced fps are true.
+ * bt - v4l2 timing structure
+ * For different timings reduced fps is allowed if following conditions
+ * are met -
+ * For CVT timings: if reduced blanking v2 (vsync == 8) is true.
+ * For CEA861 timings: if V4L2_DV_FL_CAN_REDUCE_FPS flag is true.
+ */
+static inline bool can_reduce_fps(struct v4l2_bt_timings *bt)
+{
+ if ((bt->standards & V4L2_DV_BT_STD_CVT) && (bt->vsync == 8))
+ return true;
+
+ if ((bt->standards & V4L2_DV_BT_STD_CEA861) &&
+ (bt->flags & V4L2_DV_FL_CAN_REDUCE_FPS))
+ return true;
+
+ return false;
+}
+
+
#endif