tvafe: add hardware snow for txhd

PD#167605: add hardware snow for txhd

Change-Id: Ibd16773ddb304c813ed62ee14e828b30806f158a
Signed-off-by: Nian Jing <nian.jing@amlogic.com>
This commit is contained in:
Nian Jing
2018-06-27 10:19:50 +08:00
committed by Yixun Lan
parent 04823ee9c2
commit c476e728b2
4 changed files with 26 additions and 2 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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())

View File

@@ -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);