[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: Prashant Laddha <prladdha@cisco.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
Prashant Laddha 2015-06-12 08:48:10 -03:00 коммит произвёл Mauro Carvalho Chehab
Родитель 4366dfef37
Коммит 227da85e77
1 изменённых файлов: 6 добавлений и 3 удалений

Просмотреть файл

@ -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,
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;