diff --git a/drivers/amlogic/media/deinterlace/deinterlace.c b/drivers/amlogic/media/deinterlace/deinterlace.c index 15cfb1660ad7..3b844ad3be61 100644 --- a/drivers/amlogic/media/deinterlace/deinterlace.c +++ b/drivers/amlogic/media/deinterlace/deinterlace.c @@ -3448,6 +3448,9 @@ static void pre_de_process(void) } di_pre_stru.field_count_for_cont++; + if (di_pre_stru.field_count_for_cont >= 5) + DI_Wr_reg_bits(DI_MTN_CTRL, 0, 30, 1); + di_txl_patch_prog(di_pre_stru.cur_prog_flag, di_pre_stru.field_count_for_cont, mcpre_en); diff --git a/drivers/amlogic/media/deinterlace/deinterlace_hw.c b/drivers/amlogic/media/deinterlace/deinterlace_hw.c index a94691206911..172de4f2cab0 100644 --- a/drivers/amlogic/media/deinterlace/deinterlace_hw.c +++ b/drivers/amlogic/media/deinterlace/deinterlace_hw.c @@ -141,6 +141,8 @@ static void ma_di_init(void) /* mtn setting */ if (cpu_after_eq(MESON_CPU_MAJOR_ID_G12B)) { DI_Wr_reg_bits(DI_MTN_CTRL, 1, 0, 1); + DI_Wr_reg_bits(DI_MTN_CTRL, 1, 30, 1); + DI_Wr_reg_bits(DI_MTN_CTRL, 0xf, 24, 4); DI_Wr(DI_MTN_1_CTRL1, 0x202015); } else DI_Wr(DI_MTN_1_CTRL1, 0xa0202015); @@ -756,9 +758,10 @@ void enable_di_pre_aml( /* * enable&disable contwr txt */ - if (cpu_after_eq(MESON_CPU_MAJOR_ID_G12B)) - RDMA_WR_BITS(DI_MTN_CTRL, madi_en?5:0, 29, 3); - else + if (cpu_after_eq(MESON_CPU_MAJOR_ID_G12B)) { + RDMA_WR_BITS(DI_MTN_CTRL, madi_en, 29, 1); + RDMA_WR_BITS(DI_MTN_CTRL, madi_en, 31, 1); + } else RDMA_WR_BITS(DI_MTN_1_CTRL1, madi_en?5:0, 29, 3); if (cpu_after_eq(MESON_CPU_MAJOR_ID_G12A)) {