diff --git a/drivers/amlogic/media/deinterlace/deinterlace.c b/drivers/amlogic/media/deinterlace/deinterlace.c index 1401ba7bebe9..972a20b0f10f 100644 --- a/drivers/amlogic/media/deinterlace/deinterlace.c +++ b/drivers/amlogic/media/deinterlace/deinterlace.c @@ -7122,6 +7122,7 @@ static void di_reg_process_irq(void) DI_Wr(DI_CLKG_CTRL, 0xfef60001); /* nr/blend0/ei0/mtn0 clock gate */ } + di_hdr2_hist_init(); if (di_printk_flag & 2) di_printk_flag = 1; diff --git a/drivers/amlogic/media/deinterlace/deinterlace_hw.c b/drivers/amlogic/media/deinterlace/deinterlace_hw.c index b4a2e2fa9eb1..f8907af16076 100644 --- a/drivers/amlogic/media/deinterlace/deinterlace_hw.c +++ b/drivers/amlogic/media/deinterlace/deinterlace_hw.c @@ -3367,6 +3367,15 @@ void diwr_set_power_control(unsigned char enable) enable?VPU_MEM_POWER_ON:VPU_MEM_POWER_DOWN); } +void di_hdr2_hist_init(void) +{ + if (cpu_after_eq(MESON_CPU_MAJOR_ID_TM2)) { + RDMA_WR(DI_HDR2_HIST_CTRL, 0x5510); + RDMA_WR(DI_HDR2_HIST_H_START_END, 0x10000); + RDMA_WR(DI_HDR2_HIST_V_START_END, 0x0); + } +} + void di_top_gate_control(bool top_en, bool mc_en) { if (top_en) { diff --git a/drivers/amlogic/media/deinterlace/deinterlace_hw.h b/drivers/amlogic/media/deinterlace/deinterlace_hw.h index bf1fa6a2137e..21cbf8523434 100644 --- a/drivers/amlogic/media/deinterlace/deinterlace_hw.h +++ b/drivers/amlogic/media/deinterlace/deinterlace_hw.h @@ -184,6 +184,7 @@ void di_post_switch_buffer( ); void di_post_read_reverse_irq(bool reverse, unsigned char mc_pre_flag, bool mc_enable); +void di_hdr2_hist_init(void); void di_top_gate_control(bool top_en, bool mc_en); void di_pre_gate_control(bool enable, bool mc_enable); void di_post_gate_control(bool gate); diff --git a/drivers/amlogic/media/deinterlace/register.h b/drivers/amlogic/media/deinterlace/register.h index 5d8a36acb1de..ac9105a77e48 100644 --- a/drivers/amlogic/media/deinterlace/register.h +++ b/drivers/amlogic/media/deinterlace/register.h @@ -180,6 +180,13 @@ void DI_VSYNC_WR_MPEG_REG_BITS(unsigned int addr, #define MCINFWR_Y 0x37f6 #define MCINFWR_CTRL 0x37f7 #define MCINFWR_CAN_SIZE 0x37f8 + +/* from TM2 new added */ +/* DI HDR2 */ +#define DI_HDR2_HIST_CTRL 0x37ad +#define DI_HDR2_HIST_H_START_END 0x37ae +#define DI_HDR2_HIST_V_START_END 0x37af + /* DI SCALE */ #define DI_SCO_FIFO_CTRL 0x374e #define DI_SC_TOP_CTRL 0x374f