From c476e728b2d445ed91f447f056c62816fefa094c Mon Sep 17 00:00:00 2001 From: Nian Jing Date: Wed, 27 Jun 2018 10:19:50 +0800 Subject: [PATCH] tvafe: add hardware snow for txhd PD#167605: add hardware snow for txhd Change-Id: Ibd16773ddb304c813ed62ee14e828b30806f158a Signed-off-by: Nian Jing --- drivers/amlogic/media/vin/tvin/tvafe/tvafe.h | 2 +- drivers/amlogic/media/vin/tvin/tvafe/tvafe_cvd.c | 15 ++++++++++++++- drivers/amlogic/media/vin/tvin/vdin/vdin_ctl.c | 10 ++++++++++ drivers/amlogic/media/vin/tvin/vdin/vdin_ctl.h | 1 + 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/drivers/amlogic/media/vin/tvin/tvafe/tvafe.h b/drivers/amlogic/media/vin/tvin/tvafe/tvafe.h index d630c2e..57f6afa 100644 --- a/drivers/amlogic/media/vin/tvin/tvafe/tvafe.h +++ b/drivers/amlogic/media/vin/tvin/tvafe/tvafe.h @@ -32,7 +32,7 @@ /* ************************************************* */ /* *** macro definitions ********************************************* */ /* *********************************************************** */ -#define TVAFE_VER "Ref.2017/011/17" +#define TVAFE_VER "Ref.2018/06/27" /* used to set the flag of tvafe_dev_s */ #define TVAFE_FLAG_DEV_OPENED 0x00000010 diff --git a/drivers/amlogic/media/vin/tvin/tvafe/tvafe_cvd.c b/drivers/amlogic/media/vin/tvin/tvafe/tvafe_cvd.c index 2421a54..b87e45f 100644 --- a/drivers/amlogic/media/vin/tvin/tvafe/tvafe_cvd.c +++ b/drivers/amlogic/media/vin/tvin/tvafe/tvafe_cvd.c @@ -32,6 +32,7 @@ #include "tvafe_debug.h" #include "tvafe_general.h" #include "../vdin/vdin_regs.h" +#include "../vdin/vdin_ctl.h" /***************************Local defines**********************************/ #define TVAFE_CVD2_SHIFT_CNT 6 @@ -415,6 +416,12 @@ static void tvafe_cvd2_write_mode_reg(struct tvafe_cvd2_s *cvd2, TVIN_SIG_FMT_CVBS_NTSC_M][i])); } + /*setting for txhd snow*/ + if (tvafe_cpu_type() == CPU_TYPE_TXHD) { + W_APB_BIT(CVD2_OUTPUT_CONTROL, 3, 5, 2); + W_APB_REG(ACD_REG_6C, 0x80500000); + } + /* load CVD2 reg 0x70~ff (char) */ for (i = 0; i < CVD_PART2_REG_NUM; i++) { @@ -2584,7 +2591,8 @@ void tvafe_cvd2_set_reg8a(unsigned int v) } void tvafe_snow_config(unsigned int onoff) { - if (tvafe_snow_function_flag == 0) + if (tvafe_snow_function_flag == 0 || + tvafe_cpu_type() == CPU_TYPE_TXHD) return; if (onoff) W_APB_BIT(CVD2_OUTPUT_CONTROL, 3, BLUE_MODE_BIT, BLUE_MODE_WID); @@ -2594,6 +2602,11 @@ void tvafe_snow_config(unsigned int onoff) void tvafe_snow_config_clamp(unsigned int onoff) { + if (tvafe_cpu_type() == CPU_TYPE_TXHD) { + if (onoff) + vdin_adjust_tvafesnow_brightness(); + return; + } if (tvafe_snow_function_flag == 0) return; if (onoff) diff --git a/drivers/amlogic/media/vin/tvin/vdin/vdin_ctl.c b/drivers/amlogic/media/vin/tvin/vdin/vdin_ctl.c index 8164258..86466e2 100644 --- a/drivers/amlogic/media/vin/tvin/vdin/vdin_ctl.c +++ b/drivers/amlogic/media/vin/tvin/vdin/vdin_ctl.c @@ -909,6 +909,16 @@ void vdin_set_cutwin(struct vdin_dev_s *devp) } +/*adjust the brightness for txhd hardware snow*/ +void vdin_adjust_tvafesnow_brightness(void) +{ + wr(0, VDIN_MATRIX_CTRL, 0x7); + wr(0, VDIN_MATRIX_OFFSET0_1, 0x200); + wr(0, VDIN_MATRIX_OFFSET2, 0x200); + wr(0, VDIN_MATRIX_COEF00_01, 0x6000000); +} +EXPORT_SYMBOL(vdin_adjust_tvafesnow_brightness); + void vdin_set_config(struct vdin_dev_s *devp) { if (is_meson_gxbb_cpu() || is_meson_gxm_cpu() || is_meson_gxl_cpu()) diff --git a/drivers/amlogic/media/vin/tvin/vdin/vdin_ctl.h b/drivers/amlogic/media/vin/tvin/vdin/vdin_ctl.h index e76ab8c..4d127ae 100644 --- a/drivers/amlogic/media/vin/tvin/vdin/vdin_ctl.h +++ b/drivers/amlogic/media/vin/tvin/vdin/vdin_ctl.h @@ -161,6 +161,7 @@ extern void vdin_set_cm2(unsigned int offset, unsigned int w, extern void vdin_bypass_isp(unsigned int offset); extern void vdin_set_mpegin(struct vdin_dev_s *devp); extern void vdin_force_gofiled(struct vdin_dev_s *devp); +extern void vdin_adjust_tvafesnow_brightness(void); extern void vdin_set_config(struct vdin_dev_s *devp); extern void vdin_set_wr_mif(struct vdin_dev_s *devp); extern void vdin_dolby_config(struct vdin_dev_s *devp); -- 2.7.4