media: dvb-frontends/stid135: Optimized ts_nosync option.

This commit is contained in:
CrazyCat
2023-07-12 22:43:34 +03:00
parent face8d83a5
commit f70730096e
4 changed files with 8 additions and 16 deletions

View File

@@ -283,8 +283,7 @@ struct fe_sat_init_params {
enum fe_sat_rolloff roll_off; /* NYQUIST Filter value (used for DVBS1,DSS, DVBS2 is automatic)*/ enum fe_sat_rolloff roll_off; /* NYQUIST Filter value (used for DVBS1,DSS, DVBS2 is automatic)*/
enum fe_sat_iq_inversion tuner_iq_inversion; /* Tuner 1 Global IQ setting (coonction of IQ from the tuner1 to the demod */ enum fe_sat_iq_inversion tuner_iq_inversion; /* Tuner 1 Global IQ setting (coonction of IQ from the tuner1 to the demod */
enum fe_sat_search_standard standard; enum fe_sat_search_standard standard;
BOOL ts_nosync; BOOL ts_nosync;
BOOL mis;
}; };
/**************************************************************** /****************************************************************

View File

@@ -55,10 +55,6 @@ static unsigned int ts_nosync;
module_param(ts_nosync, int, 0644); module_param(ts_nosync, int, 0644);
MODULE_PARM_DESC(ts_nosync, "TS FIFO Minimum latence mode (default:off)"); MODULE_PARM_DESC(ts_nosync, "TS FIFO Minimum latence mode (default:off)");
static unsigned int mis;
module_param(mis,int,0644);
MODULE_PARM_DESC(mis,"someone search the multi-stream signal lose packets,please turn on it(default:off)");
struct stv_base { struct stv_base {
struct list_head stvlist; struct list_head stvlist;
@@ -145,10 +141,9 @@ static int stid135_probe(struct stv *state)
init_params.rf_input_type = 0xF; // Single ended RF input on Oxford valid board rev2 init_params.rf_input_type = 0xF; // Single ended RF input on Oxford valid board rev2
init_params.roll_off = FE_SAT_35; // NYQUIST Filter value (used for DVBS1/DSS, DVBS2 is automatic) init_params.roll_off = FE_SAT_35; // NYQUIST Filter value (used for DVBS1/DSS, DVBS2 is automatic)
init_params.tuner_iq_inversion = FE_SAT_IQ_NORMAL; init_params.tuner_iq_inversion = FE_SAT_IQ_NORMAL;
init_params.ts_nosync = ts_nosync; init_params.ts_nosync = ts_nosync;
init_params.mis = mis;
err = fe_stid135_init(&init_params,&state->base->handle); err = fe_stid135_init(&init_params,&state->base->handle);
if (err != FE_LLA_NO_ERROR) { if (err != FE_LLA_NO_ERROR) {
dev_err(&state->base->i2c->dev, "%s: fe_stid135_init error %d !\n", __func__, err); dev_err(&state->base->i2c->dev, "%s: fe_stid135_init error %d !\n", __func__, err);
return -EINVAL; return -EINVAL;

View File

@@ -3488,8 +3488,7 @@ fe_lla_error_t fe_stid135_init (struct fe_sat_init_params *pInit,
pParams->internal_dcdc = pInit->internal_dcdc; pParams->internal_dcdc = pInit->internal_dcdc;
pParams->internal_ldo = pInit->internal_ldo; pParams->internal_ldo = pInit->internal_ldo;
pParams->rf_input_type = pInit->rf_input_type; pParams->rf_input_type = pInit->rf_input_type;
pParams->ts_nosync = pInit->ts_nosync; pParams->ts_nosync = pInit->ts_nosync;
pParams->mis = pInit->mis;
/* Init for PID filtering feature */ /* Init for PID filtering feature */
for(i=0;i<8;i++) for(i=0;i<8;i++)
pParams->pid_flt[i].first_disable_all_command = TRUE; pParams->pid_flt[i].first_disable_all_command = TRUE;
@@ -4888,8 +4887,8 @@ fe_lla_error_t fe_stid135_manage_matype_info(fe_stid135_handle_t handle,
/* If TS/GS = 11 (MPEG TS), reset matype force bit and do NOT load frames in MPEG packets */ /* If TS/GS = 11 (MPEG TS), reset matype force bit and do NOT load frames in MPEG packets */
if(((genuine_matype>>6) & 0x3) == 0x3) { if(((genuine_matype>>6) & 0x3) == 0x3) {
/* "TS FIFO Minimum latence mode */ /* "TS FIFO Minimum latence mode */
if(!pParams->mis) if(pParams->ts_nosync)
error |= ChipSetField(pParams->handle_demod, FLD_FC8CODEW_DVBSX_HWARE_TSSTATE1_TSOUT_NOSYNC(Demod), pParams->ts_nosync ? 1 : 0); error |= ChipSetField(pParams->handle_demod, FLD_FC8CODEW_DVBSX_HWARE_TSSTATE1_TSOUT_NOSYNC(Demod), 1);
/* Unforce HEM mode */ /* Unforce HEM mode */
error |= ChipSetField(pParams->handle_demod, FLD_FC8CODEW_DVBSX_PKTDELIN_PDELCTRL0_HEMMODE_SELECT(Demod), 0); error |= ChipSetField(pParams->handle_demod, FLD_FC8CODEW_DVBSX_PKTDELIN_PDELCTRL0_HEMMODE_SELECT(Demod), 0);
/* Go back to reset value settings */ /* Go back to reset value settings */

View File

@@ -252,14 +252,13 @@ struct fe_stid135_internal_param {
demod_search_range[8]; /* Search range demod_search_range[8]; /* Search range
(Hz) */ (Hz) */
u32 quartz;/* Demod Reference frequency (Hz) */ u32 quartz;/* Demod Reference frequency (Hz) */
u8 internal_dcdc; /* DCDC supply either internal or external */ u8 internal_dcdc; /* DCDC supply either internal or external */
u8 internal_ldo; /* LDO supply either internal or external */ u8 internal_ldo; /* LDO supply either internal or external */
u8 rf_input_type; /* VGLNA input type, either single ended or differential */ u8 rf_input_type; /* VGLNA input type, either single ended or differential */
u32 master_clock, /* Master clock frequency */ u32 master_clock, /* Master clock frequency */
lo_frequency; /* Temporary definition lo_frequency; /* Temporary definition
for LO frequency */ for LO frequency */
BOOL ts_nosync; BOOL ts_nosync;
BOOL mis;
enum fe_sat_iq_inversion tuner_global_iqv_inv[8]; /* Global I,Q enum fe_sat_iq_inversion tuner_global_iqv_inv[8]; /* Global I,Q
inversion I,Q conection from tuner to inversion I,Q conection from tuner to
demod */ demod */