Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: dvb: represent min/max/step/tolerance freqs in Hz

Right now, satellite frontend drivers specify frequencies in kHz,
while terrestrial/cable ones specify in Hz. That's confusing
for developers.

However, the main problem is that universal frontends capable
of handling both satellite and non-satelite delivery systems
are appearing. We end by needing to hack the drivers in
order to support such hybrid frontends.

So, convert everything to specify frontend frequencies in Hz.

Tested-by: Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>

+428 -399
+3 -3
drivers/media/common/siano/smsdvb-main.c
··· 1047 1047 static const struct dvb_frontend_ops smsdvb_fe_ops = { 1048 1048 .info = { 1049 1049 .name = "Siano Mobile Digital MDTV Receiver", 1050 - .frequency_min = 44250000, 1051 - .frequency_max = 867250000, 1052 - .frequency_stepsize = 250000, 1050 + .frequency_min_hz = 44250 * kHz, 1051 + .frequency_max_hz = 867250 * kHz, 1052 + .frequency_stepsize_hz = 250 * kHz, 1053 1053 .caps = FE_CAN_INVERSION_AUTO | 1054 1054 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 1055 1055 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
+59 -25
drivers/media/dvb-core/dvb_frontend.c
··· 894 894 } 895 895 896 896 static void dvb_frontend_get_frequency_limits(struct dvb_frontend *fe, 897 - u32 *freq_min, u32 *freq_max) 897 + u32 *freq_min, u32 *freq_max, 898 + u32 *tolerance) 898 899 { 899 900 struct dtv_frontend_properties *c = &fe->dtv_property_cache; 900 - __u32 tuner_min = fe->ops.tuner_ops.info.frequency_min_hz; 901 - __u32 tuner_max = fe->ops.tuner_ops.info.frequency_max_hz; 901 + u32 tuner_min = fe->ops.tuner_ops.info.frequency_min_hz; 902 + u32 tuner_max = fe->ops.tuner_ops.info.frequency_max_hz; 903 + u32 frontend_min = fe->ops.info.frequency_min_hz; 904 + u32 frontend_max = fe->ops.info.frequency_max_hz; 905 + 906 + *freq_min = max(frontend_min, tuner_min); 907 + 908 + if (frontend_max == 0) 909 + *freq_max = tuner_max; 910 + else if (tuner_max == 0) 911 + *freq_max = frontend_max; 912 + else 913 + *freq_max = min(frontend_max, tuner_max); 914 + 915 + if (*freq_min == 0 || *freq_max == 0) 916 + dev_warn(fe->dvb->device, 917 + "DVB: adapter %i frontend %u frequency limits undefined - fix the driver\n", 918 + fe->dvb->num, fe->id); 902 919 903 920 /* If the standard is for satellite, convert frequencies to kHz */ 904 921 switch (c->delivery_system) { ··· 923 906 case SYS_DVBS2: 924 907 case SYS_TURBO: 925 908 case SYS_ISDBS: 926 - tuner_max /= kHz; 927 - tuner_min /= kHz; 909 + *freq_min /= kHz; 910 + *freq_max /= kHz; 911 + if (tolerance) 912 + *tolerance = fe->ops.info.frequency_tolerance_hz / kHz; 913 + 914 + break; 915 + default: 916 + if (tolerance) 917 + *tolerance = fe->ops.info.frequency_tolerance_hz; 918 + break; 919 + } 920 + } 921 + 922 + static u32 dvb_frontend_get_stepsize(struct dvb_frontend *fe) 923 + { 924 + struct dtv_frontend_properties *c = &fe->dtv_property_cache; 925 + u32 step = fe->ops.info.frequency_stepsize_hz; 926 + switch (c->delivery_system) { 927 + case SYS_DVBS: 928 + case SYS_DVBS2: 929 + case SYS_TURBO: 930 + case SYS_ISDBS: 931 + step /= kHz; 928 932 break; 929 933 default: 930 934 break; 931 935 } 932 936 933 - *freq_min = max(fe->ops.info.frequency_min, tuner_min); 934 - 935 - if (fe->ops.info.frequency_max == 0) 936 - *freq_max = tuner_max; 937 - else if (tuner_max == 0) 938 - *freq_max = fe->ops.info.frequency_max; 939 - else 940 - *freq_max = min(fe->ops.info.frequency_max, tuner_max); 941 - 942 - if (*freq_min == 0 || *freq_max == 0) 943 - dev_warn(fe->dvb->device, 944 - "DVB: adapter %i frontend %u frequency limits undefined - fix the driver\n", 945 - fe->dvb->num, fe->id); 937 + return step; 946 938 } 947 939 948 940 static int dvb_frontend_check_parameters(struct dvb_frontend *fe) ··· 961 935 u32 freq_max; 962 936 963 937 /* range check: frequency */ 964 - dvb_frontend_get_frequency_limits(fe, &freq_min, &freq_max); 938 + dvb_frontend_get_frequency_limits(fe, &freq_min, &freq_max, NULL); 965 939 if ((freq_min && c->frequency < freq_min) || 966 940 (freq_max && c->frequency > freq_max)) { 967 941 dev_warn(fe->dvb->device, "DVB: adapter %i frontend %i frequency %u out of range (%u..%u)\n", ··· 2287 2261 case SYS_ISDBT: 2288 2262 case SYS_DTMB: 2289 2263 fepriv->min_delay = HZ / 20; 2290 - fepriv->step_size = fe->ops.info.frequency_stepsize * 2; 2291 - fepriv->max_drift = (fe->ops.info.frequency_stepsize * 2) + 1; 2264 + fepriv->step_size = dvb_frontend_get_stepsize(fe) * 2; 2265 + fepriv->max_drift = (dvb_frontend_get_stepsize(fe) * 2) + 1; 2292 2266 break; 2293 2267 default: 2294 2268 /* ··· 2417 2391 2418 2392 case FE_GET_INFO: { 2419 2393 struct dvb_frontend_info *info = parg; 2394 + memset(info, 0, sizeof(*info)); 2420 2395 2421 - memcpy(info, &fe->ops.info, sizeof(struct dvb_frontend_info)); 2422 - dvb_frontend_get_frequency_limits(fe, &info->frequency_min, &info->frequency_max); 2396 + strcpy(info->name, fe->ops.info.name); 2397 + info->symbol_rate_min = fe->ops.info.symbol_rate_min; 2398 + info->symbol_rate_max = fe->ops.info.symbol_rate_max; 2399 + info->symbol_rate_tolerance = fe->ops.info.symbol_rate_tolerance; 2400 + info->caps = fe->ops.info.caps; 2401 + info->frequency_stepsize = dvb_frontend_get_stepsize(fe); 2402 + dvb_frontend_get_frequency_limits(fe, &info->frequency_min, 2403 + &info->frequency_max, 2404 + &info->frequency_tolerance); 2423 2405 2424 2406 /* 2425 2407 * Associate the 4 delivery systems supported by DVBv3 ··· 2457 2423 dev_err(fe->dvb->device, 2458 2424 "%s: doesn't know how to handle a DVBv3 call to delivery system %i\n", 2459 2425 __func__, c->delivery_system); 2460 - fe->ops.info.type = FE_OFDM; 2426 + info->type = FE_OFDM; 2461 2427 } 2462 2428 dev_dbg(fe->dvb->device, "%s: current delivery system on cache: %d, V3 type: %d\n", 2463 - __func__, c->delivery_system, fe->ops.info.type); 2429 + __func__, c->delivery_system, info->type); 2464 2430 2465 2431 /* Set CAN_INVERSION_AUTO bit on in other than oneshot mode */ 2466 2432 if (!(fepriv->tune_mode_flags & FE_TUNE_MODE_ONESHOT))
+3 -4
drivers/media/dvb-frontends/af9013.c
··· 1136 1136 .delsys = { SYS_DVBT }, 1137 1137 .info = { 1138 1138 .name = "Afatech AF9013", 1139 - .frequency_min = 174000000, 1140 - .frequency_max = 862000000, 1141 - .frequency_stepsize = 250000, 1142 - .frequency_tolerance = 0, 1139 + .frequency_min_hz = 174 * MHz, 1140 + .frequency_max_hz = 862 * MHz, 1141 + .frequency_stepsize_hz = 250 * kHz, 1143 1142 .caps = FE_CAN_FEC_1_2 | 1144 1143 FE_CAN_FEC_2_3 | 1145 1144 FE_CAN_FEC_3_4 |
+3 -4
drivers/media/dvb-frontends/af9033.c
··· 1020 1020 .delsys = {SYS_DVBT}, 1021 1021 .info = { 1022 1022 .name = "Afatech AF9033 (DVB-T)", 1023 - .frequency_min = 174000000, 1024 - .frequency_max = 862000000, 1025 - .frequency_stepsize = 250000, 1026 - .frequency_tolerance = 0, 1023 + .frequency_min_hz = 174 * MHz, 1024 + .frequency_max_hz = 862 * MHz, 1025 + .frequency_stepsize_hz = 250 * kHz, 1027 1026 .caps = FE_CAN_FEC_1_2 | 1028 1027 FE_CAN_FEC_2_3 | 1029 1028 FE_CAN_FEC_3_4 |
+3 -3
drivers/media/dvb-frontends/as102_fe.c
··· 419 419 .delsys = { SYS_DVBT }, 420 420 .info = { 421 421 .name = "Abilis AS102 DVB-T", 422 - .frequency_min = 174000000, 423 - .frequency_max = 862000000, 424 - .frequency_stepsize = 166667, 422 + .frequency_min_hz = 174 * MHz, 423 + .frequency_max_hz = 862 * MHz, 424 + .frequency_stepsize_hz = 166667, 425 425 .caps = FE_CAN_INVERSION_AUTO 426 426 | FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 427 427 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO
+3 -3
drivers/media/dvb-frontends/atbm8830.c
··· 428 428 .delsys = { SYS_DTMB }, 429 429 .info = { 430 430 .name = "AltoBeam ATBM8830/8831 DMB-TH", 431 - .frequency_min = 474000000, 432 - .frequency_max = 858000000, 433 - .frequency_stepsize = 10000, 431 + .frequency_min_hz = 474 * MHz, 432 + .frequency_max_hz = 858 * MHz, 433 + .frequency_stepsize_hz = 10 * kHz, 434 434 .caps = 435 435 FE_CAN_FEC_AUTO | 436 436 FE_CAN_QAM_AUTO |
+3 -3
drivers/media/dvb-frontends/au8522_dig.c
··· 897 897 .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, 898 898 .info = { 899 899 .name = "Auvitek AU8522 QAM/8VSB Frontend", 900 - .frequency_min = 54000000, 901 - .frequency_max = 858000000, 902 - .frequency_stepsize = 62500, 900 + .frequency_min_hz = 54 * MHz, 901 + .frequency_max_hz = 858 * MHz, 902 + .frequency_stepsize_hz = 62500, 903 903 .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB 904 904 }, 905 905
+2 -4
drivers/media/dvb-frontends/bcm3510.c
··· 840 840 .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, 841 841 .info = { 842 842 .name = "Broadcom BCM3510 VSB/QAM frontend", 843 - .frequency_min = 54000000, 844 - .frequency_max = 803000000, 845 - /* stepsize is just a guess */ 846 - .frequency_stepsize = 0, 843 + .frequency_min_hz = 54 * MHz, 844 + .frequency_max_hz = 803 * MHz, 847 845 .caps = 848 846 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 849 847 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
+3 -3
drivers/media/dvb-frontends/cx22700.c
··· 412 412 .delsys = { SYS_DVBT }, 413 413 .info = { 414 414 .name = "Conexant CX22700 DVB-T", 415 - .frequency_min = 470000000, 416 - .frequency_max = 860000000, 417 - .frequency_stepsize = 166667, 415 + .frequency_min_hz = 470 * MHz, 416 + .frequency_max_hz = 860 * MHz, 417 + .frequency_stepsize_hz = 166667, 418 418 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 419 419 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | 420 420 FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
+3 -3
drivers/media/dvb-frontends/cx22702.c
··· 622 622 .delsys = { SYS_DVBT }, 623 623 .info = { 624 624 .name = "Conexant CX22702 DVB-T", 625 - .frequency_min = 177000000, 626 - .frequency_max = 858000000, 627 - .frequency_stepsize = 166666, 625 + .frequency_min_hz = 177 * MHz, 626 + .frequency_max_hz = 858 * MHz, 627 + .frequency_stepsize_hz = 166666, 628 628 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 629 629 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | 630 630 FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO |
+4 -4
drivers/media/dvb-frontends/cx24110.c
··· 629 629 .delsys = { SYS_DVBS }, 630 630 .info = { 631 631 .name = "Conexant CX24110 DVB-S", 632 - .frequency_min = 950000, 633 - .frequency_max = 2150000, 634 - .frequency_stepsize = 1011, /* kHz for QPSK frontends */ 635 - .frequency_tolerance = 29500, 632 + .frequency_min_hz = 950 * MHz, 633 + .frequency_max_hz = 2150 * MHz, 634 + .frequency_stepsize_hz = 1011 * kHz, 635 + .frequency_tolerance_hz = 29500 * kHz, 636 636 .symbol_rate_min = 1000000, 637 637 .symbol_rate_max = 45000000, 638 638 .caps = FE_CAN_INVERSION_AUTO |
+4 -4
drivers/media/dvb-frontends/cx24116.c
··· 1465 1465 .delsys = { SYS_DVBS, SYS_DVBS2 }, 1466 1466 .info = { 1467 1467 .name = "Conexant CX24116/CX24118", 1468 - .frequency_min = 950000, 1469 - .frequency_max = 2150000, 1470 - .frequency_stepsize = 1011, /* kHz for QPSK frontends */ 1471 - .frequency_tolerance = 5000, 1468 + .frequency_min_hz = 950 * MHz, 1469 + .frequency_max_hz = 2150 * MHz, 1470 + .frequency_stepsize_hz = 1011 * kHz, 1471 + .frequency_tolerance_hz = 5 * MHz, 1472 1472 .symbol_rate_min = 1000000, 1473 1473 .symbol_rate_max = 45000000, 1474 1474 .caps = FE_CAN_INVERSION_AUTO |
+4 -4
drivers/media/dvb-frontends/cx24117.c
··· 1622 1622 .delsys = { SYS_DVBS, SYS_DVBS2 }, 1623 1623 .info = { 1624 1624 .name = "Conexant CX24117/CX24132", 1625 - .frequency_min = 950000, 1626 - .frequency_max = 2150000, 1627 - .frequency_stepsize = 1011, /* kHz for QPSK frontends */ 1628 - .frequency_tolerance = 5000, 1625 + .frequency_min_hz = 950 * MHz, 1626 + .frequency_max_hz = 2150 * MHz, 1627 + .frequency_stepsize_hz = 1011 * kHz, 1628 + .frequency_tolerance_hz = 5 * MHz, 1629 1629 .symbol_rate_min = 1000000, 1630 1630 .symbol_rate_max = 45000000, 1631 1631 .caps = FE_CAN_INVERSION_AUTO |
+4 -4
drivers/media/dvb-frontends/cx24120.c
··· 1555 1555 .delsys = { SYS_DVBS, SYS_DVBS2 }, 1556 1556 .info = { 1557 1557 .name = "Conexant CX24120/CX24118", 1558 - .frequency_min = 950000, 1559 - .frequency_max = 2150000, 1560 - .frequency_stepsize = 1011, /* kHz for QPSK frontends */ 1561 - .frequency_tolerance = 5000, 1558 + .frequency_min_hz = 950 * MHz, 1559 + .frequency_max_hz = 2150 * MHz, 1560 + .frequency_stepsize_hz = 1011 * kHz, 1561 + .frequency_tolerance_hz = 5 * MHz, 1562 1562 .symbol_rate_min = 1000000, 1563 1563 .symbol_rate_max = 45000000, 1564 1564 .caps = FE_CAN_INVERSION_AUTO |
+4 -4
drivers/media/dvb-frontends/cx24123.c
··· 1111 1111 .delsys = { SYS_DVBS }, 1112 1112 .info = { 1113 1113 .name = "Conexant CX24123/CX24109", 1114 - .frequency_min = 950000, 1115 - .frequency_max = 2150000, 1116 - .frequency_stepsize = 1011, /* kHz for QPSK frontends */ 1117 - .frequency_tolerance = 5000, 1114 + .frequency_min_hz = 950 * MHz, 1115 + .frequency_max_hz = 2150 * MHz, 1116 + .frequency_stepsize_hz = 1011 * kHz, 1117 + .frequency_tolerance_hz = 5 * MHz, 1118 1118 .symbol_rate_min = 1000000, 1119 1119 .symbol_rate_max = 45000000, 1120 1120 .caps = FE_CAN_INVERSION_AUTO |
+2 -2
drivers/media/dvb-frontends/cxd2820r_t.c
··· 431 431 struct dvb_frontend_tune_settings *s) 432 432 { 433 433 s->min_delay_ms = 500; 434 - s->step_size = fe->ops.info.frequency_stepsize * 2; 435 - s->max_drift = (fe->ops.info.frequency_stepsize * 2) + 1; 434 + s->step_size = fe->ops.info.frequency_stepsize_hz * 2; 435 + s->max_drift = (fe->ops.info.frequency_stepsize_hz * 2) + 1; 436 436 437 437 return 0; 438 438 }
+2 -2
drivers/media/dvb-frontends/cxd2820r_t2.c
··· 426 426 struct dvb_frontend_tune_settings *s) 427 427 { 428 428 s->min_delay_ms = 1500; 429 - s->step_size = fe->ops.info.frequency_stepsize * 2; 430 - s->max_drift = (fe->ops.info.frequency_stepsize * 2) + 1; 429 + s->step_size = fe->ops.info.frequency_stepsize_hz * 2; 430 + s->max_drift = (fe->ops.info.frequency_stepsize_hz * 2) + 1; 431 431 432 432 return 0; 433 433 }
+4 -5
drivers/media/dvb-frontends/cxd2841er.c
··· 3942 3942 .delsys = { SYS_DVBS, SYS_DVBS2 }, 3943 3943 .info = { 3944 3944 .name = "Sony CXD2841ER DVB-S/S2 demodulator", 3945 - .frequency_min = 500000, 3946 - .frequency_max = 2500000, 3947 - .frequency_stepsize = 0, 3945 + .frequency_min_hz = 500 * MHz, 3946 + .frequency_max_hz = 2500 * MHz, 3948 3947 .symbol_rate_min = 1000000, 3949 3948 .symbol_rate_max = 45000000, 3950 3949 .symbol_rate_tolerance = 500, ··· 3987 3988 FE_CAN_HIERARCHY_AUTO | 3988 3989 FE_CAN_MUTE_TS | 3989 3990 FE_CAN_2G_MODULATION, 3990 - .frequency_min = 42000000, 3991 - .frequency_max = 1002000000, 3991 + .frequency_min_hz = 42 * MHz, 3992 + .frequency_max_hz = 1002 * MHz, 3992 3993 .symbol_rate_min = 870000, 3993 3994 .symbol_rate_max = 11700000 3994 3995 },
+3 -3
drivers/media/dvb-frontends/cxd2880/cxd2880_top.c
··· 1833 1833 static struct dvb_frontend_ops cxd2880_dvbt_t2_ops = { 1834 1834 .info = { 1835 1835 .name = "Sony CXD2880", 1836 - .frequency_min = 174000000, 1837 - .frequency_max = 862000000, 1838 - .frequency_stepsize = 1000, 1836 + .frequency_min_hz = 174 * MHz, 1837 + .frequency_max_hz = 862 * MHz, 1838 + .frequency_stepsize_hz = 1 * kHz, 1839 1839 .caps = FE_CAN_INVERSION_AUTO | 1840 1840 FE_CAN_FEC_1_2 | 1841 1841 FE_CAN_FEC_2_3 |
+3 -3
drivers/media/dvb-frontends/dib3000mb.c
··· 786 786 .delsys = { SYS_DVBT }, 787 787 .info = { 788 788 .name = "DiBcom 3000M-B DVB-T", 789 - .frequency_min = 44250000, 790 - .frequency_max = 867250000, 791 - .frequency_stepsize = 62500, 789 + .frequency_min_hz = 44250 * kHz, 790 + .frequency_max_hz = 867250 * kHz, 791 + .frequency_stepsize_hz = 62500, 792 792 .caps = FE_CAN_INVERSION_AUTO | 793 793 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 794 794 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
+3 -3
drivers/media/dvb-frontends/dib3000mc.c
··· 944 944 .delsys = { SYS_DVBT }, 945 945 .info = { 946 946 .name = "DiBcom 3000MC/P", 947 - .frequency_min = 44250000, 948 - .frequency_max = 867250000, 949 - .frequency_stepsize = 62500, 947 + .frequency_min_hz = 44250 * kHz, 948 + .frequency_max_hz = 867250 * kHz, 949 + .frequency_stepsize_hz = 62500, 950 950 .caps = FE_CAN_INVERSION_AUTO | 951 951 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 952 952 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
+3 -3
drivers/media/dvb-frontends/dib7000m.c
··· 1443 1443 .delsys = { SYS_DVBT }, 1444 1444 .info = { 1445 1445 .name = "DiBcom 7000MA/MB/PA/PB/MC", 1446 - .frequency_min = 44250000, 1447 - .frequency_max = 867250000, 1448 - .frequency_stepsize = 62500, 1446 + .frequency_min_hz = 44250 * kHz, 1447 + .frequency_max_hz = 867250 * kHz, 1448 + .frequency_stepsize_hz = 62500, 1449 1449 .caps = FE_CAN_INVERSION_AUTO | 1450 1450 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 1451 1451 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
+3 -3
drivers/media/dvb-frontends/dib7000p.c
··· 2824 2824 .delsys = { SYS_DVBT }, 2825 2825 .info = { 2826 2826 .name = "DiBcom 7000PC", 2827 - .frequency_min = 44250000, 2828 - .frequency_max = 867250000, 2829 - .frequency_stepsize = 62500, 2827 + .frequency_min_hz = 44250 * kHz, 2828 + .frequency_max_hz = 867250 * kHz, 2829 + .frequency_stepsize_hz = 62500, 2830 2830 .caps = FE_CAN_INVERSION_AUTO | 2831 2831 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 2832 2832 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
+3 -3
drivers/media/dvb-frontends/dib8000.c
··· 4390 4390 .delsys = { SYS_ISDBT }, 4391 4391 .info = { 4392 4392 .name = "DiBcom 8000 ISDB-T", 4393 - .frequency_min = 44250000, 4394 - .frequency_max = 867250000, 4395 - .frequency_stepsize = 62500, 4393 + .frequency_min_hz = 44250 * kHz, 4394 + .frequency_max_hz = 867250 * kHz, 4395 + .frequency_stepsize_hz = 62500, 4396 4396 .caps = FE_CAN_INVERSION_AUTO | 4397 4397 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 4398 4398 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
+3 -3
drivers/media/dvb-frontends/dib9000.c
··· 2553 2553 .delsys = { SYS_DVBT }, 2554 2554 .info = { 2555 2555 .name = "DiBcom 9000", 2556 - .frequency_min = 44250000, 2557 - .frequency_max = 867250000, 2558 - .frequency_stepsize = 62500, 2556 + .frequency_min_hz = 44250 * kHz, 2557 + .frequency_max_hz = 867250 * kHz, 2558 + .frequency_stepsize_hz = 62500, 2559 2559 .caps = FE_CAN_INVERSION_AUTO | 2560 2560 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 2561 2561 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
+3 -3
drivers/media/dvb-frontends/drx39xyj/drxj.c
··· 12374 12374 .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, 12375 12375 .info = { 12376 12376 .name = "Micronas DRX39xxj family Frontend", 12377 - .frequency_stepsize = 62500, 12378 - .frequency_min = 51000000, 12379 - .frequency_max = 858000000, 12377 + .frequency_min_hz = 51 * MHz, 12378 + .frequency_max_hz = 858 * MHz, 12379 + .frequency_stepsize_hz = 62500, 12380 12380 .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB 12381 12381 }, 12382 12382
+3 -4
drivers/media/dvb-frontends/drxd_hard.c
··· 2912 2912 .delsys = { SYS_DVBT}, 2913 2913 .info = { 2914 2914 .name = "Micronas DRXD DVB-T", 2915 - .frequency_min = 47125000, 2916 - .frequency_max = 855250000, 2917 - .frequency_stepsize = 166667, 2918 - .frequency_tolerance = 0, 2915 + .frequency_min_hz = 47125 * kHz, 2916 + .frequency_max_hz = 855250 * kHz, 2917 + .frequency_stepsize_hz = 166667, 2919 2918 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | 2920 2919 FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | 2921 2920 FE_CAN_FEC_AUTO |
+4 -4
drivers/media/dvb-frontends/drxk_hard.c
··· 6744 6744 /* .delsys will be filled dynamically */ 6745 6745 .info = { 6746 6746 .name = "DRXK", 6747 - .frequency_min = 47000000, 6748 - .frequency_max = 865000000, 6747 + .frequency_min_hz = 47 * MHz, 6748 + .frequency_max_hz = 865 * MHz, 6749 6749 /* For DVB-C */ 6750 - .symbol_rate_min = 870000, 6750 + .symbol_rate_min = 870000, 6751 6751 .symbol_rate_max = 11700000, 6752 6752 /* For DVB-T */ 6753 - .frequency_stepsize = 166667, 6753 + .frequency_stepsize_hz = 166667, 6754 6754 6755 6755 .caps = FE_CAN_QAM_16 | FE_CAN_QAM_32 | FE_CAN_QAM_64 | 6756 6756 FE_CAN_QAM_128 | FE_CAN_QAM_256 | FE_CAN_FEC_AUTO |
+4 -4
drivers/media/dvb-frontends/ds3000.c
··· 1100 1100 .delsys = { SYS_DVBS, SYS_DVBS2 }, 1101 1101 .info = { 1102 1102 .name = "Montage Technology DS3000", 1103 - .frequency_min = 950000, 1104 - .frequency_max = 2150000, 1105 - .frequency_stepsize = 1011, /* kHz for QPSK frontends */ 1106 - .frequency_tolerance = 5000, 1103 + .frequency_min_hz = 950 * MHz, 1104 + .frequency_max_hz = 2150 * MHz, 1105 + .frequency_stepsize_hz = 1011 * kHz, 1106 + .frequency_tolerance_hz = 5 * MHz, 1107 1107 .symbol_rate_min = 1000000, 1108 1108 .symbol_rate_max = 45000000, 1109 1109 .caps = FE_CAN_INVERSION_AUTO |
+12 -12
drivers/media/dvb-frontends/dvb_dummy_fe.c
··· 170 170 .delsys = { SYS_DVBT }, 171 171 .info = { 172 172 .name = "Dummy DVB-T", 173 - .frequency_min = 0, 174 - .frequency_max = 863250000, 175 - .frequency_stepsize = 62500, 173 + .frequency_min_hz = 0, 174 + .frequency_max_hz = 863250 * kHz, 175 + .frequency_stepsize_hz = 62500, 176 176 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 177 177 FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 | 178 178 FE_CAN_FEC_7_8 | FE_CAN_FEC_8_9 | FE_CAN_FEC_AUTO | ··· 201 201 .delsys = { SYS_DVBC_ANNEX_A }, 202 202 .info = { 203 203 .name = "Dummy DVB-C", 204 - .frequency_stepsize = 62500, 205 - .frequency_min = 51000000, 206 - .frequency_max = 858000000, 207 - .symbol_rate_min = (57840000/2)/64, /* SACLK/64 == (XIN/2)/64 */ 208 - .symbol_rate_max = (57840000/2)/4, /* SACLK/4 */ 204 + .frequency_min_hz = 51 * MHz, 205 + .frequency_max_hz = 858 * MHz, 206 + .frequency_stepsize_hz = 62500, 207 + .symbol_rate_min = (57840000 / 2) / 64, /* SACLK/64 == (XIN/2)/64 */ 208 + .symbol_rate_max = (57840000 / 2) / 4, /* SACLK/4 */ 209 209 .caps = FE_CAN_QAM_16 | FE_CAN_QAM_32 | FE_CAN_QAM_64 | 210 210 FE_CAN_QAM_128 | FE_CAN_QAM_256 | 211 211 FE_CAN_FEC_AUTO | FE_CAN_INVERSION_AUTO ··· 230 230 .delsys = { SYS_DVBS }, 231 231 .info = { 232 232 .name = "Dummy DVB-S", 233 - .frequency_min = 950000, 234 - .frequency_max = 2150000, 235 - .frequency_stepsize = 250, /* kHz for QPSK frontends */ 236 - .frequency_tolerance = 29500, 233 + .frequency_min_hz = 950 * MHz, 234 + .frequency_max_hz = 2150 * MHz, 235 + .frequency_stepsize_hz = 250 * kHz, 236 + .frequency_tolerance_hz = 29500 * kHz, 237 237 .symbol_rate_min = 1000000, 238 238 .symbol_rate_max = 45000000, 239 239 .caps = FE_CAN_INVERSION_AUTO |
+3 -3
drivers/media/dvb-frontends/gp8psk-fe.c
··· 355 355 .delsys = { SYS_DVBS }, 356 356 .info = { 357 357 .name = "Genpix DVB-S", 358 - .frequency_min = 800000, 359 - .frequency_max = 2250000, 360 - .frequency_stepsize = 100, 358 + .frequency_min_hz = 800 * MHz, 359 + .frequency_max_hz = 2250 * MHz, 360 + .frequency_stepsize_hz = 100 * kHz, 361 361 .symbol_rate_min = 1000000, 362 362 .symbol_rate_max = 45000000, 363 363 .symbol_rate_tolerance = 500, /* ppm */
+2 -2
drivers/media/dvb-frontends/ix2505v.c
··· 135 135 u8 gain, cc, ref, psc, local_osc, lpf; 136 136 u8 data[4] = {0}; 137 137 138 - if ((frequency < fe->ops.info.frequency_min) 139 - || (frequency > fe->ops.info.frequency_max)) 138 + if ((frequency < fe->ops.info.frequency_min_hz / kHz) 139 + || (frequency > fe->ops.info.frequency_max_hz / kHz)) 140 140 return -EINVAL; 141 141 142 142 if (state->config->tuner_gain)
+3 -4
drivers/media/dvb-frontends/l64781.c
··· 575 575 .delsys = { SYS_DVBT }, 576 576 .info = { 577 577 .name = "LSI L64781 DVB-T", 578 - /* .frequency_min = ???,*/ 579 - /* .frequency_max = ???,*/ 580 - .frequency_stepsize = 166666, 581 - /* .frequency_tolerance = ???,*/ 578 + /* .frequency_min_hz = ???,*/ 579 + /* .frequency_max_hz = ???,*/ 580 + .frequency_stepsize_hz = 166666, 582 581 /* .symbol_rate_tolerance = ???,*/ 583 582 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 584 583 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 |
+6 -6
drivers/media/dvb-frontends/lg2160.c
··· 1349 1349 .delsys = { SYS_ATSCMH }, 1350 1350 .info = { 1351 1351 .name = "LG Electronics LG2160 ATSC/MH Frontend", 1352 - .frequency_min = 54000000, 1353 - .frequency_max = 858000000, 1354 - .frequency_stepsize = 62500, 1352 + .frequency_min_hz = 54 * MHz, 1353 + .frequency_max_hz = 858 * MHz, 1354 + .frequency_stepsize_hz = 62500, 1355 1355 }, 1356 1356 .i2c_gate_ctrl = lg216x_i2c_gate_ctrl, 1357 1357 #if 0 ··· 1375 1375 .delsys = { SYS_ATSCMH }, 1376 1376 .info = { 1377 1377 .name = "LG Electronics LG2161 ATSC/MH Frontend", 1378 - .frequency_min = 54000000, 1379 - .frequency_max = 858000000, 1380 - .frequency_stepsize = 62500, 1378 + .frequency_min_hz = 54 * MHz, 1379 + .frequency_max_hz = 858 * MHz, 1380 + .frequency_stepsize_hz = 62500, 1381 1381 }, 1382 1382 .i2c_gate_ctrl = lg216x_i2c_gate_ctrl, 1383 1383 #if 0
+6 -6
drivers/media/dvb-frontends/lgdt3305.c
··· 1164 1164 .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, 1165 1165 .info = { 1166 1166 .name = "LG Electronics LGDT3304 VSB/QAM Frontend", 1167 - .frequency_min = 54000000, 1168 - .frequency_max = 858000000, 1169 - .frequency_stepsize = 62500, 1167 + .frequency_min_hz = 54 * MHz, 1168 + .frequency_max_hz = 858 * MHz, 1169 + .frequency_stepsize_hz = 62500, 1170 1170 .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB 1171 1171 }, 1172 1172 .i2c_gate_ctrl = lgdt3305_i2c_gate_ctrl, ··· 1187 1187 .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, 1188 1188 .info = { 1189 1189 .name = "LG Electronics LGDT3305 VSB/QAM Frontend", 1190 - .frequency_min = 54000000, 1191 - .frequency_max = 858000000, 1192 - .frequency_stepsize = 62500, 1190 + .frequency_min_hz = 54 * MHz, 1191 + .frequency_max_hz = 858 * MHz, 1192 + .frequency_stepsize_hz = 62500, 1193 1193 .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB 1194 1194 }, 1195 1195 .i2c_gate_ctrl = lgdt3305_i2c_gate_ctrl,
+3 -3
drivers/media/dvb-frontends/lgdt3306a.c
··· 2157 2157 .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, 2158 2158 .info = { 2159 2159 .name = "LG Electronics LGDT3306A VSB/QAM Frontend", 2160 - .frequency_min = 54000000, 2161 - .frequency_max = 858000000, 2162 - .frequency_stepsize = 62500, 2160 + .frequency_min_hz = 54 * MHz, 2161 + .frequency_max_hz = 858 * MHz, 2162 + .frequency_stepsize_hz = 62500, 2163 2163 .caps = FE_CAN_QAM_AUTO | FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB 2164 2164 }, 2165 2165 .i2c_gate_ctrl = lgdt3306a_i2c_gate_ctrl,
+6 -6
drivers/media/dvb-frontends/lgdt330x.c
··· 944 944 .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, 945 945 .info = { 946 946 .name = "LG Electronics LGDT3302 VSB/QAM Frontend", 947 - .frequency_min = 54000000, 948 - .frequency_max = 858000000, 949 - .frequency_stepsize = 62500, 947 + .frequency_min_hz = 54 * MHz, 948 + .frequency_max_hz = 858 * MHz, 949 + .frequency_stepsize_hz = 62500, 950 950 .symbol_rate_min = 5056941, /* QAM 64 */ 951 951 .symbol_rate_max = 10762000, /* VSB 8 */ 952 952 .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB ··· 966 966 .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, 967 967 .info = { 968 968 .name = "LG Electronics LGDT3303 VSB/QAM Frontend", 969 - .frequency_min = 54000000, 970 - .frequency_max = 858000000, 971 - .frequency_stepsize = 62500, 969 + .frequency_min_hz = 54 * MHz, 970 + .frequency_max_hz = 858 * MHz, 971 + .frequency_stepsize_hz = 62500, 972 972 .symbol_rate_min = 5056941, /* QAM 64 */ 973 973 .symbol_rate_max = 10762000, /* VSB 8 */ 974 974 .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB
+3 -4
drivers/media/dvb-frontends/lgs8gl5.c
··· 416 416 .delsys = { SYS_DTMB }, 417 417 .info = { 418 418 .name = "Legend Silicon LGS-8GL5 DMB-TH", 419 - .frequency_min = 474000000, 420 - .frequency_max = 858000000, 421 - .frequency_stepsize = 10000, 422 - .frequency_tolerance = 0, 419 + .frequency_min_hz = 474 * MHz, 420 + .frequency_max_hz = 858 * MHz, 421 + .frequency_stepsize_hz = 10 * kHz, 423 422 .caps = FE_CAN_FEC_AUTO | 424 423 FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_32 | 425 424 FE_CAN_QAM_64 | FE_CAN_QAM_AUTO |
+3 -3
drivers/media/dvb-frontends/lgs8gxx.c
··· 985 985 .delsys = { SYS_DTMB }, 986 986 .info = { 987 987 .name = "Legend Silicon LGS8913/LGS8GXX DMB-TH", 988 - .frequency_min = 474000000, 989 - .frequency_max = 858000000, 990 - .frequency_stepsize = 10000, 988 + .frequency_min_hz = 474 * MHz, 989 + .frequency_max_hz = 858 * MHz, 990 + .frequency_stepsize_hz = 10 * kHz, 991 991 .caps = 992 992 FE_CAN_FEC_AUTO | 993 993 FE_CAN_QAM_AUTO |
+3 -3
drivers/media/dvb-frontends/m88ds3103.c
··· 1300 1300 .delsys = {SYS_DVBS, SYS_DVBS2}, 1301 1301 .info = { 1302 1302 .name = "Montage Technology M88DS3103", 1303 - .frequency_min = 950000, 1304 - .frequency_max = 2150000, 1305 - .frequency_tolerance = 5000, 1303 + .frequency_min_hz = 950 * MHz, 1304 + .frequency_max_hz = 2150 * MHz, 1305 + .frequency_tolerance_hz = 5 * MHz, 1306 1306 .symbol_rate_min = 1000000, 1307 1307 .symbol_rate_max = 45000000, 1308 1308 .caps = FE_CAN_INVERSION_AUTO |
+4 -4
drivers/media/dvb-frontends/m88rs2000.c
··· 759 759 .delsys = { SYS_DVBS }, 760 760 .info = { 761 761 .name = "M88RS2000 DVB-S", 762 - .frequency_min = 950000, 763 - .frequency_max = 2150000, 764 - .frequency_stepsize = 1000, /* kHz for QPSK frontends */ 765 - .frequency_tolerance = 5000, 762 + .frequency_min_hz = 950 * MHz, 763 + .frequency_max_hz = 2150 * MHz, 764 + .frequency_stepsize_hz = 1 * MHz, 765 + .frequency_tolerance_hz = 5 * MHz, 766 766 .symbol_rate_min = 1000000, 767 767 .symbol_rate_max = 45000000, 768 768 .symbol_rate_tolerance = 500, /* ppm */
+3 -4
drivers/media/dvb-frontends/mb86a16.c
··· 1808 1808 .delsys = { SYS_DVBS }, 1809 1809 .info = { 1810 1810 .name = "Fujitsu MB86A16 DVB-S", 1811 - .frequency_min = 950000, 1812 - .frequency_max = 2150000, 1813 - .frequency_stepsize = 3000, 1814 - .frequency_tolerance = 0, 1811 + .frequency_min_hz = 950 * MHz, 1812 + .frequency_max_hz = 2150 * MHz, 1813 + .frequency_stepsize_hz = 3 * MHz, 1815 1814 .symbol_rate_min = 1000000, 1816 1815 .symbol_rate_max = 45000000, 1817 1816 .symbol_rate_tolerance = 500,
+3 -3
drivers/media/dvb-frontends/mb86a20s.c
··· 2111 2111 FE_CAN_TRANSMISSION_MODE_AUTO | FE_CAN_QAM_AUTO | 2112 2112 FE_CAN_GUARD_INTERVAL_AUTO | FE_CAN_HIERARCHY_AUTO, 2113 2113 /* Actually, those values depend on the used tuner */ 2114 - .frequency_min = 45000000, 2115 - .frequency_max = 864000000, 2116 - .frequency_stepsize = 62500, 2114 + .frequency_min_hz = 45 * MHz, 2115 + .frequency_max_hz = 864 * MHz, 2116 + .frequency_stepsize_hz = 62500, 2117 2117 }, 2118 2118 2119 2119 .release = mb86a20s_release,
+5 -5
drivers/media/dvb-frontends/mt312.c
··· 559 559 560 560 dprintk("%s: Freq %d\n", __func__, p->frequency); 561 561 562 - if ((p->frequency < fe->ops.info.frequency_min) 563 - || (p->frequency > fe->ops.info.frequency_max)) 562 + if ((p->frequency < fe->ops.info.frequency_min_hz / kHz) 563 + || (p->frequency > fe->ops.info.frequency_max_hz / kHz)) 564 564 return -EINVAL; 565 565 566 566 if (((int)p->inversion < INVERSION_OFF) ··· 755 755 .delsys = { SYS_DVBS }, 756 756 .info = { 757 757 .name = "Zarlink ???? DVB-S", 758 - .frequency_min = 950000, 759 - .frequency_max = 2150000, 758 + .frequency_min_hz = 950 * MHz, 759 + .frequency_max_hz = 2150 * MHz, 760 760 /* FIXME: adjust freq to real used xtal */ 761 - .frequency_stepsize = (MT312_PLL_CLK / 1000) / 128, 761 + .frequency_stepsize_hz = MT312_PLL_CLK / 128, 762 762 .symbol_rate_min = MT312_SYS_CLK / 128, /* FIXME as above */ 763 763 .symbol_rate_max = MT312_SYS_CLK / 2, 764 764 .caps =
+3 -4
drivers/media/dvb-frontends/mt352.c
··· 567 567 .delsys = { SYS_DVBT }, 568 568 .info = { 569 569 .name = "Zarlink MT352 DVB-T", 570 - .frequency_min = 174000000, 571 - .frequency_max = 862000000, 572 - .frequency_stepsize = 166667, 573 - .frequency_tolerance = 0, 570 + .frequency_min_hz = 174 * MHz, 571 + .frequency_max_hz = 862 * MHz, 572 + .frequency_stepsize_hz = 166667, 574 573 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | 575 574 FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | 576 575 FE_CAN_FEC_AUTO |
+2 -4
drivers/media/dvb-frontends/mxl5xx.c
··· 784 784 .delsys = { SYS_DVBS, SYS_DVBS2, SYS_DSS }, 785 785 .info = { 786 786 .name = "MaxLinear MxL5xx DVB-S/S2 tuner-demodulator", 787 - .frequency_min = 300000, 788 - .frequency_max = 2350000, 789 - .frequency_stepsize = 0, 790 - .frequency_tolerance = 0, 787 + .frequency_min_hz = 300 * MHz, 788 + .frequency_max_hz = 2350 * MHz, 791 789 .symbol_rate_min = 1000000, 792 790 .symbol_rate_max = 45000000, 793 791 .caps = FE_CAN_INVERSION_AUTO |
+3 -3
drivers/media/dvb-frontends/nxt200x.c
··· 1212 1212 .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, 1213 1213 .info = { 1214 1214 .name = "Nextwave NXT200X VSB/QAM frontend", 1215 - .frequency_min = 54000000, 1216 - .frequency_max = 860000000, 1217 - .frequency_stepsize = 166666, /* stepsize is just a guess */ 1215 + .frequency_min_hz = 54 * MHz, 1216 + .frequency_max_hz = 860 * MHz, 1217 + .frequency_stepsize_hz = 166666, /* stepsize is just a guess */ 1218 1218 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 1219 1219 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | 1220 1220 FE_CAN_8VSB | FE_CAN_QAM_64 | FE_CAN_QAM_256
+3 -3
drivers/media/dvb-frontends/nxt6000.c
··· 596 596 .delsys = { SYS_DVBT }, 597 597 .info = { 598 598 .name = "NxtWave NXT6000 DVB-T", 599 - .frequency_min = 0, 600 - .frequency_max = 863250000, 601 - .frequency_stepsize = 62500, 599 + .frequency_min_hz = 0, 600 + .frequency_max_hz = 863250 * kHz, 601 + .frequency_stepsize_hz = 62500, 602 602 /*.frequency_tolerance = *//* FIXME: 12% of SR */ 603 603 .symbol_rate_min = 0, /* FIXME */ 604 604 .symbol_rate_max = 9360000, /* FIXME */
+3 -3
drivers/media/dvb-frontends/or51132.c
··· 583 583 .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, 584 584 .info = { 585 585 .name = "Oren OR51132 VSB/QAM Frontend", 586 - .frequency_min = 44000000, 587 - .frequency_max = 958000000, 588 - .frequency_stepsize = 166666, 586 + .frequency_min_hz = 44 * MHz, 587 + .frequency_max_hz = 958 * MHz, 588 + .frequency_stepsize_hz = 166666, 589 589 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 590 590 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | 591 591 FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_QAM_AUTO |
+4 -4
drivers/media/dvb-frontends/or51211.c
··· 530 530 static const struct dvb_frontend_ops or51211_ops = { 531 531 .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, 532 532 .info = { 533 - .name = "Oren OR51211 VSB Frontend", 534 - .frequency_min = 44000000, 535 - .frequency_max = 958000000, 536 - .frequency_stepsize = 166666, 533 + .name = "Oren OR51211 VSB Frontend", 534 + .frequency_min_hz = 44 * MHz, 535 + .frequency_max_hz = 958 * MHz, 536 + .frequency_stepsize_hz = 166666, 537 537 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 538 538 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | 539 539 FE_CAN_8VSB
+2 -2
drivers/media/dvb-frontends/rtl2830.c
··· 159 159 struct dvb_frontend_tune_settings *s) 160 160 { 161 161 s->min_delay_ms = 500; 162 - s->step_size = fe->ops.info.frequency_stepsize * 2; 163 - s->max_drift = (fe->ops.info.frequency_stepsize * 2) + 1; 162 + s->step_size = fe->ops.info.frequency_stepsize_hz * 2; 163 + s->max_drift = (fe->ops.info.frequency_stepsize_hz * 2) + 1; 164 164 165 165 return 0; 166 166 }
+5 -5
drivers/media/dvb-frontends/rtl2832.c
··· 408 408 409 409 dev_dbg(&client->dev, "\n"); 410 410 s->min_delay_ms = 1000; 411 - s->step_size = fe->ops.info.frequency_stepsize * 2; 412 - s->max_drift = (fe->ops.info.frequency_stepsize * 2) + 1; 411 + s->step_size = fe->ops.info.frequency_stepsize_hz * 2; 412 + s->max_drift = (fe->ops.info.frequency_stepsize_hz * 2) + 1; 413 413 return 0; 414 414 } 415 415 ··· 841 841 .delsys = { SYS_DVBT }, 842 842 .info = { 843 843 .name = "Realtek RTL2832 (DVB-T)", 844 - .frequency_min = 174000000, 845 - .frequency_max = 862000000, 846 - .frequency_stepsize = 166667, 844 + .frequency_min_hz = 174 * MHz, 845 + .frequency_max_hz = 862 * MHz, 846 + .frequency_stepsize_hz = 166667, 847 847 .caps = FE_CAN_FEC_1_2 | 848 848 FE_CAN_FEC_2_3 | 849 849 FE_CAN_FEC_3_4 |
+3 -3
drivers/media/dvb-frontends/s5h1409.c
··· 999 999 .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, 1000 1000 .info = { 1001 1001 .name = "Samsung S5H1409 QAM/8VSB Frontend", 1002 - .frequency_min = 54000000, 1003 - .frequency_max = 858000000, 1004 - .frequency_stepsize = 62500, 1002 + .frequency_min_hz = 54 * MHz, 1003 + .frequency_max_hz = 858 * MHz, 1004 + .frequency_stepsize_hz = 62500, 1005 1005 .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB 1006 1006 }, 1007 1007
+3 -3
drivers/media/dvb-frontends/s5h1411.c
··· 918 918 .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, 919 919 .info = { 920 920 .name = "Samsung S5H1411 QAM/8VSB Frontend", 921 - .frequency_min = 54000000, 922 - .frequency_max = 858000000, 923 - .frequency_stepsize = 62500, 921 + .frequency_min_hz = 54 * MHz, 922 + .frequency_max_hz = 858 * MHz, 923 + .frequency_stepsize_hz = 62500, 924 924 .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB 925 925 }, 926 926
+4 -4
drivers/media/dvb-frontends/s5h1420.c
··· 934 934 .delsys = { SYS_DVBS }, 935 935 .info = { 936 936 .name = "Samsung S5H1420/PnpNetwork PN1010 DVB-S", 937 - .frequency_min = 950000, 938 - .frequency_max = 2150000, 939 - .frequency_stepsize = 125, /* kHz for QPSK frontends */ 940 - .frequency_tolerance = 29500, 937 + .frequency_min_hz = 950 * MHz, 938 + .frequency_max_hz = 2150 * MHz, 939 + .frequency_stepsize_hz = 125 * kHz, 940 + .frequency_tolerance_hz = 29500 * kHz, 941 941 .symbol_rate_min = 1000000, 942 942 .symbol_rate_max = 45000000, 943 943 /* .symbol_rate_tolerance = ???,*/
+3 -3
drivers/media/dvb-frontends/s5h1432.c
··· 370 370 .delsys = { SYS_DVBT }, 371 371 .info = { 372 372 .name = "Samsung s5h1432 DVB-T Frontend", 373 - .frequency_min = 177000000, 374 - .frequency_max = 858000000, 375 - .frequency_stepsize = 166666, 373 + .frequency_min_hz = 177 * MHz, 374 + .frequency_max_hz = 858 * MHz, 375 + .frequency_stepsize_hz = 166666, 376 376 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 377 377 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | 378 378 FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO |
+3 -4
drivers/media/dvb-frontends/s921.c
··· 510 510 /* Use dib8000 values per default */ 511 511 .info = { 512 512 .name = "Sharp S921", 513 - .frequency_min = 470000000, 513 + .frequency_min_hz = 470 * MHz, 514 514 /* 515 515 * Max should be 770MHz instead, according with Sharp docs, 516 516 * but Leadership doc says it works up to 806 MHz. This is 517 517 * required to get channel 69, used in Brazil 518 518 */ 519 - .frequency_max = 806000000, 520 - .frequency_tolerance = 0, 521 - .caps = FE_CAN_INVERSION_AUTO | 519 + .frequency_max_hz = 806 * MHz, 520 + .caps = FE_CAN_INVERSION_AUTO | 522 521 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 523 522 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | 524 523 FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
+1 -1
drivers/media/dvb-frontends/si2165.c
··· 1120 1120 .symbol_rate_min = 1000000, 1121 1121 .symbol_rate_max = 7200000, 1122 1122 /* For DVB-T */ 1123 - .frequency_stepsize = 166667, 1123 + .frequency_stepsize_hz = 166667, 1124 1124 .caps = FE_CAN_FEC_1_2 | 1125 1125 FE_CAN_FEC_2_3 | 1126 1126 FE_CAN_FEC_3_4 |
+3 -4
drivers/media/dvb-frontends/si21xx.c
··· 870 870 .delsys = { SYS_DVBS }, 871 871 .info = { 872 872 .name = "SL SI21XX DVB-S", 873 - .frequency_min = 950000, 874 - .frequency_max = 2150000, 875 - .frequency_stepsize = 125, /* kHz for QPSK frontends */ 876 - .frequency_tolerance = 0, 873 + .frequency_min_hz = 950 * MHz, 874 + .frequency_max_hz = 2150 * MHz, 875 + .frequency_stepsize_hz = 125 * kHz, 877 876 .symbol_rate_min = 1000000, 878 877 .symbol_rate_max = 45000000, 879 878 .symbol_rate_tolerance = 500, /* ppm */
+3 -3
drivers/media/dvb-frontends/sp8870.c
··· 584 584 .delsys = { SYS_DVBT }, 585 585 .info = { 586 586 .name = "Spase SP8870 DVB-T", 587 - .frequency_min = 470000000, 588 - .frequency_max = 860000000, 589 - .frequency_stepsize = 166666, 587 + .frequency_min_hz = 470 * MHz, 588 + .frequency_max_hz = 860 * MHz, 589 + .frequency_stepsize_hz = 166666, 590 590 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | 591 591 FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | 592 592 FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
+3 -3
drivers/media/dvb-frontends/sp887x.c
··· 594 594 .delsys = { SYS_DVBT }, 595 595 .info = { 596 596 .name = "Spase SP887x DVB-T", 597 - .frequency_min = 50500000, 598 - .frequency_max = 858000000, 599 - .frequency_stepsize = 166666, 597 + .frequency_min_hz = 50500 * kHz, 598 + .frequency_max_hz = 858000 * kHz, 599 + .frequency_stepsize_hz = 166666, 600 600 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 601 601 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | 602 602 FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
+2 -4
drivers/media/dvb-frontends/stb0899_drv.c
··· 1584 1584 .delsys = { SYS_DVBS, SYS_DVBS2, SYS_DSS }, 1585 1585 .info = { 1586 1586 .name = "STB0899 Multistandard", 1587 - .frequency_min = 950000, 1588 - .frequency_max = 2150000, 1589 - .frequency_stepsize = 0, 1590 - .frequency_tolerance = 0, 1587 + .frequency_min_hz = 950 * MHz, 1588 + .frequency_max_hz = 2150 * MHz, 1591 1589 .symbol_rate_min = 5000000, 1592 1590 .symbol_rate_max = 45000000, 1593 1591
+3 -4
drivers/media/dvb-frontends/stv0288.c
··· 533 533 .delsys = { SYS_DVBS }, 534 534 .info = { 535 535 .name = "ST STV0288 DVB-S", 536 - .frequency_min = 950000, 537 - .frequency_max = 2150000, 538 - .frequency_stepsize = 1000, /* kHz for QPSK frontends */ 539 - .frequency_tolerance = 0, 536 + .frequency_min_hz = 950 * MHz, 537 + .frequency_max_hz = 2150 * MHz, 538 + .frequency_stepsize_hz = 1 * MHz, 540 539 .symbol_rate_min = 1000000, 541 540 .symbol_rate_max = 45000000, 542 541 .symbol_rate_tolerance = 500, /* ppm */
+3 -3
drivers/media/dvb-frontends/stv0297.c
··· 694 694 .delsys = { SYS_DVBC_ANNEX_A }, 695 695 .info = { 696 696 .name = "ST STV0297 DVB-C", 697 - .frequency_min = 47000000, 698 - .frequency_max = 862000000, 699 - .frequency_stepsize = 62500, 697 + .frequency_min_hz = 470 * MHz, 698 + .frequency_max_hz = 862 * MHz, 699 + .frequency_stepsize_hz = 62500, 700 700 .symbol_rate_min = 870000, 701 701 .symbol_rate_max = 11700000, 702 702 .caps = FE_CAN_QAM_16 | FE_CAN_QAM_32 | FE_CAN_QAM_64 |
+3 -4
drivers/media/dvb-frontends/stv0299.c
··· 717 717 .delsys = { SYS_DVBS }, 718 718 .info = { 719 719 .name = "ST STV0299 DVB-S", 720 - .frequency_min = 950000, 721 - .frequency_max = 2150000, 722 - .frequency_stepsize = 125, /* kHz for QPSK frontends */ 723 - .frequency_tolerance = 0, 720 + .frequency_min_hz = 950 * MHz, 721 + .frequency_max_hz = 2150 * MHz, 722 + .frequency_stepsize_hz = 125 * kHz, 724 723 .symbol_rate_min = 1000000, 725 724 .symbol_rate_max = 45000000, 726 725 .symbol_rate_tolerance = 500, /* ppm */
+9 -11
drivers/media/dvb-frontends/stv0367.c
··· 1693 1693 .delsys = { SYS_DVBT }, 1694 1694 .info = { 1695 1695 .name = "ST STV0367 DVB-T", 1696 - .frequency_min = 47000000, 1697 - .frequency_max = 862000000, 1698 - .frequency_stepsize = 15625, 1699 - .frequency_tolerance = 0, 1696 + .frequency_min_hz = 47 * MHz, 1697 + .frequency_max_hz = 862 * MHz, 1698 + .frequency_stepsize_hz = 15625, 1700 1699 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | 1701 1700 FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | 1702 1701 FE_CAN_FEC_AUTO | ··· 2866 2867 .delsys = { SYS_DVBC_ANNEX_A }, 2867 2868 .info = { 2868 2869 .name = "ST STV0367 DVB-C", 2869 - .frequency_min = 47000000, 2870 - .frequency_max = 862000000, 2871 - .frequency_stepsize = 62500, 2870 + .frequency_min_hz = 47 * MHz, 2871 + .frequency_max_hz = 862 * MHz, 2872 + .frequency_stepsize_hz = 62500, 2872 2873 .symbol_rate_min = 870000, 2873 2874 .symbol_rate_max = 11700000, 2874 2875 .caps = 0x400 |/* FE_CAN_QAM_4 */ ··· 3272 3273 .delsys = { SYS_DVBC_ANNEX_A, SYS_DVBT }, 3273 3274 .info = { 3274 3275 .name = "ST STV0367 DDB DVB-C/T", 3275 - .frequency_min = 47000000, 3276 - .frequency_max = 865000000, 3277 - .frequency_stepsize = 166667, 3278 - .frequency_tolerance = 0, 3276 + .frequency_min_hz = 47 * MHz, 3277 + .frequency_max_hz = 865 * MHz, 3278 + .frequency_stepsize_hz = 166667, 3279 3279 .symbol_rate_min = 870000, 3280 3280 .symbol_rate_max = 11700000, 3281 3281 .caps = /* DVB-C */
+3 -4
drivers/media/dvb-frontends/stv0900_core.c
··· 1875 1875 .delsys = { SYS_DVBS, SYS_DVBS2, SYS_DSS }, 1876 1876 .info = { 1877 1877 .name = "STV0900 frontend", 1878 - .frequency_min = 950000, 1879 - .frequency_max = 2150000, 1880 - .frequency_stepsize = 125, 1881 - .frequency_tolerance = 0, 1878 + .frequency_min_hz = 950 * MHz, 1879 + .frequency_max_hz = 2150 * MHz, 1880 + .frequency_stepsize_hz = 125 * kHz, 1882 1881 .symbol_rate_min = 1000000, 1883 1882 .symbol_rate_max = 45000000, 1884 1883 .symbol_rate_tolerance = 500,
+2 -4
drivers/media/dvb-frontends/stv090x.c
··· 4905 4905 .delsys = { SYS_DVBS, SYS_DVBS2, SYS_DSS }, 4906 4906 .info = { 4907 4907 .name = "STV090x Multistandard", 4908 - .frequency_min = 950000, 4909 - .frequency_max = 2150000, 4910 - .frequency_stepsize = 0, 4911 - .frequency_tolerance = 0, 4908 + .frequency_min_hz = 950 * MHz, 4909 + .frequency_max_hz = 2150 * MHz, 4912 4910 .symbol_rate_min = 1000000, 4913 4911 .symbol_rate_max = 45000000, 4914 4912 .caps = FE_CAN_INVERSION_AUTO |
+2 -4
drivers/media/dvb-frontends/stv0910.c
··· 1724 1724 .delsys = { SYS_DVBS, SYS_DVBS2, SYS_DSS }, 1725 1725 .info = { 1726 1726 .name = "ST STV0910", 1727 - .frequency_min = 950000, 1728 - .frequency_max = 2150000, 1729 - .frequency_stepsize = 0, 1730 - .frequency_tolerance = 0, 1727 + .frequency_min_hz = 950 * MHz, 1728 + .frequency_max_hz = 2150 * MHz, 1731 1729 .symbol_rate_min = 100000, 1732 1730 .symbol_rate_max = 70000000, 1733 1731 .caps = FE_CAN_INVERSION_AUTO |
+5 -5
drivers/media/dvb-frontends/tc90522.c
··· 714 714 .delsys = { SYS_ISDBS }, 715 715 .info = { 716 716 .name = "Toshiba TC90522 ISDB-S module", 717 - .frequency_min = 950000, 718 - .frequency_max = 2150000, 717 + .frequency_min_hz = 950 * MHz, 718 + .frequency_max_hz = 2150 * MHz, 719 719 .caps = FE_CAN_INVERSION_AUTO | FE_CAN_FEC_AUTO | 720 720 FE_CAN_QAM_AUTO | FE_CAN_TRANSMISSION_MODE_AUTO | 721 721 FE_CAN_GUARD_INTERVAL_AUTO | FE_CAN_HIERARCHY_AUTO, ··· 734 734 .delsys = { SYS_ISDBT }, 735 735 .info = { 736 736 .name = "Toshiba TC90522 ISDB-T module", 737 - .frequency_min = 470000000, 738 - .frequency_max = 770000000, 739 - .frequency_stepsize = 142857, 737 + .frequency_min_hz = 470 * MHz, 738 + .frequency_max_hz = 770 * MHz, 739 + .frequency_stepsize_hz = 142857, 740 740 .caps = FE_CAN_INVERSION_AUTO | 741 741 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 742 742 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
+5 -5
drivers/media/dvb-frontends/tda10021.c
··· 487 487 .delsys = { SYS_DVBC_ANNEX_A, SYS_DVBC_ANNEX_C }, 488 488 .info = { 489 489 .name = "Philips TDA10021 DVB-C", 490 - .frequency_stepsize = 62500, 491 - .frequency_min = 47000000, 492 - .frequency_max = 862000000, 493 - .symbol_rate_min = (XIN/2)/64, /* SACLK/64 == (XIN/2)/64 */ 494 - .symbol_rate_max = (XIN/2)/4, /* SACLK/4 */ 490 + .frequency_min_hz = 47 * MHz, 491 + .frequency_max_hz = 862 * MHz, 492 + .frequency_stepsize_hz = 62500, 493 + .symbol_rate_min = (XIN / 2) / 64, /* SACLK/64 == (XIN/2)/64 */ 494 + .symbol_rate_max = (XIN / 2) / 4, /* SACLK/4 */ 495 495 #if 0 496 496 .frequency_tolerance = ???, 497 497 .symbol_rate_tolerance = ???, /* ppm */ /* == 8% (spec p. 5) */
+3 -3
drivers/media/dvb-frontends/tda10023.c
··· 575 575 .delsys = { SYS_DVBC_ANNEX_A, SYS_DVBC_ANNEX_C }, 576 576 .info = { 577 577 .name = "Philips TDA10023 DVB-C", 578 - .frequency_stepsize = 62500, 579 - .frequency_min = 47000000, 580 - .frequency_max = 862000000, 578 + .frequency_min_hz = 47 * MHz, 579 + .frequency_max_hz = 862 * MHz, 580 + .frequency_stepsize_hz = 62500, 581 581 .symbol_rate_min = 0, /* set in tda10023_attach */ 582 582 .symbol_rate_max = 0, /* set in tda10023_attach */ 583 583 .caps = 0x400 | //FE_CAN_QAM_4
+3 -3
drivers/media/dvb-frontends/tda10048.c
··· 1156 1156 .delsys = { SYS_DVBT }, 1157 1157 .info = { 1158 1158 .name = "NXP TDA10048HN DVB-T", 1159 - .frequency_min = 177000000, 1160 - .frequency_max = 858000000, 1161 - .frequency_stepsize = 166666, 1159 + .frequency_min_hz = 177 * MHz, 1160 + .frequency_max_hz = 858 * MHz, 1161 + .frequency_stepsize_hz = 166666, 1162 1162 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 1163 1163 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | 1164 1164 FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO |
+6 -6
drivers/media/dvb-frontends/tda1004x.c
··· 1249 1249 .delsys = { SYS_DVBT }, 1250 1250 .info = { 1251 1251 .name = "Philips TDA10045H DVB-T", 1252 - .frequency_min = 51000000, 1253 - .frequency_max = 858000000, 1254 - .frequency_stepsize = 166667, 1252 + .frequency_min_hz = 51 * MHz, 1253 + .frequency_max_hz = 858 * MHz, 1254 + .frequency_stepsize_hz = 166667, 1255 1255 .caps = 1256 1256 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 1257 1257 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | ··· 1319 1319 .delsys = { SYS_DVBT }, 1320 1320 .info = { 1321 1321 .name = "Philips TDA10046H DVB-T", 1322 - .frequency_min = 51000000, 1323 - .frequency_max = 858000000, 1324 - .frequency_stepsize = 166667, 1322 + .frequency_min_hz = 51 * MHz, 1323 + .frequency_max_hz = 858 * MHz, 1324 + .frequency_stepsize_hz = 166667, 1325 1325 .caps = 1326 1326 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 1327 1327 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
+5 -5
drivers/media/dvb-frontends/tda10071.c
··· 681 681 cmd.args[5] = (c->frequency >> 0) & 0xff; 682 682 cmd.args[6] = ((c->symbol_rate / 1000) >> 8) & 0xff; 683 683 cmd.args[7] = ((c->symbol_rate / 1000) >> 0) & 0xff; 684 - cmd.args[8] = (tda10071_ops.info.frequency_tolerance >> 8) & 0xff; 685 - cmd.args[9] = (tda10071_ops.info.frequency_tolerance >> 0) & 0xff; 684 + cmd.args[8] = ((tda10071_ops.info.frequency_tolerance_hz / 1000) >> 8) & 0xff; 685 + cmd.args[9] = ((tda10071_ops.info.frequency_tolerance_hz / 1000) >> 0) & 0xff; 686 686 cmd.args[10] = rolloff; 687 687 cmd.args[11] = inversion; 688 688 cmd.args[12] = pilot; ··· 1106 1106 .delsys = { SYS_DVBS, SYS_DVBS2 }, 1107 1107 .info = { 1108 1108 .name = "NXP TDA10071", 1109 - .frequency_min = 950000, 1110 - .frequency_max = 2150000, 1111 - .frequency_tolerance = 5000, 1109 + .frequency_min_hz = 950 * MHz, 1110 + .frequency_max_hz = 2150 * MHz, 1111 + .frequency_tolerance_hz = 5 * MHz, 1112 1112 .symbol_rate_min = 1000000, 1113 1113 .symbol_rate_max = 45000000, 1114 1114 .caps = FE_CAN_INVERSION_AUTO |
+3 -3
drivers/media/dvb-frontends/tda10086.c
··· 710 710 .delsys = { SYS_DVBS }, 711 711 .info = { 712 712 .name = "Philips TDA10086 DVB-S", 713 - .frequency_min = 950000, 714 - .frequency_max = 2150000, 715 - .frequency_stepsize = 125, /* kHz for QPSK frontends */ 713 + .frequency_min_hz = 950 * MHz, 714 + .frequency_max_hz = 2150 * MHz, 715 + .frequency_stepsize_hz = 125 * kHz, 716 716 .symbol_rate_min = 1000000, 717 717 .symbol_rate_max = 45000000, 718 718 .caps = FE_CAN_INVERSION_AUTO |
+3 -4
drivers/media/dvb-frontends/tda8083.c
··· 453 453 .delsys = { SYS_DVBS }, 454 454 .info = { 455 455 .name = "Philips TDA8083 DVB-S", 456 - .frequency_min = 920000, /* TDA8060 */ 457 - .frequency_max = 2200000, /* TDA8060 */ 458 - .frequency_stepsize = 125, /* kHz for QPSK frontends */ 459 - /* .frequency_tolerance = ???,*/ 456 + .frequency_min_hz = 920 * MHz, /* TDA8060 */ 457 + .frequency_max_hz = 2200 * MHz, /* TDA8060 */ 458 + .frequency_stepsize_hz = 125 * kHz, 460 459 .symbol_rate_min = 12000000, 461 460 .symbol_rate_max = 30000000, 462 461 /* .symbol_rate_tolerance = ???,*/
+3 -3
drivers/media/dvb-frontends/ves1820.c
··· 412 412 .delsys = { SYS_DVBC_ANNEX_A }, 413 413 .info = { 414 414 .name = "VLSI VES1820 DVB-C", 415 - .frequency_stepsize = 62500, 416 - .frequency_min = 47000000, 417 - .frequency_max = 862000000, 415 + .frequency_min_hz = 47 * MHz, 416 + .frequency_max_hz = 862 * MHz, 417 + .frequency_stepsize_hz = 62500, 418 418 .caps = FE_CAN_QAM_16 | 419 419 FE_CAN_QAM_32 | 420 420 FE_CAN_QAM_64 |
+4 -4
drivers/media/dvb-frontends/ves1x93.c
··· 516 516 .delsys = { SYS_DVBS }, 517 517 .info = { 518 518 .name = "VLSI VES1x93 DVB-S", 519 - .frequency_min = 950000, 520 - .frequency_max = 2150000, 521 - .frequency_stepsize = 125, /* kHz for QPSK frontends */ 522 - .frequency_tolerance = 29500, 519 + .frequency_min_hz = 950 * MHz, 520 + .frequency_max_hz = 2150 * MHz, 521 + .frequency_stepsize_hz = 125 * kHz, 522 + .frequency_tolerance_hz = 29500 * kHz, 523 523 .symbol_rate_min = 1000000, 524 524 .symbol_rate_max = 45000000, 525 525 /* .symbol_rate_tolerance = ???,*/
+2 -2
drivers/media/dvb-frontends/zl10036.c
··· 311 311 312 312 /* ensure correct values 313 313 * maybe redundant as core already checks this */ 314 - if ((frequency < fe->ops.info.frequency_min) 315 - || (frequency > fe->ops.info.frequency_max)) 314 + if ((frequency < fe->ops.info.frequency_min_hz / kHz) 315 + || (frequency > fe->ops.info.frequency_max_hz / kHz)) 316 316 return -EINVAL; 317 317 318 318 /*
+3 -4
drivers/media/dvb-frontends/zl10353.c
··· 635 635 .delsys = { SYS_DVBT }, 636 636 .info = { 637 637 .name = "Zarlink ZL10353 DVB-T", 638 - .frequency_min = 174000000, 639 - .frequency_max = 862000000, 640 - .frequency_stepsize = 166667, 641 - .frequency_tolerance = 0, 638 + .frequency_min_hz = 174 * MHz, 639 + .frequency_max_hz = 862 * MHz, 640 + .frequency_stepsize_hz = 166667, 642 641 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | 643 642 FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | 644 643 FE_CAN_FEC_AUTO |
+13 -13
drivers/media/firewire/firedtv-fe.c
··· 152 152 void fdtv_frontend_init(struct firedtv *fdtv, const char *name) 153 153 { 154 154 struct dvb_frontend_ops *ops = &fdtv->fe.ops; 155 - struct dvb_frontend_info *fi = &ops->info; 155 + struct dvb_frontend_internal_info *fi = &ops->info; 156 156 157 157 ops->init = fdtv_dvb_init; 158 158 ops->sleep = fdtv_sleep; ··· 174 174 case FIREDTV_DVB_S: 175 175 ops->delsys[0] = SYS_DVBS; 176 176 177 - fi->frequency_min = 950000; 178 - fi->frequency_max = 2150000; 179 - fi->frequency_stepsize = 125; 177 + fi->frequency_min_hz = 950 * MHz; 178 + fi->frequency_max_hz = 2150 * MHz; 179 + fi->frequency_stepsize_hz = 125 * kHz; 180 180 fi->symbol_rate_min = 1000000; 181 181 fi->symbol_rate_max = 40000000; 182 182 ··· 194 194 ops->delsys[0] = SYS_DVBS; 195 195 ops->delsys[1] = SYS_DVBS2; 196 196 197 - fi->frequency_min = 950000; 198 - fi->frequency_max = 2150000; 199 - fi->frequency_stepsize = 125; 197 + fi->frequency_min_hz = 950 * MHz; 198 + fi->frequency_max_hz = 2150 * MHz; 199 + fi->frequency_stepsize_hz = 125 * kHz; 200 200 fi->symbol_rate_min = 1000000; 201 201 fi->symbol_rate_max = 40000000; 202 202 ··· 214 214 case FIREDTV_DVB_C: 215 215 ops->delsys[0] = SYS_DVBC_ANNEX_A; 216 216 217 - fi->frequency_min = 47000000; 218 - fi->frequency_max = 866000000; 219 - fi->frequency_stepsize = 62500; 217 + fi->frequency_min_hz = 47 * MHz; 218 + fi->frequency_max_hz = 866 * MHz; 219 + fi->frequency_stepsize_hz = 62500; 220 220 fi->symbol_rate_min = 870000; 221 221 fi->symbol_rate_max = 6900000; 222 222 ··· 232 232 case FIREDTV_DVB_T: 233 233 ops->delsys[0] = SYS_DVBT; 234 234 235 - fi->frequency_min = 49000000; 236 - fi->frequency_max = 861000000; 237 - fi->frequency_stepsize = 62500; 235 + fi->frequency_min_hz = 49 * MHz; 236 + fi->frequency_max_hz = 861 * MHz; 237 + fi->frequency_stepsize_hz = 62500; 238 238 239 239 fi->caps = FE_CAN_INVERSION_AUTO | 240 240 FE_CAN_FEC_2_3 |
+13 -13
drivers/media/pci/bt8xx/dst.c
··· 1739 1739 .delsys = { SYS_DVBT }, 1740 1740 .info = { 1741 1741 .name = "DST DVB-T", 1742 - .frequency_min = 137000000, 1743 - .frequency_max = 858000000, 1744 - .frequency_stepsize = 166667, 1742 + .frequency_min_hz = 137 * MHz, 1743 + .frequency_max_hz = 858 * MHz, 1744 + .frequency_stepsize_hz = 166667, 1745 1745 .caps = FE_CAN_FEC_AUTO | 1746 1746 FE_CAN_QAM_AUTO | 1747 1747 FE_CAN_QAM_16 | ··· 1768 1768 .delsys = { SYS_DVBS }, 1769 1769 .info = { 1770 1770 .name = "DST DVB-S", 1771 - .frequency_min = 950000, 1772 - .frequency_max = 2150000, 1773 - .frequency_stepsize = 1000, /* kHz for QPSK frontends */ 1774 - .frequency_tolerance = 29500, 1771 + .frequency_min_hz = 950 * MHz, 1772 + .frequency_max_hz = 2150 * MHz, 1773 + .frequency_stepsize_hz = 1 * MHz, 1774 + .frequency_tolerance_hz = 29500 * kHz, 1775 1775 .symbol_rate_min = 1000000, 1776 1776 .symbol_rate_max = 45000000, 1777 1777 /* . symbol_rate_tolerance = ???,*/ ··· 1797 1797 .delsys = { SYS_DVBC_ANNEX_A }, 1798 1798 .info = { 1799 1799 .name = "DST DVB-C", 1800 - .frequency_stepsize = 62500, 1801 - .frequency_min = 51000000, 1802 - .frequency_max = 858000000, 1800 + .frequency_min_hz = 51 * MHz, 1801 + .frequency_max_hz = 858 * MHz, 1802 + .frequency_stepsize_hz = 62500, 1803 1803 .symbol_rate_min = 1000000, 1804 1804 .symbol_rate_max = 45000000, 1805 1805 .caps = FE_CAN_FEC_AUTO | ··· 1826 1826 .delsys = { SYS_ATSC }, 1827 1827 .info = { 1828 1828 .name = "DST ATSC", 1829 - .frequency_stepsize = 62500, 1830 - .frequency_min = 510000000, 1831 - .frequency_max = 858000000, 1829 + .frequency_min_hz = 510 * MHz, 1830 + .frequency_max_hz = 858 * MHz, 1831 + .frequency_stepsize_hz = 62500, 1832 1832 .symbol_rate_min = 1000000, 1833 1833 .symbol_rate_max = 45000000, 1834 1834 .caps = FE_CAN_FEC_AUTO | FE_CAN_QAM_AUTO | FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB
+4 -4
drivers/media/pci/bt8xx/dvb-bt8xx.c
··· 602 602 603 603 if (card->fe != NULL) { 604 604 card->fe->ops.tuner_ops.calc_regs = thomson_dtt7579_tuner_calc_regs; 605 - card->fe->ops.info.frequency_min = 174000000; 606 - card->fe->ops.info.frequency_max = 862000000; 605 + card->fe->ops.info.frequency_min_hz = 174 * MHz; 606 + card->fe->ops.info.frequency_max_hz = 862 * MHz; 607 607 } 608 608 break; 609 609 ··· 655 655 card->fe = dvb_attach(mt352_attach, &advbt771_samsung_tdtc9251dh0_config, card->i2c_adapter); 656 656 if (card->fe != NULL) { 657 657 card->fe->ops.tuner_ops.calc_regs = advbt771_samsung_tdtc9251dh0_tuner_calc_regs; 658 - card->fe->ops.info.frequency_min = 174000000; 659 - card->fe->ops.info.frequency_max = 862000000; 658 + card->fe->ops.info.frequency_min_hz = 174 * MHz; 659 + card->fe->ops.info.frequency_max_hz = 862 * MHz; 660 660 } 661 661 break; 662 662
+2 -4
drivers/media/pci/ddbridge/ddbridge-sx8.c
··· 454 454 .delsys = { SYS_DVBS, SYS_DVBS2 }, 455 455 .info = { 456 456 .name = "Digital Devices MaxSX8 MCI DVB-S/S2/S2X", 457 - .frequency_min = 950000, 458 - .frequency_max = 2150000, 459 - .frequency_stepsize = 0, 460 - .frequency_tolerance = 0, 457 + .frequency_min_hz = 950 * MHz, 458 + .frequency_max_hz = 2150 * MHz, 461 459 .symbol_rate_min = 100000, 462 460 .symbol_rate_max = 100000000, 463 461 .caps = FE_CAN_INVERSION_AUTO |
+2 -2
drivers/media/pci/mantis/mantis_vp3030.c
··· 42 42 static struct tda665x_config env57h12d5_config = { 43 43 .name = "ENV57H12D5 (ET-50DT)", 44 44 .addr = 0x60, 45 - .frequency_min = 47000000, 46 - .frequency_max = 862000000, 45 + .frequency_min = 47 * MHz, 46 + .frequency_max = 862 * MHz, 47 47 .frequency_offst = 3616667, 48 48 .ref_multiplier = 6, /* 1/6 MHz */ 49 49 .ref_divider = 100000, /* 1/6 MHz */
-2
drivers/media/tuners/mxl5007t.c
··· 59 59 60 60 /* ------------------------------------------------------------------------- */ 61 61 62 - #define MHz 1000000 63 - 64 62 enum mxl5007t_mode { 65 63 MxL_MODE_ISDBT = 0, 66 64 MxL_MODE_DVBT = 1,
+3 -3
drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c
··· 554 554 .delsys = { SYS_DVBT }, 555 555 .info = { 556 556 .name = "MaxLinear MxL111SF DVB-T demodulator", 557 - .frequency_min = 177000000, 558 - .frequency_max = 858000000, 559 - .frequency_stepsize = 166666, 557 + .frequency_min_hz = 177 * MHz, 558 + .frequency_max_hz = 858 * MHz, 559 + .frequency_stepsize_hz = 166666, 560 560 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 561 561 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | 562 562 FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
+3 -3
drivers/media/usb/dvb-usb/af9005-fe.c
··· 1455 1455 .delsys = { SYS_DVBT }, 1456 1456 .info = { 1457 1457 .name = "AF9005 USB DVB-T", 1458 - .frequency_min = 44250000, 1459 - .frequency_max = 867250000, 1460 - .frequency_stepsize = 250000, 1458 + .frequency_min_hz = 44250 * kHz, 1459 + .frequency_max_hz = 867250 * kHz, 1460 + .frequency_stepsize_hz = 250 * kHz, 1461 1461 .caps = FE_CAN_INVERSION_AUTO | 1462 1462 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 1463 1463 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
+3 -3
drivers/media/usb/dvb-usb/cinergyT2-fe.c
··· 295 295 .delsys = { SYS_DVBT }, 296 296 .info = { 297 297 .name = DRIVER_NAME, 298 - .frequency_min = 174000000, 299 - .frequency_max = 862000000, 300 - .frequency_stepsize = 166667, 298 + .frequency_min_hz = 174 * MHz, 299 + .frequency_max_hz = 862 * MHz, 300 + .frequency_stepsize_hz = 166667, 301 301 .caps = FE_CAN_INVERSION_AUTO | FE_CAN_FEC_1_2 302 302 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 303 303 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8
+3 -3
drivers/media/usb/dvb-usb/dtt200u-fe.c
··· 230 230 .delsys = { SYS_DVBT }, 231 231 .info = { 232 232 .name = "WideView USB DVB-T", 233 - .frequency_min = 44250000, 234 - .frequency_max = 867250000, 235 - .frequency_stepsize = 250000, 233 + .frequency_min_hz = 44250 * kHz, 234 + .frequency_max_hz = 867250 * kHz, 235 + .frequency_stepsize_hz = 250 * kHz, 236 236 .caps = FE_CAN_INVERSION_AUTO | 237 237 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 238 238 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
+5 -6
drivers/media/usb/dvb-usb/friio-fe.c
··· 133 133 u32 f; 134 134 135 135 deb_fe("%s: freq=%d, step=%d\n", __func__, freq, 136 - state->frontend.ops.info.frequency_stepsize); 136 + state->frontend.ops.info.frequency_stepsize_hz); 137 137 /* freq -> oscilator frequency conversion. */ 138 138 /* freq: 473,000,000 + n*6,000,000 [+ 142857 (center freq. shift)] */ 139 - f = freq / state->frontend.ops.info.frequency_stepsize; 139 + f = freq / state->frontend.ops.info.frequency_stepsize_hz; 140 140 /* add 399[1/7 MHZ] = 57MHz for the IF */ 141 141 f += 399; 142 142 /* add center frequency shift if necessary */ ··· 413 413 .delsys = { SYS_ISDBT }, 414 414 .info = { 415 415 .name = "Comtech JDVBT90502 ISDB-T", 416 - .frequency_min = 473000000, /* UHF 13ch, center */ 417 - .frequency_max = 767142857, /* UHF 62ch, center */ 418 - .frequency_stepsize = JDVBT90502_PLL_CLK / JDVBT90502_PLL_DIVIDER, 419 - .frequency_tolerance = 0, 416 + .frequency_min_hz = 473000000, /* UHF 13ch, center */ 417 + .frequency_max_hz = 767142857, /* UHF 62ch, center */ 418 + .frequency_stepsize_hz = JDVBT90502_PLL_CLK / JDVBT90502_PLL_DIVIDER, 420 419 421 420 /* NOTE: this driver ignores all parameters but frequency. */ 422 421 .caps = FE_CAN_INVERSION_AUTO |
+3 -4
drivers/media/usb/dvb-usb/vp702x-fe.c
··· 349 349 .delsys = { SYS_DVBS }, 350 350 .info = { 351 351 .name = "Twinhan DST-like frontend (VP7021/VP7020) DVB-S", 352 - .frequency_min = 950000, 353 - .frequency_max = 2150000, 354 - .frequency_stepsize = 1000, /* kHz for QPSK frontends */ 355 - .frequency_tolerance = 0, 352 + .frequency_min_hz = 950 * MHz, 353 + .frequency_max_hz = 2150 * MHz, 354 + .frequency_stepsize_hz = 1 * MHz, 356 355 .symbol_rate_min = 1000000, 357 356 .symbol_rate_max = 45000000, 358 357 .symbol_rate_tolerance = 500, /* ppm */
+3 -3
drivers/media/usb/dvb-usb/vp7045-fe.c
··· 162 162 .delsys = { SYS_DVBT }, 163 163 .info = { 164 164 .name = "Twinhan VP7045/46 USB DVB-T", 165 - .frequency_min = 44250000, 166 - .frequency_max = 867250000, 167 - .frequency_stepsize = 1000, 165 + .frequency_min_hz = 44250 * kHz, 166 + .frequency_max_hz = 867250 * kHz, 167 + .frequency_stepsize_hz = 1 * kHz, 168 168 .caps = FE_CAN_INVERSION_AUTO | 169 169 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 170 170 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
+6 -6
drivers/media/usb/ttusb-dec/ttusbdecfe.c
··· 247 247 .delsys = { SYS_DVBT }, 248 248 .info = { 249 249 .name = "TechnoTrend/Hauppauge DEC2000-t Frontend", 250 - .frequency_min = 51000000, 251 - .frequency_max = 858000000, 252 - .frequency_stepsize = 62500, 250 + .frequency_min_hz = 51 * MHz, 251 + .frequency_max_hz = 858 * MHz, 252 + .frequency_stepsize_hz = 62500, 253 253 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 254 254 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | 255 255 FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO | ··· 270 270 .delsys = { SYS_DVBS }, 271 271 .info = { 272 272 .name = "TechnoTrend/Hauppauge DEC3000-s Frontend", 273 - .frequency_min = 950000, 274 - .frequency_max = 2150000, 275 - .frequency_stepsize = 125, 273 + .frequency_min_hz = 950 * MHz, 274 + .frequency_max_hz = 2150 * MHz, 275 + .frequency_stepsize_hz = 125 * kHz, 276 276 .symbol_rate_min = 1000000, /* guessed */ 277 277 .symbol_rate_max = 45000000, /* guessed */ 278 278 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
+29 -1
include/media/dvb_frontend.h
··· 317 317 318 318 struct dtv_frontend_properties; 319 319 320 + /** 321 + * struct dvb_frontend_internal_info - Frontend properties and capabilities 322 + * 323 + * @name: Name of the frontend 324 + * @frequency_min_hz: Minimal frequency supported by the frontend. 325 + * @frequency_max_hz: Minimal frequency supported by the frontend. 326 + * @frequency_stepsize_hz: All frequencies are multiple of this value. 327 + * @frequency_tolerance_hz: Frequency tolerance. 328 + * @symbol_rate_min: Minimal symbol rate, in bauds 329 + * (for Cable/Satellite systems). 330 + * @symbol_rate_max: Maximal symbol rate, in bauds 331 + * (for Cable/Satellite systems). 332 + * @symbol_rate_tolerance: Maximal symbol rate tolerance, in ppm 333 + * (for Cable/Satellite systems). 334 + * @caps: Capabilities supported by the frontend, 335 + * as specified in &enum fe_caps. 336 + */ 337 + struct dvb_frontend_internal_info { 338 + char name[128]; 339 + u32 frequency_min_hz; 340 + u32 frequency_max_hz; 341 + u32 frequency_stepsize_hz; 342 + u32 frequency_tolerance_hz; 343 + u32 symbol_rate_min; 344 + u32 symbol_rate_max; 345 + u32 symbol_rate_tolerance; 346 + enum fe_caps caps; 347 + }; 320 348 321 349 /** 322 350 * struct dvb_frontend_ops - Demodulation information and callbacks for ··· 432 404 * @analog_ops: pointer to &struct analog_demod_ops 433 405 */ 434 406 struct dvb_frontend_ops { 435 - struct dvb_frontend_info info; 407 + struct dvb_frontend_internal_info info; 436 408 437 409 u8 delsys[MAX_DELSYS]; 438 410