deinterlace: s1a no pq server nr set [1/1]

PD#SWPL-141161

Problem:
s1a nr set no pq server

Solution:
move nr set from pq server to drivers

Verify:
s1a

Change-Id: Ie4dd9ade300cf93a6b9a419869aa8f51aecff290
Signed-off-by: yufei.huan <yufei.huan@amlogic.com>
This commit is contained in:
yufei.huan
2023-10-08 15:49:16 +08:00
committed by gerrit autosubmit
parent 63c5602de3
commit 699b99e682
3 changed files with 36 additions and 4 deletions
+3 -4
View File
@@ -4051,9 +4051,6 @@ void dim_pre_de_process(unsigned int channel)
dimh_txl_patch_prog(ppre->cur_prog_flag,
ppre->field_count_for_cont,
dimp_get(edi_mp_mcpre_en));
/****************value from pq****************/
if (IS_IC(dil_get_cpuver_flag(), S4) && cfgg(SUB_V))
DIM_DI_WR(DI_NR_CTRL2, 0x3f3f4040);
if (ppre->di_wr_buf->en_hf &&
ppre->di_wr_buf->hf_adr &&
di_hf_size_check(&ppre->di_nrwr_mif) &&
@@ -6767,8 +6764,10 @@ unsigned char dim_pre_de_buf_config(unsigned int channel)
return 24;
}
if (!ppre->is_disable_nr)
if (!ppre->is_disable_nr) {
di_s1a_load_pq();
di_load_pq_table();
}
if (is_meson_tl1_cpu() &&
ppre->comb_mode &&
+32
View File
@@ -4807,6 +4807,38 @@ static bool pq_save_db(unsigned int addr, unsigned int val, unsigned int mask)
return ret;
}
void di_s1a_load_pq(void)
{
if (!(DIM_IS_IC(S4) && cfgg(SUB_V)))
return;
if (dimp_get(edi_mp_pq_load_dbg) == 1)
return;
/*
* s1a remove pq server
* driver no need load pq table
* driver write dead Registers controlled by pq
* reg value from pq team
*/
DIM_RDMA_WR(DI_EI_CTRL0, 0xFF0100);
DIM_RDMA_WR(DI_EI_CTRL1, 0x5A0A0F2D);
DIM_RDMA_WR(DI_EI_CTRL2, 0x50A0A5A);
DIM_RDMA_WR(DI_NR_CTRL0, 0x0);
DIM_RDMA_WR(DI_NR_CTRL1, 0xBF3F1010);
DIM_RDMA_WR(DI_NR_CTRL2, 0x3F3F4040);
DIM_RDMA_WR(DI_EI_CTRL4, 0x151B3084);
DIM_RDMA_WR(DI_EI_CTRL5, 0x5273204F);
DIM_RDMA_WR(DI_EI_CTRL6, 0x50231C15);
DIM_RDMA_WR(DI_EI_CTRL7, 0x2FB56650);
DIM_RDMA_WR(DI_EI_CTRL8, 0x230019A4);
DIM_RDMA_WR(DI_EI_CTRL9, 0x7CB9BB33);
DIM_RDMA_WR(DI_EI_CTRL10, 0x842C6A9);
DIM_RDMA_WR(DI_EI_CTRL11, 0x486AB07A);
DIM_RDMA_WR(DI_EI_CTRL12, 0xAB0F250C);
DIM_RDMA_WR(DI_EI_CTRL13, 0xF021414);
}
void dimh_load_regs(struct di_pq_parm_s *di_pq_ptr)
{
unsigned int i = 0, j = 0, addr = 0, value = 0, mask = 0, len;
+1
View File
@@ -660,6 +660,7 @@ void dimh_calc_lmv_base_mcinfo(unsigned int vf_height,
void dimh_init_field_mode(unsigned short height);
void dim_film_mode_win_config(unsigned int width, unsigned int height);
void dimh_pulldown_vof_win_config(struct pulldown_detected_s *wins);
void di_s1a_load_pq(void);
void dimh_load_regs(struct di_pq_parm_s *di_pq_ptr);
void dim_pre_frame_reset_g12(unsigned char madi_en, unsigned char mcdi_en);
void dim_pre_frame_reset(void);