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
918 918
919 /* If the standard is for satellite, convert frequencies to kHz */919 /* If the standard is for satellite, convert frequencies to kHz */
920 switch (c->delivery_system) {920 switch (c->delivery_system) {
921 case SYS_DSS:
921 case SYS_DVBS:922 case SYS_DVBS:
922 case SYS_DVBS2:923 case SYS_DVBS2:
923 case SYS_TURBO:924 case SYS_TURBO:
@@ -943,6 +944,7 @@ static u32 dvb_frontend_get_stepsize(struct dvb_frontend *fe) · 19 unmodified lines
943 u32 step = max(fe_step, tuner_step);944 u32 step = max(fe_step, tuner_step);
944 945
945 switch (c->delivery_system) {946 switch (c->delivery_system) {
947 case SYS_DSS:
946 case SYS_DVBS:948 case SYS_DVBS:
947 case SYS_DVBS2:949 case SYS_DVBS2:
948 case SYS_TURBO:950 case SYS_TURBO:
@@ -974,6 +976,7 @@ static int dvb_frontend_check_parameters(struct dvb_frontend *fe) · 25 unmodified lines
974 976
975 /* range check: symbol rate */977 /* range check: symbol rate */
976 switch (c->delivery_system) {978 switch (c->delivery_system) {
979 case SYS_DSS:
977 case SYS_DVBS:980 case SYS_DVBS:
978 case SYS_DVBS2:981 case SYS_DVBS2:
979 case SYS_TURBO:982 case SYS_TURBO:
@@ -1040,6 +1043,10 @@ static int dvb_frontend_clear_cache(struct dvb_frontend *fe) · 60 unmodified lines
1040 c->scrambling_sequence_index = 0;/* default sequence */1043 c->scrambling_sequence_index = 0;/* default sequence */
1041 1044
1042 switch (c->delivery_system) {1045 switch (c->delivery_system) {
1046 case SYS_DSS:
1047 c->modulation = QPSK;
1048 c->rolloff = ROLLOFF_20;
1049 break;
1043 case SYS_DVBS:1050 case SYS_DVBS:
1044 case SYS_DVBS2:1051 case SYS_DVBS2:
1045 case SYS_TURBO:1052 case SYS_TURBO:
@@ -1821,6 +1828,7 @@ static void prepare_tuning_algo_parameters(struct dvb_frontend *fe) · 775 unmodified lines
1821 } else {1828 } else {
1822 /* default values */1829 /* default values */
1823 switch (c->delivery_system) {1830 switch (c->delivery_system) {
1831 case SYS_DSS:
1824 case SYS_DVBS:1832 case SYS_DVBS:
1825 case SYS_DVBS2:1833 case SYS_DVBS2:
1826 case SYS_ISDBS:1834 case SYS_ISDBS:
@@ -2288,6 +2296,9 @@ static int dtv_set_frontend(struct dvb_frontend *fe) · 461 unmodified lines
2288 case SYS_DVBC_ANNEX_C:2296 case SYS_DVBC_ANNEX_C:
2289 rolloff = 113;2297 rolloff = 113;
2290 break;2298 break;
2299 case SYS_DSS:
2300 rolloff = 120;
2301 break;
2291 case SYS_DVBS:2302 case SYS_DVBS:
2292 case SYS_TURBO:2303 case SYS_TURBO:
2293 case SYS_ISDBS:2304 case SYS_ISDBS: