upstream: [media] v4l2: use new V4L2_DV_BT_BLANKING/FRAME defines
authorHans Verkuil <hans.verkuil@cisco.com>
Mon, 29 Jul 2013 11:41:00 +0000 (08:41 -0300)
committerChanho Park <chanho61.park@samsung.com>
Tue, 18 Nov 2014 02:51:37 +0000 (11:51 +0900)
Use the new blanking and frame size defines. This also fixed a bug in
these drivers: they assumed that the height for interlaced formats was
the field height, however height is the frame height. So the height
for a field is actually bt->height / 2.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/platform/davinci/vpif_capture.c
drivers/media/platform/davinci/vpif_display.c

index b11d7a7..e1b6a3b 100644 (file)
@@ -1799,19 +1799,15 @@ static int vpif_s_dv_timings(struct file *file, void *priv,
 
        /* Configure video port timings */
 
-       std_info->eav2sav = bt->hbackporch + bt->hfrontporch +
-               bt->hsync - 8;
+       std_info->eav2sav = V4L2_DV_BT_BLANKING_WIDTH(bt) - 8;
        std_info->sav2eav = bt->width;
 
        std_info->l1 = 1;
        std_info->l3 = bt->vsync + bt->vbackporch + 1;
 
+       std_info->vsize = V4L2_DV_BT_FRAME_HEIGHT(bt);
        if (bt->interlaced) {
                if (bt->il_vbackporch || bt->il_vfrontporch || bt->il_vsync) {
-                       std_info->vsize = bt->height * 2 +
-                               bt->vfrontporch + bt->vsync + bt->vbackporch +
-                               bt->il_vfrontporch + bt->il_vsync +
-                               bt->il_vbackporch;
                        std_info->l5 = std_info->vsize/2 -
                                (bt->vfrontporch - 1);
                        std_info->l7 = std_info->vsize/2 + 1;
@@ -1825,8 +1821,6 @@ static int vpif_s_dv_timings(struct file *file, void *priv,
                        return -EINVAL;
                }
        } else {
-               std_info->vsize = bt->height + bt->vfrontporch +
-                       bt->vsync + bt->vbackporch;
                std_info->l5 = std_info->vsize - (bt->vfrontporch - 1);
        }
        strncpy(std_info->name, "Custom timings BT656/1120", VPIF_MAX_NAME);
index c2ff067..a42e43c 100644 (file)
@@ -1436,19 +1436,15 @@ static int vpif_s_dv_timings(struct file *file, void *priv,
 
        /* Configure video port timings */
 
-       std_info->eav2sav = bt->hbackporch + bt->hfrontporch +
-               bt->hsync - 8;
+       std_info->eav2sav = V4L2_DV_BT_BLANKING_WIDTH(bt) - 8;
        std_info->sav2eav = bt->width;
 
        std_info->l1 = 1;
        std_info->l3 = bt->vsync + bt->vbackporch + 1;
 
+       std_info->vsize = V4L2_DV_BT_FRAME_HEIGHT(bt);
        if (bt->interlaced) {
                if (bt->il_vbackporch || bt->il_vfrontporch || bt->il_vsync) {
-                       std_info->vsize = bt->height * 2 +
-                               bt->vfrontporch + bt->vsync + bt->vbackporch +
-                               bt->il_vfrontporch + bt->il_vsync +
-                               bt->il_vbackporch;
                        std_info->l5 = std_info->vsize/2 -
                                (bt->vfrontporch - 1);
                        std_info->l7 = std_info->vsize/2 + 1;
@@ -1462,8 +1458,6 @@ static int vpif_s_dv_timings(struct file *file, void *priv,
                        return -EINVAL;
                }
        } else {
-               std_info->vsize = bt->height + bt->vfrontporch +
-                       bt->vsync + bt->vbackporch;
                std_info->l5 = std_info->vsize - (bt->vfrontporch - 1);
        }
        strncpy(std_info->name, "Custom timings BT656/1120",