Commit 227da85e authored by Prashant Laddha's avatar Prashant Laddha Committed by Mauro Carvalho Chehab

[media] v4l2-dv-timings: print refresh rate with better precision

In many cases, refresh rate is not exact integer. In such cases,
fraction was lost and it used to print, say, 59 in case of 59.94.
Now, capturing the fraction up to 2 decimal places.
Signed-off-by: default avatarPrashant Laddha <prladdha@cisco.com>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 4366dfef
...@@ -256,6 +256,7 @@ void v4l2_print_dv_timings(const char *dev_prefix, const char *prefix, ...@@ -256,6 +256,7 @@ void v4l2_print_dv_timings(const char *dev_prefix, const char *prefix,
{ {
const struct v4l2_bt_timings *bt = &t->bt; const struct v4l2_bt_timings *bt = &t->bt;
u32 htot, vtot; u32 htot, vtot;
u32 fps;
if (t->type != V4L2_DV_BT_656_1120) if (t->type != V4L2_DV_BT_656_1120)
return; return;
...@@ -265,13 +266,15 @@ void v4l2_print_dv_timings(const char *dev_prefix, const char *prefix, ...@@ -265,13 +266,15 @@ void v4l2_print_dv_timings(const char *dev_prefix, const char *prefix,
if (bt->interlaced) if (bt->interlaced)
vtot /= 2; vtot /= 2;
fps = (htot * vtot) > 0 ? div_u64((100 * (u64)bt->pixelclock),
(htot * vtot)) : 0;
if (prefix == NULL) if (prefix == NULL)
prefix = ""; prefix = "";
pr_info("%s: %s%ux%u%s%u (%ux%u)\n", dev_prefix, prefix, pr_info("%s: %s%ux%u%s%u.%u (%ux%u)\n", dev_prefix, prefix,
bt->width, bt->height, bt->interlaced ? "i" : "p", bt->width, bt->height, bt->interlaced ? "i" : "p",
(htot * vtot) > 0 ? ((u32)bt->pixelclock / (htot * vtot)) : 0, fps / 100, fps % 100, htot, vtot);
htot, vtot);
if (!detailed) if (!detailed)
return; return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment