From 4cd71c20f174bd96d4a126a9fffe7668e19966d4 Mon Sep 17 00:00:00 2001 From: "zhiwei.yuan" Date: Fri, 30 Aug 2019 16:24:59 +0800 Subject: [PATCH] vdin: HDMI source occurred tortured picture and had sound [1/1] PD#SWPL-13676 Problem: vdin status is confused when enter hdmi Solution: reset afifo every time enter the channel Verify: verified by t962x2_x301 Change-Id: I9ec78bebec4d2d5e312de82942c29a940fc322ea Signed-off-by: zhiwei.yuan --- drivers/amlogic/media/vin/tvin/vdin/vdin_ctl.c | 7 +++++++ drivers/amlogic/media/vin/tvin/vdin/vdin_regs.h | 1 + 2 files changed, 8 insertions(+) diff --git a/drivers/amlogic/media/vin/tvin/vdin/vdin_ctl.c b/drivers/amlogic/media/vin/tvin/vdin/vdin_ctl.c index 70bfb0ab4f6c..95fc8b68769e 100644 --- a/drivers/amlogic/media/vin/tvin/vdin/vdin_ctl.c +++ b/drivers/amlogic/media/vin/tvin/vdin/vdin_ctl.c @@ -938,6 +938,13 @@ void vdin_set_top(struct vdin_dev_s *devp, unsigned int offset, vdin_mux = VDIN_MUX_HDMI; wr_bits(offset, VDIN_ASFIFO_CTRL1, 0xe4, VDI4_ASFIFO_CTRL_BIT, VDI4_ASFIFO_CTRL_WID); + + /*reset top afifo for green screen when enter the channel*/ + if (is_meson_tl1_cpu()) { + wr_bits(offset, VPU_SW_RESET, 1, 26, 1); + wr_bits(offset, VPU_SW_RESET, 0, 26, 1); + } + break; case 0x80: /* dvin */ vdin_mux = VDIN_MUX_DVIN; diff --git a/drivers/amlogic/media/vin/tvin/vdin/vdin_regs.h b/drivers/amlogic/media/vin/tvin/vdin/vdin_regs.h index aaf417348077..441e822cbfe5 100644 --- a/drivers/amlogic/media/vin/tvin/vdin/vdin_regs.h +++ b/drivers/amlogic/media/vin/tvin/vdin/vdin_regs.h @@ -64,6 +64,7 @@ #define VPU_DI_DIWR_MMC_CTRL 0x270c #define VPU_TVD3D_MMC_CTRL 0x2710 #define VPU_TVDVBI_MMC_CTRL 0x2711 +#define VPU_SW_RESET 0x2720 /* vpp */ #define VPP_VDO_MEAS_CTRL 0x1da8