amlvideo2: add port_type for TL1 [1/1]
authorGuosong Zhou <guosong.zhou@amlogic.com>
Fri, 18 Jan 2019 13:30:02 +0000 (08:30 -0500)
committerGuosong Zhou <guosong.zhou@amlogic.com>
Tue, 5 Mar 2019 05:42:28 +0000 (00:42 -0500)
PD#SWPL-4080

Problem:
tl1 video only port_type changed

Solution:
add port_type for tl1

Verify:
verify by tl1

Change-Id: I73e656703509a507d24f5febe26ab425cf69b61b
Signed-off-by: Guosong Zhou <guosong.zhou@amlogic.com>
drivers/amlogic/media/video_processor/video_dev/amlvideo2.c

index e6aa7fb..9da298e 100644 (file)
@@ -962,7 +962,8 @@ struct amlvideo2_node *node)
        }
 
        if ((node->crop_info.capture_crop_enable == 0) &&
-               (node->porttype != TVIN_PORT_VIU1_VIDEO)) {
+               ((node->porttype != TVIN_PORT_VIU1_VIDEO) &&
+               (node->porttype != TVIN_PORT_VIU1_WB0_VD1))) {
                output_axis_adjust(
                        src_width, src_height,
                        &dst_width, &dst_height,
@@ -1324,7 +1325,8 @@ struct amlvideo2_node *node)
        if (src_width < src_height)
                cur_angle = (cur_angle + 90) % 360;
        if ((node->crop_info.capture_crop_enable == 0) &&
-               (node->porttype != TVIN_PORT_VIU1_VIDEO)) {
+               ((node->porttype != TVIN_PORT_VIU1_VIDEO) &&
+               (node->porttype != TVIN_PORT_VIU1_WB0_VD1))) {
                output_axis_adjust(
                        src_width, src_height,
                        &dst_width, &dst_height,
@@ -1701,7 +1703,8 @@ struct amlvideo2_node *node)
        }
 
        if ((node->crop_info.capture_crop_enable == 0) &&
-               (node->porttype != TVIN_PORT_VIU1_VIDEO)) {
+               ((node->porttype != TVIN_PORT_VIU1_VIDEO) &&
+               (node->porttype != TVIN_PORT_VIU1_WB0_VD1))) {
                output_axis_adjust(
                        src_width, src_height,
                        &dst_width, &dst_height,
@@ -2103,7 +2106,8 @@ struct amlvideo2_node *node)
        }
 
        if ((node->crop_info.capture_crop_enable == 0) &&
-               (node->porttype != TVIN_PORT_VIU1_VIDEO)) {
+               ((node->porttype != TVIN_PORT_VIU1_VIDEO) &&
+               (node->porttype != TVIN_PORT_VIU1_WB0_VD1))) {
                output_axis_adjust(
                        src_width, src_height,
                        &dst_width, &dst_height,
@@ -2503,7 +2507,8 @@ struct amlvideo2_node *node)
        }
 
        if ((node->crop_info.capture_crop_enable == 0) &&
-               (node->porttype != TVIN_PORT_VIU1_VIDEO)) {
+               ((node->porttype != TVIN_PORT_VIU1_VIDEO) &&
+               (node->porttype != TVIN_PORT_VIU1_WB0_VD1))) {
                output_axis_adjust(
                        src_width, src_height,
                        &dst_width, &dst_height,
@@ -3111,7 +3116,8 @@ int amlvideo2_ge2d_pre_process(struct vframe_s *vf,
        }
 
        if ((node->crop_info.capture_crop_enable == 0) &&
-               (node->porttype != TVIN_PORT_VIU1_VIDEO)) {
+               ((node->porttype != TVIN_PORT_VIU1_VIDEO) &&
+               (node->porttype != TVIN_PORT_VIU1_WB0_VD1))) {
                output_axis_adjust(
                        src_width, src_height,
                        &dst_width, &dst_height,
@@ -4788,10 +4794,11 @@ static int amlvideo2_start_tvin_service(struct amlvideo2_node *node)
        para.dest_vactive = dst_h;
        if (para.scan_mode == TVIN_SCAN_MODE_INTERLACED)
                para.dest_vactive = para.dest_vactive / 2;
-       if (para.port == TVIN_PORT_VIU1_VIDEO) {
-               para.dest_hactive = 0;
-               para.dest_vactive = 0;
-       }
+
+       if ((para.port == TVIN_PORT_VIU1_VIDEO) ||
+               (para.port == TVIN_PORT_VIU1_WB0_VD1))
+               para.cfmt = 1;
+
        if (amlvideo2_dbg_en) {
                pr_info("node->r_type=%d, node->p_type=%d\n",
                        node->r_type, node->p_type);
@@ -5057,14 +5064,13 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
        para.reserved |= PARAM_STATE_SCREENCAP;
        if (para.scan_mode == TVIN_SCAN_MODE_INTERLACED)
                para.dest_vactive = para.dest_vactive / 2;
-       if (para.port == TVIN_PORT_VIU1_VIDEO) {
+       if ((para.port == TVIN_PORT_VIU1_VIDEO) ||
+               (para.port == TVIN_PORT_VIU1_WB0_VD1)) {
                if (node->ge2d_multi_process_flag) {
                        para.dest_hactive = 384;
                        para.dest_vactive = 216;
-               } else {
-                       para.dest_hactive = 0;
-                       para.dest_vactive = 0;
-               }
+               } else
+                       para.cfmt = 1;
        }
        if (amlvideo2_dbg_en) {
                pr_info("para.h_active: %d, para.v_active: %d,",