History

media: dvb_frontend: add missing DSS switch cases

While the documentation mentions the delivery system DSS as a satellite system, it was missing from all but one switch statement in the DVB frontend code, leading to tuning failures, because the frequency was not correctly handled as being in kHz rather than Hz. Add the missing switch cases so that DSS is handled like the other satellite systems. For the rolloff, assume 0.20 as per one publication found via Internet search.

Robert Schlabbach committed 4 years ago

Commit e2a22711 parent e6431a01 file · +11 −0Browse files

Unified · Split

drivers/media/dvb-core/dvb_frontend.c+11−0
@@ -918,6 +918,7 @@ static void dvb_frontend_get_frequency_limits(struct dvb_frontend *fe, · 917 unmodified lines
918918
919919 /* If the standard is for satellite, convert frequencies to kHz */
920920 switch (c->delivery_system) {
921+ case SYS_DSS:
921922 case SYS_DVBS:
922923 case SYS_DVBS2:
923924 case SYS_TURBO:
@@ -943,6 +944,7 @@ static u32 dvb_frontend_get_stepsize(struct dvb_frontend *fe) · 19 unmodified lines
943944 u32 step = max(fe_step, tuner_step);
944945
945946 switch (c->delivery_system) {
947+ case SYS_DSS:
946948 case SYS_DVBS:
947949 case SYS_DVBS2:
948950 case SYS_TURBO:
@@ -974,6 +976,7 @@ static int dvb_frontend_check_parameters(struct dvb_frontend *fe) · 25 unmodified lines
974976
975977 /* range check: symbol rate */
976978 switch (c->delivery_system) {
979+ case SYS_DSS:
977980 case SYS_DVBS:
978981 case SYS_DVBS2:
979982 case SYS_TURBO:
@@ -1040,6 +1043,10 @@ static int dvb_frontend_clear_cache(struct dvb_frontend *fe) · 60 unmodified lines
10401043 c->scrambling_sequence_index = 0;/* default sequence */
10411044
10421045 switch (c->delivery_system) {
1046+ case SYS_DSS:
1047+ c->modulation = QPSK;
1048+ c->rolloff = ROLLOFF_20;
1049+ break;
10431050 case SYS_DVBS:
10441051 case SYS_DVBS2:
10451052 case SYS_TURBO:
@@ -1821,6 +1828,7 @@ static void prepare_tuning_algo_parameters(struct dvb_frontend *fe) · 775 unmodified lines
18211828 } else {
18221829 /* default values */
18231830 switch (c->delivery_system) {
1831+ case SYS_DSS:
18241832 case SYS_DVBS:
18251833 case SYS_DVBS2:
18261834 case SYS_ISDBS:
@@ -2288,6 +2296,9 @@ static int dtv_set_frontend(struct dvb_frontend *fe) · 461 unmodified lines
22882296 case SYS_DVBC_ANNEX_C:
22892297 rolloff = 113;
22902298 break;
2299+ case SYS_DSS:
2300+ rolloff = 120;
2301+ break;
22912302 case SYS_DVBS:
22922303 case SYS_TURBO:
22932304 case SYS_ISDBS: