V4L/DVB (13988): [STV090x] Configuration parameters adc1_range, adc2_range, tuner_bbgain
Add parameters adc1_range, adc2_range and tuner_bbgain to the config struct. Defaults: adc1_range = adc2_range = 2Vpp, tuner_bbgain = 10db Signed-off-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Manu Abraham <abraham.manu@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Родитель
41894b9700
Коммит
d8b5a8e449
|
@ -3237,7 +3237,10 @@ static enum stv090x_signal_state stv090x_algo(struct stv090x_state *state)
|
|||
goto err;
|
||||
|
||||
if (state->config->tuner_set_bbgain) {
|
||||
if (state->config->tuner_set_bbgain(fe, 10) < 0) /* 10dB */
|
||||
reg = state->config->tuner_bbgain;
|
||||
if (reg == 0)
|
||||
reg = 10; /* default: 10dB */
|
||||
if (state->config->tuner_set_bbgain(fe, reg) < 0)
|
||||
goto err_gateoff;
|
||||
}
|
||||
|
||||
|
@ -4446,6 +4449,20 @@ static int stv090x_setup(struct dvb_frontend *fe)
|
|||
state->internal->dev_ver);
|
||||
}
|
||||
|
||||
/* ADC1 range */
|
||||
reg = stv090x_read_reg(state, STV090x_TSTTNR1);
|
||||
STV090x_SETFIELD(reg, ADC1_INMODE_FIELD,
|
||||
(config->adc1_range == STV090x_ADC_1Vpp) ? 0 : 1);
|
||||
if (stv090x_write_reg(state, STV090x_TSTTNR1, reg) < 0)
|
||||
goto err;
|
||||
|
||||
/* ADC2 range */
|
||||
reg = stv090x_read_reg(state, STV090x_TSTTNR3);
|
||||
STV090x_SETFIELD(reg, ADC2_INMODE_FIELD,
|
||||
(config->adc2_range == STV090x_ADC_1Vpp) ? 0 : 1);
|
||||
if (stv090x_write_reg(state, STV090x_TSTTNR3, reg) < 0)
|
||||
goto err;
|
||||
|
||||
if (stv090x_write_reg(state, STV090x_TSTRES0, 0x80) < 0)
|
||||
goto err;
|
||||
if (stv090x_write_reg(state, STV090x_TSTRES0, 0x00) < 0)
|
||||
|
|
|
@ -60,6 +60,11 @@ enum stv090x_i2crpt {
|
|||
STV090x_RPTLEVEL_2 = 7,
|
||||
};
|
||||
|
||||
enum stv090x_adc_range {
|
||||
STV090x_ADC_2Vpp = 0,
|
||||
STV090x_ADC_1Vpp = 1
|
||||
};
|
||||
|
||||
struct stv090x_config {
|
||||
enum stv090x_device device;
|
||||
enum stv090x_mode demod_mode;
|
||||
|
@ -75,6 +80,10 @@ struct stv090x_config {
|
|||
|
||||
enum stv090x_i2crpt repeater_level;
|
||||
|
||||
u8 tuner_bbgain; /* default: 10db */
|
||||
enum stv090x_adc_range adc1_range; /* default: 2Vpp */
|
||||
enum stv090x_adc_range adc2_range; /* default: 2Vpp */
|
||||
|
||||
bool diseqc_envelope_mode;
|
||||
|
||||
int (*tuner_init) (struct dvb_frontend *fe);
|
||||
|
|
Загрузка…
Ссылка в новой задаче