di: fix pre mif reset issue for g12a
authorDezhi Kong <dezhi.kong@amlogic.com>
Tue, 31 Jul 2018 08:45:46 +0000 (16:45 +0800)
committerJianxin Pan <jianxin.pan@amlogic.com>
Wed, 1 Aug 2018 05:34:32 +0000 (22:34 -0700)
PD#169426: di: fix pre mif reset issue for g12a

Change-Id: I851ef6ff9a1ac844afd32bc40e73c4a189a47b6f
Signed-off-by: Dezhi Kong <dezhi.kong@amlogic.com>
drivers/amlogic/media/deinterlace/deinterlace.c
drivers/amlogic/media/deinterlace/deinterlace_hw.c
drivers/amlogic/media/deinterlace/deinterlace_hw.h

index c501f90c0d0880fa83913e99138251ecd857fef2..3f0afa5eb87ee21a0817f7700c95d4aeeac8c499 100644 (file)
@@ -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();
index ab7d2f50f8f8b40cfb41b74c2e6e726980e96f55..09033da2697a20c68bec9c4ea4bab06a05f549e3 100644 (file)
@@ -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)
index 145d44f337c4c213ff1bed5fea99acd67883a056..64301c39eda1a35f81f4a74eb2fc48a594685173 100644 (file)
@@ -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,