From 2f7c68cb55ecb7331f2381deb497c27155f32faf Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Wed, 03 Jan 2024 09:43:39 +0000
Subject: [PATCH] update kernel to 5.10.198
---
kernel/drivers/media/i2c/nvp6158_drv/nvp6158_video.c | 374 +++++++++++++++++++----------------------------------
1 files changed, 134 insertions(+), 240 deletions(-)
diff --git a/kernel/drivers/media/i2c/nvp6158_drv/nvp6158_video.c b/kernel/drivers/media/i2c/nvp6158_drv/nvp6158_video.c
index 81a36f3..35353ff 100644
--- a/kernel/drivers/media/i2c/nvp6158_drv/nvp6158_video.c
+++ b/kernel/drivers/media/i2c/nvp6158_drv/nvp6158_video.c
@@ -35,9 +35,9 @@
extern unsigned char nvp6158_det_mode[16];
extern unsigned int nvp6158_gCoaxFirmUpdateFlag[16];
-unsigned char nvp6158_motion_sens_tbl[8]= {0xe0,0xc8,0xa0,0x98,0x78,0x68,0x50,0x48};
-unsigned char nvp6158_ch_mode_status[16]={[0 ... 15]=0xff};
-unsigned char nvp6158_ch_vfmt_status[16]={[0 ... 15]=0xff};
+unsigned char nvp6158_motion_sens_tbl[8] = {0xe0, 0xc8, 0xa0, 0x98, 0x78, 0x68, 0x50, 0x48};
+unsigned char nvp6158_ch_mode_status[16] = {[0 ... 15] = 0xff};
+unsigned char nvp6158_ch_vfmt_status[16] = {[0 ... 15] = 0xff};
#ifdef _ENABLE_DET_DEBOUNCE_
NVP6158_INFORMATION_S nvp6158_s_raptor3_vfmts;
#endif
@@ -47,39 +47,28 @@
int tmp = 0;
int i = 0, j= 0;
- printk("***************IIC ADDR 0x%02x - CH[%02d] *****************\r\n", nvp6158_iic_addr[ch/4], ch );
- printk("***************Chip[0x%02x] Bank[0x%x]*****************\r\n", nvp6158_iic_addr[ch/4], bank );
+ printk("***************IIC ADDR 0x%02x - CH[%02d] *****************\r\n",
+ nvp6158_iic_addr[ch/4], ch );
+ printk("***************Chip[0x%02x] Bank[0x%x]*****************\r\n",
+ nvp6158_iic_addr[ch/4], bank );
gpio_i2c_write(nvp6158_iic_addr[ch/4], 0xFF, bank );
- for (i = 0;i<=0xF;i++)
- {
- if(i==0)
- {
- printk(" 0x%02x ",i);
- }
- else if (i==0xF)
- {
+ for (i = 0; i <= 0xF; i++) {
+ if(i == 0) {
+ printk("0x%02x ",i);
+ } else if (i==0xF) {
printk("0x%02x\r\n",i);
- }
- else
- {
+ } else {
printk("0x%02x ",i);
}
}
- for (i = 0;i<=0xF;i++)
- {
- for(j = 0;j<=0xF;j++)
- {
- tmp = gpio_i2c_read(nvp6158_iic_addr[ch/4], (i<<4)|j);
- if (j==0)
- {
- printk("0x%02x-0x%02x ",(i<<4)|j,tmp);
- }
- else if (j==0xF)
- {
+ for (i = 0; i <= 0xF; i++) {
+ for(j = 0; j <= 0xF; j++) {
+ tmp = gpio_i2c_read(nvp6158_iic_addr[ch / 4], (i << 4) | j);
+ if (j == 0) {
+ printk("0x%02x-0x%02x ",(i << 4) | j, tmp);
+ } else if (j == 0xF) {
printk("0x%02x\r\n",tmp);
- }
- else
- {
+ } else {
printk("0x%02x ",tmp);
}
}
@@ -90,17 +79,19 @@
{
unsigned char adc_value;
- gpio_i2c_write(nvp6158_iic_addr[ch/4], 0xFF, 0x01);
- adc_value = gpio_i2c_read(nvp6158_iic_addr[ch/4], 0x84+ch%4);
- printk(">>>>> DRV[%s:%d] CH:%d, Bank:0x%02x, ADC clock delay:0x%x\n", __func__, __LINE__, ch, nvp6158_iic_addr[ch/4], adc_value );
+ gpio_i2c_write(nvp6158_iic_addr[ch / 4], 0xFF, 0x01);
+ adc_value = gpio_i2c_read(nvp6158_iic_addr[ch / 4], 0x84 + ch % 4);
+ printk(">>>>> DRV[%s:%d] CH:%d, Bank:0x%02x, ADC clock delay:0x%x\n",
+ __func__, __LINE__, ch, nvp6158_iic_addr[ch/4], adc_value );
return adc_value;
}
void nvp6158_video_set_adcclk(unsigned char ch, unsigned char value)
{
- gpio_i2c_write(nvp6158_iic_addr[ch/4], 0xFF, 0x01);
- gpio_i2c_write(nvp6158_iic_addr[ch/4], 0x84+ch%4, value);
- printk(">>>>> DRV[%s:%d] CH:%d, Bank:0x%02x, ADC clock delay:0x%x\n", __func__, __LINE__, ch, nvp6158_iic_addr[ch/4], value );
+ gpio_i2c_write(nvp6158_iic_addr[ch / 4], 0xFF, 0x01);
+ gpio_i2c_write(nvp6158_iic_addr[ch / 4], 0x84 + ch % 4, value);
+ printk(">>>>> DRV[%s:%d] CH:%d, Bank:0x%02x, ADC clock delay:0x%x\n",
+ __func__, __LINE__, ch, nvp6158_iic_addr[ch/4], value );
}
static __maybe_unused void NVP6158_set_afe(unsigned char ch, unsigned char onoff)
@@ -121,9 +112,7 @@
static __maybe_unused void nvp6158_datareverse(unsigned char chip, unsigned char port)
{
-/*
-BANK1 0xCB[3:0],ÿ��bit����һ��bt656������˳��1Ϊ����0Ϊ����
-*/
+
unsigned char tmp;
gpio_i2c_write(nvp6158_iic_addr[chip], 0xFF, 0x01);
tmp = gpio_i2c_read(nvp6158_iic_addr[chip], 0xCB);
@@ -137,12 +126,9 @@
unsigned char val_1x81;
gpio_i2c_write(nvp6158_iic_addr[chip], 0xFF, 0x01);
val_1x81 = gpio_i2c_read(nvp6158_iic_addr[chip], 0x81);
- if(flag == 1)
- {
+ if(flag == 1) {
val_1x81 |= 0x02;
- }
- else
- {
+ } else {
val_1x81 &= 0xFD;
}
gpio_i2c_write(nvp6158_iic_addr[chip], 0x81, val_1x81);
@@ -185,14 +171,13 @@
//VDO_1/2 disabled, VCLK_x disabled
gpio_i2c_write(0x60, 0xFF, 0x01);
gpio_i2c_write(0x60, 0xCA, 0x00);
- for(ch=0;ch<4;ch++)
- {
+ for(ch = 0; ch < 4; ch++) {
gpio_i2c_write(nvp6158_iic_addr[chip], 0xFF, 0x00);
//gpio_i2c_write(nvp6158_iic_addr[chip], 0x00+ch, 0x10);
- gpio_i2c_write(nvp6158_iic_addr[chip], 0x22+4*ch, 0x0B);
- gpio_i2c_write(nvp6158_iic_addr[chip], 0x23+4*ch, 0x41);
+ gpio_i2c_write(nvp6158_iic_addr[chip], 0x22+ 4 * ch, 0x0B);
+ gpio_i2c_write(nvp6158_iic_addr[chip], 0x23+ 4 * ch, 0x41);
- gpio_i2c_write(nvp6158_iic_addr[chip], 0xFF, 0x05+ch%4);
+ gpio_i2c_write(nvp6158_iic_addr[chip], 0xFF, 0x05 + ch % 4);
gpio_i2c_write(nvp6158_iic_addr[chip], 0x00, 0xD0); // Clamp speed
gpio_i2c_write(nvp6158_iic_addr[chip], 0xA9, 0x80);
gpio_i2c_write(nvp6158_iic_addr[chip], 0x76, 0x00);
@@ -227,27 +212,24 @@
printk("debunce:0x%02X, debncIdx:%d\n", pInformation->debounce[ch][pInformation->debounceidx[ch]], pInformation->debounceidx[ch]);
*/
pInformation->debounceidx[ch]++;
- pInformation->debounceidx[ch] = ( (pInformation->debounceidx[ch] % MAX_DEBOUNCE_CNT) == 0 ) ? 0 : pInformation->debounceidx[ch];
+ pInformation->debounceidx[ch] = ( (pInformation->debounceidx[ch] % MAX_DEBOUNCE_CNT) == 0 ) ?
+ 0 : pInformation->debounceidx[ch];
oVfc = pInformation->debounce[ch][pInformation->debounceidx[ch]];
- for( i = 0; i < MAX_DEBOUNCE_CNT; i++ )
- {
- if( oVfc != pInformation->debounce[ch][i])
- {
+ for( i = 0; i < MAX_DEBOUNCE_CNT; i++ ) {
+ if( oVfc != pInformation->debounce[ch][i]) {
break;
}
}
- if( i == MAX_DEBOUNCE_CNT )
- {
+ if( i == MAX_DEBOUNCE_CNT ) {
oFmtB5Def = NVP6158_NC_VD_AUTO_VFCtoFMTDEF(ch, oVfc);
//if( ( oFmtB5Def != AHD30_5M_20P ) && ( oFmtB5Def != pInformation->prevideofmt[ch] ) )
if( ( ( oFmtB5Def != AHD30_5M_20P ) && ( oFmtB5Def != CVI_8M_15P ) &&
( oFmtB5Def != CVI_8M_12_5P ) && ( oFmtB5Def != CVI_HD_30P_EX ) &&
( oFmtB5Def != AHD20_1080P_25P ) && ( oFmtB5Def != AHD20_1080P_30P ) &&
- ( oFmtB5Def != CVI_FHD_25P ) )
- && ( oFmtB5Def != pInformation->prevideofmt[ch] ) )
- {
- printk("\n\n\n>>>>>>WATCH OUT<<<<<<ch[%d] oVfc[%2x]oFmtB5Def[%2x] != pInformation->prevideofmt[%2x]\n\n\n", ch, oVfc, oFmtB5Def , pInformation->prevideofmt[ch]);
+ ( oFmtB5Def != CVI_FHD_25P ) ) && ( oFmtB5Def != pInformation->prevideofmt[ch] ) ) {
+ printk("\n\n\n>>>>>>WATCH OUT<<<<<<ch[%d] oVfc[%2x]oFmtB5Def[%2x] != pInformation->prevideofmt[%2x]\n\n\n",
+ ch, oVfc, oFmtB5Def , pInformation->prevideofmt[ch]);
ret = -1;
}
}
@@ -273,8 +255,7 @@
void nvp6158_set_colorpattern(void)
{
int chip;
- for(chip=0;chip<nvp6158_cnt;chip++)
- {
+ for(chip = 0; chip < nvp6158_cnt; chip++) {
gpio_i2c_write(nvp6158_iic_addr[chip], 0xFF, 0x00);
gpio_i2c_write(nvp6158_iic_addr[chip], 0x78, 0xaa);
gpio_i2c_write(nvp6158_iic_addr[chip], 0x79, 0xaa);
@@ -298,8 +279,7 @@
int chip;
printk("[NVP6158_VIDEO] %s(%d) \n", __func__, __LINE__);
- for(chip=0;chip<nvp6158_cnt;chip++)
- {
+ for(chip = 0; chip < nvp6158_cnt; chip++) {
gpio_i2c_write(nvp6158_iic_addr[chip], 0xFF, 0x05);
gpio_i2c_write(nvp6158_iic_addr[chip], 0x2c, 0x08);
gpio_i2c_write(nvp6158_iic_addr[chip], 0x6a, 0x80);
@@ -326,8 +306,7 @@
int chip;
printk("[NVP6158_VIDEO] %s(%d) \n", __func__, __LINE__);
- for(chip=0;chip<nvp6158_cnt;chip++)
- {
+ for(chip = 0; chip < nvp6158_cnt; chip++) {
gpio_i2c_write(nvp6158_iic_addr[chip], 0xFF, 0x05);
gpio_i2c_write(nvp6158_iic_addr[chip], 0x2c, 0x08);
gpio_i2c_write(nvp6158_iic_addr[chip], 0x6a, 0x80);
@@ -382,32 +361,27 @@
sNoVideo.devnum = ch/4;
/* get vfc and videoloss */
- if(nvp6158_chip_id[ch/4]==NVP6158C_R0_ID || nvp6158_chip_id[ch/4]==NVP6158_R0_ID)
+ if(nvp6158_chip_id[ch/4]==NVP6158C_R0_ID || nvp6158_chip_id[ch/4] == NVP6158_R0_ID)
nvp6158_video_input_vfc_read(&sVFC);
else
nvp6168_video_input_vfc_read(&sVFC);
nvp6158_video_input_novid_read(&sNoVideo);
svin_vfc_bak.ch = ch%4;
svin_vfc_bak.devnum = ch/4;
- if(nvp6158_chip_id[ch/4]==NVP6158C_R0_ID || nvp6158_chip_id[ch/4]==NVP6158_R0_ID)
+ if(nvp6158_chip_id[ch/4]==NVP6158C_R0_ID || nvp6158_chip_id[ch/4] == NVP6158_R0_ID)
nvp6158_video_input_onvideo_check_data(&svin_vfc_bak);
/* check vfc&videoloss and run debounce */
- if(((((sVFC.vfc >> 4 ) & 0xF) != 0xF) && ((sVFC.vfc & 0x0F) != 0xF)) && !sNoVideo.novid) // OnVideo
- {
+ if(((((sVFC.vfc >> 4 ) & 0xF) != 0xF) && ((sVFC.vfc & 0x0F) != 0xF)) && !sNoVideo.novid) {// OnVideo
/* convert vfc to formatDefine for APP and save videoloss information */
oCurVidFmt = NVP6158_NC_VD_AUTO_VFCtoFMTDEF(ch, sVFC.vfc);
/* debouce */
pInformation->curvideofmt[ch] = oCurVidFmt;
pInformation->vfc[ch] = sVFC.vfc;
- }
- else if(((((sVFC.vfc >> 4 ) & 0xF) == 0xF) && ((sVFC.vfc & 0x0F) == 0xF)) && !sNoVideo.novid)
- {
- if(nvp6158_chip_id[ch/4]==NVP6158C_R0_ID || nvp6158_chip_id[ch/4]==NVP6158_R0_ID)
- {
- if(svin_vfc_bak.vfc == 0xFF)
- {
+ } else if (((((sVFC.vfc >> 4 ) & 0xF) == 0xF) && ((sVFC.vfc & 0x0F) == 0xF)) && !sNoVideo.novid) {
+ if(nvp6158_chip_id[ch/4]==NVP6158C_R0_ID || nvp6158_chip_id[ch/4]==NVP6158_R0_ID) {
+ if(svin_vfc_bak.vfc == 0xFF) {
//nvp6158_channel_reset(ch);
//nvp6158_adc_reset(ch);
}
@@ -415,8 +389,7 @@
}
/* check novideo option */
- if( !sNoVideo.novid )
- {
+ if( !sNoVideo.novid ) {
pInformation->curvideoloss[ch] = VIDEO_LOSS_ON;
}
@@ -431,9 +404,9 @@
* warning :
*******************************************************************************/
#if(AHD_720P30_Detect_Count == 0)
-static int CVI_720P30[16]={0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,};
+static int CVI_720P30[16]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,};
#else
-static int CVI_720P30[16]={1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1}; //2020-12-16 for ahd 720p30 detect slow
+static int CVI_720P30[16]={1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; //2020-12-16 for ahd 720p30 detect slow
#endif
unsigned int nvp6158_video_fmt_det(const unsigned char ch, NVP6158_INFORMATION_S *ps_nvp6158_vfmts)
{
@@ -453,93 +426,73 @@
oCurVideofmt = ps_nvp6158_vfmts->curvideofmt[ch];
oPreVideofmt = ps_nvp6158_vfmts->prevideofmt[ch];
- if( ps_nvp6158_vfmts->curvideoloss[ch] == VIDEO_LOSS_ON)
- {
+ if( ps_nvp6158_vfmts->curvideoloss[ch] == VIDEO_LOSS_ON) {
/* on video */
- if( (oCurVideofmt != NC_VIVO_CH_FORMATDEF_UNKNOWN) && (oPreVideofmt == NC_VIVO_CH_FORMATDEF_UNKNOWN) )
- {
+ if( (oCurVideofmt != NC_VIVO_CH_FORMATDEF_UNKNOWN) && (oPreVideofmt == NC_VIVO_CH_FORMATDEF_UNKNOWN) ) {
oFmtDef = NVP6158_NC_VD_AUTO_VFCtoFMTDEF( ch, ps_nvp6158_vfmts->vfc[ch] );
sDevChInfo.ch = ch%4;
sDevChInfo.devnum = ch/4;
sDevChInfo.fmt_def = oFmtDef;
- if(oFmtDef == AHD30_5M_20P )
- {
+ if(oFmtDef == AHD30_5M_20P ) {
printk("[CH:%d] >> finding format: %x....\n", ch, oFmtDef);
nvp6158_video_input_ahd_tvi_distinguish(&sDevChInfo);
oFmtDef = sDevChInfo.fmt_def;
ps_nvp6158_vfmts->curvideofmt[ch] = oFmtDef;
- }
- else if( oFmtDef == CVI_8M_15P || oFmtDef == CVI_8M_12_5P )
- {
+ } else if( oFmtDef == CVI_8M_15P || oFmtDef == CVI_8M_12_5P ) {
if( oFmtDef == CVI_8M_15P )
printk("[CH:%d] >> finding format:CVI 8M 15P....\n", ch);
else
printk("[CH:%d] >> finding format:CVI 8M 12.5P....\n", ch);
- if(-1 == nvp6158_video_input_cvi_tvi_distinguish(&sDevChInfo))
- {
+ if(-1 == nvp6158_video_input_cvi_tvi_distinguish(&sDevChInfo)) {
printk("error nvp6158_video_input_cvi_tvi_distinguish\n");
return 1;
}
oFmtDef = sDevChInfo.fmt_def;
- if( oFmtDef == TVI_8M_15P )
- {
+ if( oFmtDef == TVI_8M_15P ) {
printk("[CH:%d] >> changing format:TVI 8M 15P....\n", ch);
ps_nvp6158_vfmts->curvideofmt[ch] = TVI_8M_15P;
- }
- else if( oFmtDef == TVI_8M_12_5P )
- {
+ } else if( oFmtDef == TVI_8M_12_5P ) {
printk("[CH:%d] >> changing format:TVI 8M 12_5P....\n", ch);
ps_nvp6158_vfmts->curvideofmt[ch] = TVI_8M_12_5P;
}
- }
- else if( oFmtDef == AHD20_720P_30P_EX_Btype/* || oFmtDef == CVI_HD_30P_EX*/)
- {
- if(CVI_720P30[ch] == 0)
- {
+ } else if( oFmtDef == AHD20_720P_30P_EX_Btype/* || oFmtDef == CVI_HD_30P_EX*/) {
+ if(CVI_720P30[ch] == 0) {
oFmtDef = CVI_HD_30P_EX;
ps_nvp6158_vfmts->curvideofmt[ch] = CVI_HD_30P_EX;
CVI_720P30[ch] = 1;
printk("[CH:%d] >> AHD20_720P_30P_EX_Btype changing format:CVI CVI_HD_30P_EX ....\n", ch); //2020-12-16
- }
- else
+ } else
printk("[CH:%d] >> AHD20_720P_30P_EX_Btype non changing format:CVI CVI_HD_30P_EX ....\n", ch); //2020-12-16
- }
- else if(oFmtDef == CVI_FHD_25P )
- {
+ } else if(oFmtDef == CVI_FHD_25P ) {
printk("[CH:%d] >> finding format: %x....\n", ch, oFmtDef);
nvp6158_video_input_cvi_ahd_1080p_distinguish(&sDevChInfo);
oFmtDef = sDevChInfo.fmt_def;
- if( oFmtDef == AHD20_1080P_25P )
- {
+ if( oFmtDef == AHD20_1080P_25P ) {
printk("[CH:%d] >> changing format:AHD 2M 25P....\n", ch);
ps_nvp6158_vfmts->curvideofmt[ch] = AHD20_1080P_25P;
}
}
- if(ps_nvp6158_vfmts->vfc[ch] == 0x2B)
- {
+ if(ps_nvp6158_vfmts->vfc[ch] == 0x2B) {
sDevChInfo.ch = ch%4;
sDevChInfo.devnum = ch/4;
sDevChInfo.fmt_def = ps_nvp6158_vfmts->vfc[ch];
nvp6158_video_input_ahd_tvi_distinguish(&sDevChInfo);
oFmtDef = sDevChInfo.fmt_def;
- if( oFmtDef == TVI_4M_15P )
- {
- if((nvp6158_det_mode[ch] == NVP6158_DET_MODE_AUTO)||(nvp6158_det_mode[ch] == NVP6158_DET_MODE_TVI))
- {
+ if( oFmtDef == TVI_4M_15P ) {
+ if((nvp6158_det_mode[ch] == NVP6158_DET_MODE_AUTO)||(nvp6158_det_mode[ch] == NVP6158_DET_MODE_TVI)) {
printk("[CH:%d] >> changing format:TVI 4M 15P....\n", ch);
ps_nvp6158_vfmts->curvideofmt[ch] = TVI_4M_15P;
- }
- else
+ } else
ps_nvp6158_vfmts->curvideofmt[ch] = NC_VIVO_CH_FORMATDEF_UNKNOWN;
}
}
@@ -556,9 +509,7 @@
#endif
//nvp6158_set_chnmode(ch, ps_nvp6158_vfmts->prevideofmt[ch]);
printk(">>>>> CH[%d], Set video format : 0x%02X\n", ch, oCurVideofmt);
- }
- else if( (oCurVideofmt == NC_VIVO_CH_FORMATDEF_UNKNOWN ) && (oPreVideofmt == NC_VIVO_CH_FORMATDEF_UNKNOWN) )
- {
+ } else if( (oCurVideofmt == NC_VIVO_CH_FORMATDEF_UNKNOWN ) && (oPreVideofmt == NC_VIVO_CH_FORMATDEF_UNKNOWN) ) {
int ii = 0;
int retry_cnt = 0;
@@ -584,30 +535,24 @@
//nvp6158_video_input_manual_agc_stable_endi(&sDevChInfo, 1);
- for(ii = 0; ii < 20; ii++ )
- {
+ for(ii = 0; ii < 20; ii++ ) {
nvp6158_video_input_vfc_read( &sVFC_B13 );
nvp6158_video_input_onvideo_check_data( &sVFC_B5 );
- if( ((sVFC_B5.vfc >> 4) & 0xf ) < 0x2)
- {
+ if( ((sVFC_B5.vfc >> 4) & 0xf ) < 0x2) {
break;
}
- if( sVFC_B13.vfc == 0x2b && sVFC_B5.vfc == 0x3f)
- {
+ if( sVFC_B13.vfc == 0x2b && sVFC_B5.vfc == 0x3f) {
printk("[DRV] CH[%d] Bank13 0xF0 [%02x], Bank5 0xF0[%02x]\n", ch, sVFC_B13.vfc, sVFC_B5.vfc );
printk("[DRV] CH[%d] AFHD 15P or 12.5P [%d]\n" , ch, retry_cnt );
break;
- }
- else if( ( sVFC_B5.vfc != 0x2f || sVFC_B5.vfc != 0x3f ) && (sVFC_B13.vfc != 0x2b))
- {
+ } else if(sVFC_B5.vfc != 0x2f) {
printk("[DRV] CH[%d] Bank13 0xF0 [%02x], Bank5 0xF0[%02x]\n", ch, sVFC_B13.vfc, sVFC_B5.vfc );
printk("[DRV] CH[%d] Unknown Status [%d] \n", ch, retry_cnt );
}
- if(retry_cnt >= 20 )
- {
+ if(retry_cnt >= 20 ) {
printk("CH[%d] Unknown Status Disitinguish Finished ...\n", ch );
break;
}
@@ -621,8 +566,7 @@
nvp6158_video_input_ahd_nrt_distinguish( &sDevChInfo );
- if( sDevChInfo.fmt_def == NC_VIVO_CH_FORMATDEF_UNKNOWN )
- {
+ if( sDevChInfo.fmt_def == NC_VIVO_CH_FORMATDEF_UNKNOWN ) {
printk("[DRV] CH[%d] unknown format \n", ch);
return 0;
}
@@ -649,11 +593,9 @@
}
#ifdef _ENABLE_DET_DEBOUNCE_
- else
- {
+ else {
ret = nvp6158_AutoDebouceCheck( ch, &nvp6158_s_raptor3_vfmts ); //note!!!!
- if( ( ret == -1 ) && ( nvp6158_gCoaxFirmUpdateFlag[ch] == 0 ) )
- {
+ if( ( ret == -1 ) && ( nvp6158_gCoaxFirmUpdateFlag[ch] == 0 ) ) {
sDevChInfo.ch = ch % 4;
sDevChInfo.devnum = ch/4;
/* hide decoder */
@@ -678,11 +620,9 @@
}
#endif
}
- else
- {
+ else {
/* no video */
- if( oPreVideofmt != NC_VIVO_CH_FORMATDEF_UNKNOWN )
- {
+ if( oPreVideofmt != NC_VIVO_CH_FORMATDEF_UNKNOWN ) {
//nvp6158_set_chnmode(ch, NC_VIVO_CH_FORMATDEF_UNKNOWN);
ps_nvp6158_vfmts->prevideofmt[ch] = NC_VIVO_CH_FORMATDEF_UNKNOWN;
@@ -722,18 +662,16 @@
oCurVideofmt = ps_nvp6158_vfmts->curvideofmt[ch];
oPreVideofmt = ps_nvp6158_vfmts->prevideofmt[ch];
- if( ps_nvp6158_vfmts->curvideoloss[ch] == VIDEO_LOSS_ON)
- {
+ if( ps_nvp6158_vfmts->curvideoloss[ch] == VIDEO_LOSS_ON) {
/* on video */
- if( (oCurVideofmt != NC_VIVO_CH_FORMATDEF_UNKNOWN) && (oPreVideofmt == NC_VIVO_CH_FORMATDEF_UNKNOWN) )
- {
+ if( (oCurVideofmt != NC_VIVO_CH_FORMATDEF_UNKNOWN) &&
+ (oPreVideofmt == NC_VIVO_CH_FORMATDEF_UNKNOWN) ) {
oFmtDef = NVP6158_NC_VD_AUTO_VFCtoFMTDEF( ch, ps_nvp6158_vfmts->vfc[ch] );
sDevChInfo.ch = ch%4;
sDevChInfo.devnum = ch/4;
sDevChInfo.fmt_def = oFmtDef;
- if(oFmtDef == TVI_5M_20P) //needs 2nd identify
- {
+ if(oFmtDef == TVI_5M_20P) {//needs 2nd identify
nvp6168_video_input_cvi_tvi_5M20p_distinguish(&sDevChInfo);
oFmtDef = sDevChInfo.fmt_def;
@@ -746,12 +684,9 @@
printk(">>>>> CH[%d], Set video format : 0x%02X\n", ch, oCurVideofmt);
}
- }
- else
- {
+ } else {
/* no video */
- if( oPreVideofmt != NC_VIVO_CH_FORMATDEF_UNKNOWN )
- {
+ if( oPreVideofmt != NC_VIVO_CH_FORMATDEF_UNKNOWN ) {
//nvp6158_set_chnmode(ch, NC_VIVO_CH_FORMATDEF_UNKNOWN);
ps_nvp6158_vfmts->prevideofmt[ch] = NC_VIVO_CH_FORMATDEF_UNKNOWN;
@@ -770,8 +705,7 @@
unsigned int vloss=0, i;
unsigned char vlossperchip[4];
- for(i=0;i<nvp6158_cnt;i++)
- {
+ for(i = 0; i < nvp6158_cnt; i++) {
gpio_i2c_write(nvp6158_iic_addr[i], 0xFF, 0x00);
vlossperchip[i] = (gpio_i2c_read(nvp6158_iic_addr[i], 0xA8)&0x0F);
vloss |= (vlossperchip[i]<<(4*i));
@@ -780,7 +714,7 @@
return vloss;
}
static unsigned char nvp6158_vloss_pre = 0xFF;
-static unsigned char nvp6158_ch_first_plug_status[8]={1,1,1,1,1,1,1,1};
+static unsigned char nvp6158_ch_first_plug_status[8]={1, 1, 1, 1, 1, 1, 1, 1};
static __maybe_unused unsigned char nvp6158_is_first_plugin(unsigned char ch)
{
unsigned int vloss=0;
@@ -836,7 +770,7 @@
{
unsigned char acc_ref=0;
unsigned char check_cnt = 4;
- do{
+ do {
gpio_i2c_write(nvp6158_iic_addr[ch/4], 0xFF, 0x05+(ch%4));
acc_ref = gpio_i2c_read(nvp6158_iic_addr[ch/4], 0x27);
gpio_i2c_write(nvp6158_iic_addr[ch/4], 0x23, 0x80);
@@ -1027,8 +961,7 @@
unsigned char val_0x54;
unsigned char vfmt = chnmode%2;
- if((chnmode <= AHD20_SD_H960_2EX_Btype_PAL) && (chnmode>=AHD20_SD_H960_NT))
- {
+ if((chnmode <= AHD20_SD_H960_2EX_Btype_PAL) && (chnmode>=AHD20_SD_H960_NT)) {
gpio_i2c_write(nvp6158_iic_addr[ch/4], 0xFF, 0x00);
val_0x54 = gpio_i2c_read(nvp6158_iic_addr[ch/4], 0x54);
_CLE_BIT(val_0x54, (ch%4+4));
@@ -1039,9 +972,7 @@
gpio_i2c_write(nvp6158_iic_addr[ch/4], 0xFF, 0x05+ch%4);
gpio_i2c_write(nvp6158_iic_addr[ch/4], 0x69,0x01);
gpio_i2c_write(nvp6158_iic_addr[ch/4], 0xB8,0xB8);
- }
- else
- {
+ } else {
gpio_i2c_write(nvp6158_iic_addr[ch/4], 0xFF, 0x00);
val_0x54 = gpio_i2c_read(nvp6158_iic_addr[ch/4], 0x54);
_CLE_BIT(val_0x54, (ch%4+4));
@@ -1055,9 +986,9 @@
decoder_info.ch = ch%4;
decoder_info.devnum = ch/4;
decoder_info.fmt_def = chnmode;
- if(__nvp6158_IsOver3MRTVideoFormat( &decoder_info ))
+ if(__nvp6158_IsOver3MRTVideoFormat( &decoder_info ))
nvp6158_set_chn_ycmerge(ch, 1);
- else
+ else
nvp6158_set_chn_ycmerge(ch, 0);
if(nvp6158_chip_id[decoder_info.devnum]==NVP6158C_R0_ID || nvp6158_chip_id[decoder_info.devnum]==NVP6158_R0_ID)
nvp6158_video_input_onvideo_set( &decoder_info );
@@ -1065,14 +996,6 @@
nvp6168_video_input_onvideo_set( &decoder_info );
}
-
-/*
-����ͨ��ģʽ
-����
-ch: ͨ���ţ�ȡֵ��Χ0~(nvp6158_cnt*4-1)
-vfmt: 0:NTSC, 1:PAL
-chnmode:ͨ��ģʽ���ο�NVP6158_VI_MODE.
-*/
int nvp6158_set_chnmode(const unsigned char ch, const unsigned char chnmode)
{
//unsigned char tmp;
@@ -1080,17 +1003,14 @@
video_input_novid auto_novid;
nvp6158_coax_str s_coax_str;
- if(ch >= (nvp6158_cnt*4))
- {
+ if(ch >= (nvp6158_cnt*4)) {
printk("func[nvp6158_set_chnmode] Channel %d is out of range!!!\n", ch);
return -1;
}
/* set video format each format */
- if(chnmode < NC_VIVO_CH_FORMATDEF_MAX)
- {
- if(NC_VIVO_CH_FORMATDEF_UNKNOWN != chnmode)
- {
+ if(chnmode < NC_VIVO_CH_FORMATDEF_MAX) {
+ if(NC_VIVO_CH_FORMATDEF_UNKNOWN != chnmode) {
nvp6158_set_chn_commonvalue( ch, chnmode );
nvp6158_video_input_new_format_set(ch, chnmode);
@@ -1116,9 +1036,7 @@
gpio_i2c_write(nvp6158_iic_addr[ch/4], 0x40+ch%4,0x00);
nvp6158_show_ch(ch);
- }
- else
- {
+ } else {
nvp6158_hide_ch(ch);
auto_novid.ch = ch%4;
auto_novid.devnum = ch/4;
@@ -1141,17 +1059,14 @@
video_input_novid auto_novid;
nvp6158_coax_str s_coax_str;
- if(ch >= (nvp6158_cnt*4))
- {
+ if(ch >= (nvp6158_cnt*4)) {
printk("func[nvp6168_set_chnmode] Channel %d is out of range!!!\n", ch);
return -1;
}
/* set video format each format */
- if(chnmode < NC_VIVO_CH_FORMATDEF_MAX)
- {
- if(NC_VIVO_CH_FORMATDEF_UNKNOWN != chnmode)
- {
+ if(chnmode < NC_VIVO_CH_FORMATDEF_MAX) {
+ if(NC_VIVO_CH_FORMATDEF_UNKNOWN != chnmode) {
nvp6158_set_chn_commonvalue( ch, chnmode );
//nvp6158_video_input_new_format_set(ch, chnmode);
@@ -1177,9 +1092,7 @@
gpio_i2c_write(nvp6158_iic_addr[ch/4], 0x40+ch%4,0x00);
nvp6158_show_ch(ch);
- }
- else
- {
+ } else {
nvp6158_hide_ch(ch);
auto_novid.ch = ch%4;
auto_novid.devnum = ch/4;
@@ -1197,8 +1110,6 @@
/*
-nvp6158��nvp6158c����ͬһ����
-portsel���в��죬nvp6158cֻ��ʹ��1��2��nvp6158��4��port������ʹ��0~3��
chip:chip select[0,1,2,3];
portsel: port select->6158c[1,2],6158[0,1,2,3];
portmode: port mode select[1mux,2mux,4mux]
@@ -1214,19 +1125,19 @@
* Modify :
* warning :
*******************************************************************************/
-int nvp6158_set_portmode(const unsigned char chip, const unsigned char portsel, const unsigned char portmode, const unsigned char chid)
+int nvp6158_set_portmode(const unsigned char chip, const unsigned char portsel,
+ const unsigned char portmode, const unsigned char chid)
{
unsigned char chipaddr = nvp6158_iic_addr[chip];
unsigned char tmp=0, tmp1=0, reg1=0, reg2=0;
- if((portsel!=1) && (portsel!=2) && (nvp6158_chip_id[chip]==NVP6158C_R0_ID || nvp6158_chip_id[chip] == NVP6168C_R0_ID))
- {
+ if((portsel!=1) && (portsel!=2) && (nvp6158_chip_id[chip]==NVP6158C_R0_ID ||
+ nvp6158_chip_id[chip] == NVP6168C_R0_ID)) {
printk("nvp6158C_set_portmode portsel[%d] error!!!\n", portsel);
//return -1;
}
- switch(portmode)
- {
+ switch(portmode) {
case NVP6158_OUTMODE_1MUX_SD:
/*Output 720H/960H Single Channel data, Data Rate 37.125MHz,Pclk 37.125MHz, Single Edge.*/
gpio_i2c_write(chipaddr, 0xFF, 0x00);
@@ -1402,7 +1313,7 @@
break;
case NVP6158_OUTMODE_4MUX_MIX:
/*HD,1920H,FHD-X 4mux mix,Data Rate 297MHz,Pclk 297MHz, Dual Edge.
- SOC VI Port Abandon some data��realize 1920H->960H */
+ SOC VI Port Abandon some data��realize 1920H->960H */
gpio_i2c_write(chipaddr, 0xFF, 0x00);
gpio_i2c_write(chipaddr, 0x56, 0x32);
gpio_i2c_write(chipaddr, 0xFF, 0x01);
@@ -1432,8 +1343,8 @@
gpio_i2c_write(chipaddr, 0xFF, 0x00);
gpio_i2c_write(chipaddr, 0x56, 0x10);
gpio_i2c_write(chipaddr, 0xFF, 0x01);
- if(nvp6158_chip_id[chip] == NVP6158C_R0_ID || nvp6158_chip_id[chip] == NVP6168C_R0_ID)
- {
+ if(nvp6158_chip_id[chip] == NVP6158C_R0_ID ||
+ nvp6158_chip_id[chip] == NVP6168C_R0_ID) {
//6158C makes 2 bt656 ports to 1 bt1120 port. portsel=[1,2] to choose clock.
gpio_i2c_write(chipaddr, 0xC2, (((chid%4)+0x04)<<4)|((chid%4)+0x04));
gpio_i2c_write(chipaddr, 0xC3, (((chid%4)+0x04)<<4)|((chid%4)+0x04));
@@ -1442,9 +1353,7 @@
gpio_i2c_write(chipaddr, 0xC8, 0x00);
gpio_i2c_write(chipaddr, 0xC9, 0x00);
gpio_i2c_write(chipaddr, 0xCC+portsel, 0x86); //37.125MHz clock
- }
- else
- {
+ } else {
//6158 makes 4 bt656 ports to 2 bt1120 port. portsel=[0,1] to choose clock.
gpio_i2c_write(chipaddr, 0xC0+portsel*4, (((chid%4)+0x0C)<<4)|((chid%4)+0x0C));
gpio_i2c_write(chipaddr, 0xC1+portsel*4, (((chid%4)+0x0C)<<4)|((chid%4)+0x0C));
@@ -1459,8 +1368,8 @@
gpio_i2c_write(chipaddr, 0xFF, 0x00);
gpio_i2c_write(chipaddr, 0x56, 0x10);
gpio_i2c_write(chipaddr, 0xFF, 0x01);
- if(nvp6158_chip_id[chip] == NVP6158C_R0_ID || nvp6158_chip_id[chip] == NVP6168C_R0_ID)
- {
+ if(nvp6158_chip_id[chip] == NVP6158C_R0_ID ||
+ nvp6158_chip_id[chip] == NVP6168C_R0_ID) {
//6158C makes 2 bt656 ports to 1 bt1120 port. portsel=[1,2] to choose clock.
gpio_i2c_write(chipaddr, 0xC2, (((chid%4)+0x04)<<4)|((chid%4)+0x04));
gpio_i2c_write(chipaddr, 0xC3, (((chid%4)+0x04)<<4)|((chid%4)+0x04));
@@ -1469,9 +1378,7 @@
gpio_i2c_write(chipaddr, 0xC8, 0x00);
gpio_i2c_write(chipaddr, 0xC9, 0x00);
gpio_i2c_write(chipaddr, 0xCC+portsel, 0x06); //74.25MHz clock
- }
- else
- {
+ } else {
//6158 makes 4 bt656 ports to 2 bt1120 port. portsel=[0,1] to choose clock.
gpio_i2c_write(chipaddr, 0xC0+portsel*4, (((chid%4)+0x0C)<<4)|((chid%4)+0x0C));
gpio_i2c_write(chipaddr, 0xC1+portsel*4, (((chid%4)+0x0C)<<4)|((chid%4)+0x0C));
@@ -1486,8 +1393,8 @@
gpio_i2c_write(chipaddr, 0xFF, 0x00);
gpio_i2c_write(chipaddr, 0x56, 0x10);
gpio_i2c_write(chipaddr, 0xFF, 0x01);
- if(nvp6158_chip_id[chip] == NVP6158C_R0_ID || nvp6158_chip_id[chip] == NVP6168C_R0_ID)
- {
+ if(nvp6158_chip_id[chip] == NVP6158C_R0_ID ||
+ nvp6158_chip_id[chip] == NVP6168C_R0_ID) {
//6158C makes 2 bt656 ports to 1 bt1120 port. portsel=[1,2] to choose clock.
gpio_i2c_write(chipaddr, 0xC2, 0xdc);
gpio_i2c_write(chipaddr, 0xC3, 0xdc);
@@ -1497,9 +1404,7 @@
gpio_i2c_write(chipaddr, 0xC9, 0x22);
gpio_i2c_write(chipaddr, 0xCD, 0x1f); //74.25MHz clock
gpio_i2c_write(chipaddr, 0xCE, 0x1f); //74.25MHz clock
- }
- else
- {
+ } else {
//6158 makes 4 bt656 ports to 2 bt1120 port. portsel=[0,1] to choose clock.
gpio_i2c_write(chipaddr, 0xC0+portsel*4, 0xdc);
gpio_i2c_write(chipaddr, 0xC1+portsel*4, 0xdc);
@@ -1513,8 +1418,8 @@
gpio_i2c_write(chipaddr, 0xFF, 0x00);
gpio_i2c_write(chipaddr, 0x56, 0x10);
gpio_i2c_write(chipaddr, 0xFF, 0x01);
- if(nvp6158_chip_id[chip] == NVP6158C_R0_ID || nvp6158_chip_id[chip] == NVP6168C_R0_ID)
- {
+ if(nvp6158_chip_id[chip] == NVP6158C_R0_ID ||
+ nvp6158_chip_id[chip] == NVP6168C_R0_ID) {
//6158C makes 2 bt656 ports to 1 bt1120 port. portsel=[1,2] to choose clock.
gpio_i2c_write(chipaddr, 0xC2, 0x54);
gpio_i2c_write(chipaddr, 0xC3, 0x54);
@@ -1524,9 +1429,7 @@
gpio_i2c_write(chipaddr, 0xC9, 0x22);
gpio_i2c_write(chipaddr, 0xCD, 0x56); //148.5MHz clock
gpio_i2c_write(chipaddr, 0xCE, 0x56); //148.5MHz clock
- }
- else
- {
+ } else {
//6158 makes 4 bt656 ports to 2 bt1120 port. portsel=[0,1] to choose clock.
gpio_i2c_write(chipaddr, 0xC0+portsel*4, 0xdc);
gpio_i2c_write(chipaddr, 0xC1+portsel*4, 0xdc);
@@ -1570,8 +1473,8 @@
gpio_i2c_write(chipaddr, 0xFF, 0x00);
gpio_i2c_write(chipaddr, 0x56, 0x32);
gpio_i2c_write(chipaddr, 0xFF, 0x01);
- if(nvp6158_chip_id[chip] == NVP6158C_R0_ID || nvp6158_chip_id[chip] == NVP6168C_R0_ID)
- {
+ if(nvp6158_chip_id[chip] == NVP6158C_R0_ID ||
+ nvp6158_chip_id[chip] == NVP6168C_R0_ID) {
//6158C makes 2 bt656 ports to 1 bt1120 port. portsel=[1,2] to choose clock.
gpio_i2c_write(chipaddr, 0xC2, 0x54);
gpio_i2c_write(chipaddr, 0xC3, 0x76);
@@ -1582,9 +1485,7 @@
//dual_edge
gpio_i2c_write(chipaddr, 0xCD, 0x06); //74.25MHz clock
gpio_i2c_write(chipaddr, 0xCE, 0x06); //74.25MHz clock
- }
- else
- {
+ } else {
//6158 makes 4 bt656 ports to 2 bt1120 port. portsel=[0,1] to choose clock.
gpio_i2c_write(chipaddr, 0xC0+portsel*4, 0xdc);
gpio_i2c_write(chipaddr, 0xC1+portsel*4, 0xfe);
@@ -1599,8 +1500,8 @@
gpio_i2c_write(chipaddr, 0xFF, 0x00);
gpio_i2c_write(chipaddr, 0x56, 0x32);
gpio_i2c_write(chipaddr, 0xFF, 0x01);
- if(nvp6158_chip_id[chip] == NVP6158C_R0_ID || nvp6158_chip_id[chip] == NVP6168C_R0_ID)
- {
+ if(nvp6158_chip_id[chip] == NVP6158C_R0_ID ||
+ nvp6158_chip_id[chip] == NVP6168C_R0_ID) {
//6158C makes 2 bt656 ports to 1 bt1120 port. portsel=[1,2] to choose clock.
gpio_i2c_write(chipaddr, 0xC2, 0x54);
gpio_i2c_write(chipaddr, 0xC3, 0x76);
@@ -1610,9 +1511,7 @@
gpio_i2c_write(chipaddr, 0xC9, 0x88);
gpio_i2c_write(chipaddr, 0xCD, 0x40); //148.5MHz clock
gpio_i2c_write(chipaddr, 0xCE, 0x40); //148.5MHz clock
- }
- else
- {
+ } else {
//6158 makes 4 bt656 ports to 2 bt1120 port. portsel=[0,1] to choose clock.
gpio_i2c_write(chipaddr, 0xC0+portsel*4, 0xdc);
gpio_i2c_write(chipaddr, 0xC1+portsel*4, 0xfe);
@@ -1647,15 +1546,12 @@
portmode==NVP6158_OUTMODE_2MUX_BT1120S ||\
portmode==NVP6158_OUTMODE_2MUX_BT1120S_720P ||\
portmode==NVP6158_OUTMODE_2MUX_BT1120S_1080P ||\
- portmode==NVP6158_OUTMODE_4MUX_BT1120S)
- {
+ portmode==NVP6158_OUTMODE_4MUX_BT1120S) {
gpio_i2c_write(chipaddr, 0xFF, 0x01);
gpio_i2c_write(chipaddr, 0xA0+portsel, 0x20); //TM clock mode sel manual
printk("TM clock mode sel manual mode \n");
- }
- else
- {
+ } else {
gpio_i2c_write(chipaddr, 0xFF, 0x01);
gpio_i2c_write(chipaddr, 0xA0+portsel, 0x00); //TM clock mode sel auto
printk("TM clock mode sel auto mode \n");
@@ -1671,13 +1567,14 @@
enclk: enable clock pin, 1:enable,0:disable;
endata: enable data port, 1:enable,0:disable;
*/
-void nvp6158_set_portcontrol(const unsigned char chip, const unsigned char portsel, const unsigned char enclk, const unsigned char endata)
+void nvp6158_set_portcontrol(const unsigned char chip, const unsigned char portsel,
+ const unsigned char enclk, const unsigned char endata)
{
unsigned char reg_portctl;
gpio_i2c_write(nvp6158_iic_addr[chip], 0xFF, 0x01);
reg_portctl = gpio_i2c_read(nvp6158_iic_addr[chip], 0xCA);
- if(nvp6158_chip_id[chip] == NVP6158C_R0_ID || nvp6158_chip_id[chip] == NVP6168C_R0_ID)
- {
+ if(nvp6158_chip_id[chip] == NVP6158C_R0_ID ||
+ nvp6158_chip_id[chip] == NVP6168C_R0_ID) {
if(enclk == 1)
_SET_BIT(reg_portctl, (portsel+5));
else
@@ -1687,9 +1584,7 @@
_SET_BIT(reg_portctl, portsel);
else
_CLE_BIT(reg_portctl, portsel);
- }
- else if(nvp6158_chip_id[chip] == NVP6158_R0_ID)
- {
+ } else if(nvp6158_chip_id[chip] == NVP6158_R0_ID) {
if(enclk == 1)
_SET_BIT(reg_portctl, (portsel+4));
else
@@ -1724,8 +1619,7 @@
{
unsigned char ch = 0;
- for(ch = 0; ch < 4; ch++)
- {
+ for(ch = 0; ch < 4; ch++) {
gpio_i2c_write(nvp6158_iic_addr[chip], 0xff, 0x0a + (ch / 2));
gpio_i2c_write(nvp6158_iic_addr[chip], 0x00 + ( 0x80 * (ch % 2)), 0x80 );
--
Gitblit v1.6.2