summaryrefslogtreecommitdiff
authorDezhi Kong <dezhi.kong@amlogic.com>2018-07-31 08:45:46 (GMT)
committer Jianxin Pan <jianxin.pan@amlogic.com>2018-08-01 05:34:32 (GMT)
commit30329dbcbbd6f372610facfe826d2c1c2846ed66 (patch)
tree0b1fcf27d18820e5f340b84fadd70a18ab3a1c1c
parent6af926107cff1ae7b42cb814c457fb7649e72bb8 (diff)
downloadcommon-30329dbcbbd6f372610facfe826d2c1c2846ed66.zip
common-30329dbcbbd6f372610facfe826d2c1c2846ed66.tar.gz
common-30329dbcbbd6f372610facfe826d2c1c2846ed66.tar.bz2
di: fix pre mif reset issue for g12a
PD#169426: di: fix pre mif reset issue for g12a Change-Id: I851ef6ff9a1ac844afd32bc40e73c4a189a47b6f Signed-off-by: Dezhi Kong <dezhi.kong@amlogic.com>
Diffstat
-rw-r--r--drivers/amlogic/media/deinterlace/deinterlace.c4
-rw-r--r--drivers/amlogic/media/deinterlace/deinterlace_hw.c3
-rw-r--r--drivers/amlogic/media/deinterlace/deinterlace_hw.h2
3 files changed, 5 insertions, 4 deletions
diff --git a/drivers/amlogic/media/deinterlace/deinterlace.c b/drivers/amlogic/media/deinterlace/deinterlace.c
index c501f90..3f0afa5 100644
--- a/drivers/amlogic/media/deinterlace/deinterlace.c
+++ b/drivers/amlogic/media/deinterlace/deinterlace.c
@@ -124,7 +124,7 @@ static di_dev_t *de_devp;
static dev_t di_devno;
static struct class *di_clsp;
-static const char version_s[] = "2018-07-17a";
+static const char version_s[] = "2018-07-31a";
static int bypass_state = 1;
static int bypass_all;
@@ -3024,7 +3024,7 @@ static void pre_de_process(void)
#endif
enable_di_pre_mif(true, mcpre_en);
if (cpu_after_eq(MESON_CPU_MAJOR_ID_G12A)) {
- pre_frame_reset_g12a(di_pre_stru.madi_enable,
+ pre_frame_reset_g12(di_pre_stru.madi_enable,
di_pre_stru.mcdi_enable);
} else {
pre_frame_reset();
diff --git a/drivers/amlogic/media/deinterlace/deinterlace_hw.c b/drivers/amlogic/media/deinterlace/deinterlace_hw.c
index ab7d2f5..09033da 100644
--- a/drivers/amlogic/media/deinterlace/deinterlace_hw.c
+++ b/drivers/amlogic/media/deinterlace/deinterlace_hw.c
@@ -2622,7 +2622,7 @@ static void reset_pre_simple_rd_mif_g12(unsigned char madi_en,
* frame reset for pre which have nothing with encoder
* go field
*/
-void pre_frame_reset_g12a(unsigned char madi_en,
+void pre_frame_reset_g12(unsigned char madi_en,
unsigned char mcdi_en)
{
unsigned int reg_val = 0;
@@ -2630,6 +2630,7 @@ void pre_frame_reset_g12a(unsigned char madi_en,
if (cpu_after_eq(MESON_CPU_MAJOR_ID_G12B))
reset_pre_simple_rd_mif_g12(madi_en, mcdi_en);
else {
+ reg_val = RDMA_RD(DI_PRE_CTRL);
if (madi_en)
reg_val |= (1<<25);
if (mcdi_en)
diff --git a/drivers/amlogic/media/deinterlace/deinterlace_hw.h b/drivers/amlogic/media/deinterlace/deinterlace_hw.h
index 145d44f..64301c3 100644
--- a/drivers/amlogic/media/deinterlace/deinterlace_hw.h
+++ b/drivers/amlogic/media/deinterlace/deinterlace_hw.h
@@ -169,7 +169,7 @@ void init_field_mode(unsigned short height);
void film_mode_win_config(unsigned int width, unsigned int height);
void pulldown_vof_win_config(struct pulldown_detected_s *wins);
void di_load_regs(struct di_pq_parm_s *di_pq_ptr);
-void pre_frame_reset_g12a(unsigned char madi_en, unsigned char mcdi_en);
+void pre_frame_reset_g12(unsigned char madi_en, unsigned char mcdi_en);
void pre_frame_reset(void);
void di_interrupt_ctrl(unsigned char ma_en,
unsigned char det3d_en, unsigned char nrds_en,