Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cae7a901 authored by Daniel Scheller's avatar Daniel Scheller Committed by Mauro Carvalho Chehab
Browse files

[media] dvb-frontends/stv0367: selectable QAM FEC Lock status register



In some configurations (due to different PIN config, wiring or so), the
QAM FECLock might be signalled using a different register than
F367CAB_QAMFEC_LOCK (e.g. F367CAB_DESCR_SYNCSTATE on Digital Devices hw),
so make that register selectable.

Signed-off-by: default avatarDaniel Scheller <d.scheller@gmx.net>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent b16338e3
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ struct stv0367cab_state {
	u32 freq_khz;			/* found frequency (in kHz)	*/
	u32 symbol_rate;		/* found symbol rate (in Bds)	*/
	enum fe_spectral_inversion spect_inv; /* Spectrum Inversion	*/
	u32 qamfec_status_reg;          /* status reg to poll for FEC Lock */
};

struct stv0367ter_state {
@@ -2145,7 +2146,8 @@ static int stv0367cab_read_status(struct dvb_frontend *fe,

	*status = 0;

	if (stv0367_readbits(state, F367CAB_QAMFEC_LOCK)) {
	if (stv0367_readbits(state, (state->cab_state->qamfec_status_reg ?
		state->cab_state->qamfec_status_reg : F367CAB_QAMFEC_LOCK))) {
		*status |= FE_HAS_LOCK;
		dprintk("%s: stv0367 has locked\n", __func__);
	}
@@ -2410,7 +2412,9 @@ enum stv0367_cab_signal_type stv0367cab_algo(struct stv0367_state *state,
			usleep_range(5000, 7000);
			LockTime += 5;
			QAMFEC_Lock = stv0367_readbits(state,
							F367CAB_QAMFEC_LOCK);
				(state->cab_state->qamfec_status_reg ?
				state->cab_state->qamfec_status_reg :
				F367CAB_QAMFEC_LOCK));
		} while (!QAMFEC_Lock && (LockTime < FECTimeOut));
	} else
		QAMFEC_Lock = 0;
@@ -2849,6 +2853,7 @@ struct dvb_frontend *stv0367cab_attach(const struct stv0367_config *config,
	state->i2c = i2c;
	state->config = config;
	cab_state->search_range = 280000;
	cab_state->qamfec_status_reg = F367CAB_QAMFEC_LOCK;
	state->cab_state = cab_state;
	state->fe.ops = stv0367cab_ops;
	state->fe.demodulator_priv = state;