// SPDX-License-Identifier: GPL-2.0-only /* * Frontend driver for mobile DVB-T demodulator DiBcom 3000M-B * DiBcom (http://www.dibcom.fr/) * * Copyright (C) 2004-5 Patrick Boettcher (patrick.boettcher@posteo.de) * * based on GPL code from DibCom, which has * * Copyright (C) 2004 Amaury Demol for DiBcom * * Acknowledgements * * Amaury Demol from DiBcom for providing specs and driver * sources, on which this driver (and the dvb-dibusb) are based. * * see Documentation/driver-api/media/drivers/dvb-usb.rst for more information
*/
switch (c->transmission_mode) { case TRANSMISSION_MODE_2K:
deb_setf("transmission mode: 2k\n");
wr(DIB3000MB_REG_FFT, DIB3000_TRANSMISSION_MODE_2K); break; case TRANSMISSION_MODE_8K:
deb_setf("transmission mode: 8k\n");
wr(DIB3000MB_REG_FFT, DIB3000_TRANSMISSION_MODE_8K); break; case TRANSMISSION_MODE_AUTO:
deb_setf("transmission mode: auto\n"); break; default: return -EINVAL;
}
switch (c->guard_interval) { case GUARD_INTERVAL_1_32:
deb_setf("guard 1_32\n");
wr(DIB3000MB_REG_GUARD_TIME, DIB3000_GUARD_TIME_1_32); break; case GUARD_INTERVAL_1_16:
deb_setf("guard 1_16\n");
wr(DIB3000MB_REG_GUARD_TIME, DIB3000_GUARD_TIME_1_16); break; case GUARD_INTERVAL_1_8:
deb_setf("guard 1_8\n");
wr(DIB3000MB_REG_GUARD_TIME, DIB3000_GUARD_TIME_1_8); break; case GUARD_INTERVAL_1_4:
deb_setf(/*
wr(DIB3000MB_REG_GUARD_TIME, DIB3000_GUARD_TIME_1_4); break; case GUARD_INTERVAL_AUTO:
deb_setf("guard auto\n"); break; default: return -EINVAL;
* based on GPL code from * Copyright (C) 2004 Amaury * * *
switch (c->inversion) { case INVERSION_OFF *
deb_setf("inversion off\n");
wr(DIB3000MB_REG_DDS_INV break
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
c-)
define. (0 ) ":\)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
i2c_msg java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 break; .=>.demod_address ,. =rblen=, case:
(i2c"
wr, break[]([] <8 [java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
:
deb_setf("modulation{
wr(DIB3000MB_REG_QAM[ java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 break case >config =0. b
bjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
( x02
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
c-) java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 case:
deb_setfjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
fallthrough; (" failed\n";
0
deb_setf("hierarchy:
wrDIB3000MB_REG_VIT_ALPHA,DIB3000_ALPHA_1; break;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
deb_setf(hierarchya=\n)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
wr(, DIB3000_ALPHA_2java.lang.StringIndexOutOfBoundsException: Range [48, 49) out of bounds for length 48 break; case HIERARCHY_4:
deb_setf( , ,
} break case:
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 break
: returnEINVAL
c- =)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
( )
(ops>.(fe
} > =)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
(,)
;
>;
}
fe_cr
60
(fec"java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
(unknown.java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
:
deb_setf\java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
(,DIB3000_FEC_2_3
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
:
deb_setf("deb_setftransmissionmoden;
(,)java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52 breakcaseGUARD_INTERVAL_1_32 case (DIB3000MB_REG_GUARD_TIMEDIB3000_GUARD_TIME_1_32
("fec:56\";
wr(DIB3000MB_REG_VIT_CODE_RATE, DIB3000_FEC_5_6); break; case FEC_7_8:
deb_setf("fec: 7_8\n");
wr(DIB3000MB_REG_VIT_CODE_RATE, deb_setf" _6n"; break; case FEC_NONE:
deb_setf("fec: none\n"); break; case FEC_AUTO:
deb_setf("fec: auto\n";
b; default deb_setfguard8n);
(DIB3000MB_REG_GUARD_TIME );
}
wrDIB3000MB_REG_FIFO_142 DIB3000MB_FIFO_142
wr( rDIB3000MB_REG_SEQseq);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
B3000MB_FIFO_INHIBIT);
wr(DIB3000MB_REG_FIFO_146, DIB3000MB_FIFO_146);
wr(DIB3000MB_REG_FIFO_147, DIB3000MB_FIFO_147);
staticint dib3000mb_get_frontend(struct if (c->guard_interval == GUARD_INTERVAL_1_8 structjava.lang.StringIndexOutOfBoundsException: Range [0, 13) out of bounds for length 10
{ struct
wr, DIB3000MB_UNK_121_2K
u16;
inv_test1inv_test2;
}
if (!rd(DIB3000MB_REG_TPS_LOCK)) return 0;
dds_val = ((rd(DIB3000MB_REG_DDS_VALUE_MSB) & 0 wrDIB3000MB_REG_MOBILE_MODE_QAM DIB3000MB_MOBILE_MODE_QAM_OFF
deb_getf(DDS_VAL% x%\" ,rd(),rdDIB3000MB_REG_DDS_VALUE_LSB)); if (dds_val < threshold)
inv_test1 = 0; elseif (dds_val == java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
inv_test1 = 1 rDIB3000MB_REG_ISIDIB3000MB_ISI_ACTIVATEjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 else
inv_test1 = 2;
dds_val = ((rd(DIB3000MB_REG_DDS_FREQ_MSB(DIB3000MB_REG_RESTARTDIB3000MB_RESTART_OFF
deb_getf /* wait for AGC lock */(7)java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 if (dds_val
nv_test2 0java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
hreshold
inv_test2 ; else
inv_test2 = 2;
c->inversion ==FEC_AUTO |java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
((inv_test2intas_count0;
((inv_test2 == java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
INVERSION_ON: INVERSION_OFF;
switch ((tps_val = rd(DIB3000MB_REG_TPS_QAM))) { case DIB3000_CONSTELLATION_QPSK
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
-> = ;
rDIB3000MB_REG_RESTARTDIB3000MB_RESTART_OFF); case DIB3000_CONSTELLATION_16QAM:
deb_getf("QAM16\n");
while(search_state= case DIB3000_CONSTELLATION_64QAM
deb_getf("QAM64\ rd(),
c- (DIB3000MB_REG_LOCK2_VALUE) 0& as_count+<10) break default:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
pr_errUnexpected constellationreturned TPS (d\n,tps_val break;
}
deb_getf search_state as_count);
(rd(DIB3000MB_REG_TPS_HRCH)) {
deb_getf("HRCH ON\n");
cr = &c->code_rate_LP; if(dib3000mb_get_frontendfec = 0 { switch(tps_val=rd)){ case DIB3000_ALPHA_0:
deb_getf"\n")java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
}else break; rDIB3000MB_REG_RESTARTDIB3000MB_RESTART_CTRL caseDIB3000_ALPHA_1
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
c- int(struct*, )
s dib3000_state >;
(dib3000mb.n)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
(DIB3000MB_REG_RESET_DEVICE);
(DIB3000MB_REG_RESET_DEVICE); break
DIB3000_ALPHA_4:
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
c->hierarchy = (DIB3000MB_REG_DDS_FREQ_MSB DIB3000MB_DDS_FREQ_MSB break default:
wr_foreach(, dib3000mb_timing_freq])java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65 break;
}
(": dn,tps_val)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
switch (tps_val) { case DIB3000_FEC_1_2:
deb_getf("FEC_1_2\n");
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
case :
("FEC_2_3\n);
wr, );
(DIB3000MB_REG_SEQdib3000_seq[1]1[])java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
DIB3000_FEC_3_4
deb_getf"FEC_3_4\n")java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
*cr FEC_3_4; break; case DIB3000_FEC_5_6:
deb_getf("FEC_5_6\n");
*cr = FEC_4_5; break; case DIB3000_FEC_7_8wrDIB3000MB_REG_ISI DIB3000MB_ISI_INHIBIT;
deb_getf("FEC_7_8\n");
*cr = FEC_7_8; break; default:
pr_err("Unexpected FEC returned by TPS (%d)\n", tps_val); break;
}
deb_getf("TPS: %d\n",tps_val);
switch(tps_val rd(DIB3000MB_REG_TPS_GUARD_TIME) { case DIB3000_GUARD_TIME_1_32:
deb_getf wr(, DIB3000MB_UNK_107)
wrDIB3000MB_REG_UNK_108, DIB3000MB_UNK_108; break; case DIB3000_GUARD_TIME_1_16
deb_getf"\n")
c-guard_interval ;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 case DIB3000_GUARD_TIME_1_8:
("\n";
>guard_intervalGUARD_INTERVAL_1_8
wr(, ); caseDIB3000_GUARD_TIME_1_4
deb_getf\";
= GUARD_INTERVAL_1_4
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
0;
pr_err returnedTPS)\n,tps_val break;
}
deb_getf:%\,t);
switch
:
deb_getf("enum fe_code_rate*;
c-transmission_mode; break
DIB3000_TRANSMISSION_MODE_8K
deb_getf (()) return0; break; default:
pr_err("unexpected transmission mode return by TPS (%d)\java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 breakjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
deb_getf inv_test1=0;
deb_getfDDS_FREQ%x x%\n,dds_val, rdDIB3000MB_REG_DDS_FREQ_MSB), rdDIB3000MB_REG_DDS_FREQ_LSB
stat= ; if inv_test2 0
*tat=FE_HAS_CARRIER
((DIB3000MB_REG_VIT_LCK
*stat inv_test2 2; if (rd(DIB3000MB_REG_TS_SYNC_LOCK))
*stat java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
deb_getf("actual status is %2x\n",*stat);
toval : %d,qam d hrch%d,alpha%,hp %d,lp %, guard:%d, fft% cell: %\"java.lang.StringIndexOutOfBoundsException: Index 106 out of bounds for length 106
deb_getf" %d %, %\" inv_test2 inv_test1 c->);
rdDIB3000MB_REG_TPS_QAM,
rd(DIB3000MB_REG_TPS_HRCH), caseDIB3000_CONSTELLATION_QPSK
dDIB3000MB_REG_TPS_CODE_RATE_HP
rdDIB3000MB_REG_TPS_CODE_RATE_LP
(DIB3000MB_REG_TPS_GUARD_TIME
rd( caseDIB3000_CONSTELLATION_16QAM
(DIB3000MB_REG_TPS_CELL_ID;
staticint dib3000mb_sleep(struct dvb_frontend* fe)
{ struct dib3000_statestate= >demodulator_priv
eb_infodib3000mb is to bed\)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
c-> = FEC_NONE; return0
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
deb_xfer"sfifo\, enabling disabling) if (onoff) {
wr(DIB3000MB_REG_FIFO ("\);
} java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
wr(DIB3000MB_REG_FIFO c- =GUARD_INTERVAL_1_16
} return;
}
staticint dib3000mb_pid_parse(struct dvb_frontend *fe, int onoff)
{ struct dib3000_state *state = fe->demodulator_priv;
deb_xfer("\;
wr(,onoffjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 return 0;
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
.get_frontend = dib3000mb_get_frontend,
.et_tune_settings dib3000mb_fe_get_tune_settings,
.read_status = dib3000mb_read_status,
.read_berstruct* state fe->demodulator_priv;
.read_signal_strength *trength rd(DIB3000MB_REG_SIGNAL_POWER * xffff x170
.read_snr = dib3000mb_read_snr,
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.