DVB: represent frequencies at tuner/frontend .info in Hz
Subsystems (43)
v2 cover DVB: represent frequencies at tuner/frontend .info in Hz
Currently, the DVB drivers internally represent frequencies on their ops.info structures in Hz, for Terrestrial and Cable, or in kHz for Satellite.
This is very confusing, as from time to time developers end by filling the data in a wrong way.
Also, this is a long standing issue that affect newer devices whose tuner and frontend are capable of supporting both satellite and non-satellite delivery standards, as, ideally, a single frequency range should be enough to represent both.
There is a side issue here to: currently, the Kernel uses internally the same struct as FE_GET_INFO, with has several fields that aren't used anymore, causing some waste of space a the Kernel.
So, convert all those data to Hz.
As a plus, after this change, if we ever need to add a tuner capable of working above 2^32 Hz (e. g. above 4.294 GHz), a simple change from u32 to u64 internally would do the work. We may end needing such tuners for SDR.
Tested with a random number of devices I have in hands:
- PCTV 461e
- WinTV aero-m
- Terratec H5
- WinTV dual-HD model 204201 rev. C216
- WinTV HVR-955Q
- PV-D231U(RN)-F
For the tests, I used the newer version of dvb-fe-tool with now displays the frequencies and symbol rates read from FE_GET_INFO.
Except if I screwed with a frontend/tuner entry, no userspace change is expected with this patch, as dvb_frontend.c will properly return the frequencies to userspace using the right range (either kHz or Hz).
-
v2:
- fixed some bugs on a few driver frequency conversions;
- added an extra patch to also consider the tuner frequency_stepsize, as it may be different than the frontend one. So, get the bigger value among both.
Mauro Carvalho Chehab (3):
media: dvb: convert tuner_info frequencies to Hz
media: dvb: represent min/max/step/tolerance freqs in Hz
dvb_frontend: ensure that the step is ok for both FE and tuner
drivers/media/common/siano/smsdvb-main.c | 6 +- drivers/media/dvb-core/dvb_frontend.c | 84 +++++++++++++++---- drivers/media/dvb-frontends/af9013.c | 7 +- drivers/media/dvb-frontends/af9033.c | 7 +- drivers/media/dvb-frontends/as102_fe.c | 6 +- drivers/media/dvb-frontends/ascot2e.c | 6 +- drivers/media/dvb-frontends/atbm8830.c | 6 +- drivers/media/dvb-frontends/au8522_dig.c | 6 +- drivers/media/dvb-frontends/bcm3510.c | 6 +- drivers/media/dvb-frontends/cx22700.c | 6 +- drivers/media/dvb-frontends/cx22702.c | 6 +- drivers/media/dvb-frontends/cx24110.c | 8 +- drivers/media/dvb-frontends/cx24113.c | 8 +- drivers/media/dvb-frontends/cx24116.c | 8 +- drivers/media/dvb-frontends/cx24117.c | 8 +- drivers/media/dvb-frontends/cx24120.c | 8 +- drivers/media/dvb-frontends/cx24123.c | 8 +- drivers/media/dvb-frontends/cxd2820r_t.c | 4 +- drivers/media/dvb-frontends/cxd2820r_t2.c | 4 +- drivers/media/dvb-frontends/cxd2841er.c | 9 +- .../media/dvb-frontends/cxd2880/cxd2880_top.c | 6 +- drivers/media/dvb-frontends/dib0070.c | 8 +- drivers/media/dvb-frontends/dib0090.c | 12 +-- drivers/media/dvb-frontends/dib3000mb.c | 6 +- drivers/media/dvb-frontends/dib3000mc.c | 6 +- drivers/media/dvb-frontends/dib7000m.c | 6 +- drivers/media/dvb-frontends/dib7000p.c | 6 +- drivers/media/dvb-frontends/dib8000.c | 6 +- drivers/media/dvb-frontends/dib9000.c | 6 +- drivers/media/dvb-frontends/drx39xyj/drxj.c | 6 +- drivers/media/dvb-frontends/drxd_hard.c | 7 +- drivers/media/dvb-frontends/drxk_hard.c | 8 +- drivers/media/dvb-frontends/ds3000.c | 8 +- drivers/media/dvb-frontends/dvb-pll.c | 16 +++- drivers/media/dvb-frontends/dvb_dummy_fe.c | 24 +++--- drivers/media/dvb-frontends/gp8psk-fe.c | 6 +- drivers/media/dvb-frontends/helene.c | 12 +-- drivers/media/dvb-frontends/horus3a.c | 6 +- drivers/media/dvb-frontends/itd1000.c | 8 +- drivers/media/dvb-frontends/ix2505v.c | 8 +- drivers/media/dvb-frontends/l64781.c | 7 +- drivers/media/dvb-frontends/lg2160.c | 12 +-- drivers/media/dvb-frontends/lgdt3305.c | 12 +-- drivers/media/dvb-frontends/lgdt3306a.c | 6 +- drivers/media/dvb-frontends/lgdt330x.c | 12 +-- drivers/media/dvb-frontends/lgs8gl5.c | 7 +- drivers/media/dvb-frontends/lgs8gxx.c | 6 +- drivers/media/dvb-frontends/m88ds3103.c | 6 +- drivers/media/dvb-frontends/m88rs2000.c | 8 +- drivers/media/dvb-frontends/mb86a16.c | 7 +- drivers/media/dvb-frontends/mb86a20s.c | 6 +- drivers/media/dvb-frontends/mt312.c | 10 +-- drivers/media/dvb-frontends/mt352.c | 7 +- drivers/media/dvb-frontends/mxl5xx.c | 6 +- drivers/media/dvb-frontends/nxt200x.c | 6 +- drivers/media/dvb-frontends/nxt6000.c | 6 +- drivers/media/dvb-frontends/or51132.c | 6 +- drivers/media/dvb-frontends/or51211.c | 8 +- drivers/media/dvb-frontends/rtl2830.c | 4 +- drivers/media/dvb-frontends/rtl2832.c | 10 +-- drivers/media/dvb-frontends/s5h1409.c | 6 +- drivers/media/dvb-frontends/s5h1411.c | 6 +- drivers/media/dvb-frontends/s5h1420.c | 8 +- drivers/media/dvb-frontends/s5h1432.c | 6 +- drivers/media/dvb-frontends/s921.c | 7 +- drivers/media/dvb-frontends/si2165.c | 2 +- drivers/media/dvb-frontends/si21xx.c | 7 +- drivers/media/dvb-frontends/sp8870.c | 6 +- drivers/media/dvb-frontends/sp887x.c | 6 +- drivers/media/dvb-frontends/stb0899_drv.c | 6 +- drivers/media/dvb-frontends/stb6000.c | 4 +- drivers/media/dvb-frontends/stb6100.c | 5 +- drivers/media/dvb-frontends/stv0288.c | 7 +- drivers/media/dvb-frontends/stv0297.c | 6 +- drivers/media/dvb-frontends/stv0299.c | 7 +- drivers/media/dvb-frontends/stv0367.c | 20 ++--- drivers/media/dvb-frontends/stv0900_core.c | 7 +- drivers/media/dvb-frontends/stv090x.c | 6 +- drivers/media/dvb-frontends/stv0910.c | 6 +- drivers/media/dvb-frontends/stv6110.c | 6 +- drivers/media/dvb-frontends/stv6110x.c | 7 +- drivers/media/dvb-frontends/stv6111.c | 5 +- drivers/media/dvb-frontends/tc90522.c | 10 +-- drivers/media/dvb-frontends/tda10021.c | 10 +-- drivers/media/dvb-frontends/tda10023.c | 6 +- drivers/media/dvb-frontends/tda10048.c | 6 +- drivers/media/dvb-frontends/tda1004x.c | 12 +-- drivers/media/dvb-frontends/tda10071.c | 10 +-- drivers/media/dvb-frontends/tda10086.c | 6 +- drivers/media/dvb-frontends/tda18271c2dd.c | 6 +- drivers/media/dvb-frontends/tda665x.c | 6 +- drivers/media/dvb-frontends/tda8083.c | 7 +- drivers/media/dvb-frontends/tda8261.c | 9 +- drivers/media/dvb-frontends/tda826x.c | 4 +- drivers/media/dvb-frontends/ts2020.c | 4 +- drivers/media/dvb-frontends/tua6100.c | 6 +- drivers/media/dvb-frontends/ves1820.c | 6 +- drivers/media/dvb-frontends/ves1x93.c | 8 +- drivers/media/dvb-frontends/zl10036.c | 8 +- drivers/media/dvb-frontends/zl10353.c | 7 +- drivers/media/firewire/firedtv-fe.c | 26 +++--- drivers/media/pci/bt8xx/dst.c | 26 +++--- drivers/media/pci/bt8xx/dvb-bt8xx.c | 8 +- drivers/media/pci/ddbridge/ddbridge-mci.c | 6 +- drivers/media/pci/mantis/mantis_vp3030.c | 4 +- drivers/media/tuners/e4000.c | 6 +- drivers/media/tuners/fc0011.c | 6 +- drivers/media/tuners/fc0012.c | 7 +- drivers/media/tuners/fc0013.c | 7 +- drivers/media/tuners/fc2580.c | 6 +- drivers/media/tuners/it913x.c | 6 +- drivers/media/tuners/m88rs6000t.c | 6 +- drivers/media/tuners/max2165.c | 8 +- drivers/media/tuners/mc44s803.c | 8 +- drivers/media/tuners/mt2060.c | 8 +- drivers/media/tuners/mt2063.c | 7 +- drivers/media/tuners/mt2131.c | 8 +- drivers/media/tuners/mt2266.c | 8 +- drivers/media/tuners/mxl301rf.c | 4 +- drivers/media/tuners/mxl5005s.c | 8 +- drivers/media/tuners/mxl5007t.c | 2 - drivers/media/tuners/qm1d1b0004.c | 4 +- drivers/media/tuners/qm1d1c0042.c | 4 +- drivers/media/tuners/qt1010.c | 8 +- drivers/media/tuners/qt1010_priv.h | 14 ++-- drivers/media/tuners/r820t.c | 6 +- drivers/media/tuners/si2157.c | 6 +- drivers/media/tuners/tda18212.c | 8 +- drivers/media/tuners/tda18218.c | 8 +- drivers/media/tuners/tda18250.c | 6 +- drivers/media/tuners/tda18271-fe.c | 6 +- drivers/media/tuners/tda827x.c | 12 +-- drivers/media/tuners/tua9001.c | 6 +- drivers/media/tuners/tuner-xc2028.c | 6 +- drivers/media/tuners/xc4000.c | 12 +-- drivers/media/tuners/xc5000.c | 12 +-- drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c | 6 +- drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.c | 6 +- drivers/media/usb/dvb-usb/af9005-fe.c | 6 +- drivers/media/usb/dvb-usb/cinergyT2-fe.c | 6 +- drivers/media/usb/dvb-usb/dtt200u-fe.c | 6 +- drivers/media/usb/dvb-usb/friio-fe.c | 11 ++- drivers/media/usb/dvb-usb/vp702x-fe.c | 7 +- drivers/media/usb/dvb-usb/vp7045-fe.c | 6 +- drivers/media/usb/ttusb-dec/ttusbdecfe.c | 12 +-- include/media/dvb_frontend.h | 49 ++++++++--- 146 files changed, 639 insertions(+), 580 deletions(-)
Signature · 1 line
2.17.1
PATCH v2 1/3 media: dvb: convert tuner_info frequencies to Hz
Right now, satellite tuner drivers specify frequencies in kHz, while terrestrial/cable ones specify in Hz. That's confusing for developers.
However, the main problem is that universal tuners 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 tuners.
So, convert everything to specify tuner frequencies in Hz.
Plese notice that a similar patch is also needed for frontends.
--- drivers/media/dvb-core/dvb_frontend.c | 25 ++++++++++++++++--- drivers/media/dvb-frontends/ascot2e.c | 6 ++--- drivers/media/dvb-frontends/cx24113.c | 8 +++--- drivers/media/dvb-frontends/dib0070.c | 8 +++--- drivers/media/dvb-frontends/dib0090.c | 12 ++++----- drivers/media/dvb-frontends/dvb-pll.c | 16 ++++++++++-- drivers/media/dvb-frontends/helene.c | 12 ++++----- drivers/media/dvb-frontends/horus3a.c | 6 ++--- drivers/media/dvb-frontends/itd1000.c | 8 +++--- drivers/media/dvb-frontends/ix2505v.c | 4 +-- drivers/media/dvb-frontends/stb6000.c | 4 +-- drivers/media/dvb-frontends/stb6100.c | 5 ++-- drivers/media/dvb-frontends/stv6110.c | 6 ++--- drivers/media/dvb-frontends/stv6110x.c | 7 +++--- drivers/media/dvb-frontends/stv6111.c | 5 ++-- drivers/media/dvb-frontends/tda18271c2dd.c | 6 ++--- drivers/media/dvb-frontends/tda665x.c | 6 ++--- drivers/media/dvb-frontends/tda8261.c | 9 +++---- drivers/media/dvb-frontends/tda826x.c | 4 +-- drivers/media/dvb-frontends/ts2020.c | 4 +-- drivers/media/dvb-frontends/tua6100.c | 6 ++--- drivers/media/dvb-frontends/zl10036.c | 4 +-- drivers/media/tuners/e4000.c | 6 ++--- drivers/media/tuners/fc0011.c | 6 ++--- drivers/media/tuners/fc0012.c | 7 +++--- drivers/media/tuners/fc0013.c | 7 +++--- drivers/media/tuners/fc2580.c | 6 ++--- drivers/media/tuners/it913x.c | 6 ++--- drivers/media/tuners/m88rs6000t.c | 6 ++--- drivers/media/tuners/max2165.c | 8 +++--- drivers/media/tuners/mc44s803.c | 8 +++--- drivers/media/tuners/mt2060.c | 8 +++--- drivers/media/tuners/mt2063.c | 7 +++--- drivers/media/tuners/mt2131.c | 8 +++--- drivers/media/tuners/mt2266.c | 8 +++--- drivers/media/tuners/mxl301rf.c | 4 +-- drivers/media/tuners/mxl5005s.c | 8 +++--- drivers/media/tuners/qm1d1b0004.c | 4 +-- drivers/media/tuners/qm1d1c0042.c | 4 +-- drivers/media/tuners/qt1010.c | 8 +++--- drivers/media/tuners/qt1010_priv.h | 14 ++++++----- drivers/media/tuners/r820t.c | 6 ++--- drivers/media/tuners/si2157.c | 6 ++--- drivers/media/tuners/tda18212.c | 8 +++--- drivers/media/tuners/tda18218.c | 8 +++--- drivers/media/tuners/tda18250.c | 6 ++--- drivers/media/tuners/tda18271-fe.c | 6 ++--- drivers/media/tuners/tda827x.c | 12 ++++----- drivers/media/tuners/tua9001.c | 6 ++--- drivers/media/tuners/tuner-xc2028.c | 6 ++--- drivers/media/tuners/xc4000.c | 12 ++++----- drivers/media/tuners/xc5000.c | 12 ++++----- drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.c | 6 ++--- include/media/dvb_frontend.h | 19 +++++++------- 54 files changed, 221 insertions(+), 196 deletions(-)
drivers/media/dvb-core/dvb_frontend.c +21 -4
@@ -896,14 +896,31 @@ static int dvb_frontend_start(struct dvb_frontend *fe)static void dvb_frontend_get_frequency_limits (struct dvb_frontend *fe,u32 *freq_min,u32 *freq_max) { - *freq_min =max (fe->ops.info.frequency_min, fe->ops.tuner_ops.info.frequency_min); +struct dtv_frontend_properties *c = &fe->dtv_property_cache; +__u32 tuner_min = fe->ops.tuner_ops.info.frequency_min_hz; +__u32 tuner_max = fe->ops.tuner_ops.info.frequency_max_hz; + +/* If the standard is for satellite, convert frequencies to kHz */ +switch (c->delivery_system) { +case SYS_DVBS : +case SYS_DVBS2 : +case SYS_TURBO : +case SYS_ISDBS : + tuner_max /= kHz; + tuner_min /= kHz; +break ; +default : +break ; + } + + *freq_min =max (fe->ops.info.frequency_min, tuner_min);if (fe->ops.info.frequency_max ==0 ) - *freq_max = fe->ops.tuner_ops.info.frequency_max; -else if (fe->ops.tuner_ops.info.frequency_max ==0 ) + *freq_max = tuner_max; +else if (tuner_max ==0 ) *freq_max = fe->ops.info.frequency_max;else - *freq_max =min (fe->ops.info.frequency_max, fe->ops.tuner_ops.info.frequency_max); + *freq_max =min (fe->ops.info.frequency_max, tuner_max);if (*freq_min ==0 || *freq_max ==0 ) dev_warn(fe->dvb->device,
drivers/media/dvb-frontends/ascot2e.c +3 -3
@@ -468,9 +468,9 @@ static int ascot2e_get_frequency(struct dvb_frontend *fe, u32 *frequency)static const struct dvb_tuner_ops ascot2e_tuner_ops = { .info = { .name ="Sony ASCOT2E" , - .frequency_min =1000000 , - .frequency_max =1200000000 , - .frequency_step =25000 , + .frequency_min_hz =1 * MHz, + .frequency_max_hz =1200 * MHz, + .frequency_step_hz =25 * kHz, }, .init = ascot2e_init, .release = ascot2e_release,
drivers/media/dvb-frontends/cx24113.c +4 -4
@@ -533,10 +533,10 @@ static void cx24113_release(struct dvb_frontend *fe)static const struct dvb_tuner_ops cx24113_tuner_ops = { .info = { - .name ="Conexant CX24113" , - .frequency_min =950000 , - .frequency_max =2150000 , - .frequency_step =125 , + .name ="Conexant CX24113" , + .frequency_min_hz =950 * MHz, + .frequency_max_hz =2150 * MHz, + .frequency_step_hz =125 * kHz, }, .release = cx24113_release,
drivers/media/dvb-frontends/dib0070.c +4 -4
@@ -726,10 +726,10 @@ static void dib0070_release(struct dvb_frontend *fe)static const struct dvb_tuner_ops dib0070_ops = { .info = { - .name ="DiBcom DiB0070" , - .frequency_min =45000000 , - .frequency_max =860000000 , - .frequency_step =1000 , + .name ="DiBcom DiB0070" , + .frequency_min_hz =45 * MHz, + .frequency_max_hz =860 * MHz, + .frequency_step_hz =1 * kHz, }, .release = dib0070_release,
drivers/media/dvb-frontends/dib0090.c +6 -6
@@ -2578,9 +2578,9 @@ static int dib0090_set_params(struct dvb_frontend *fe)static const struct dvb_tuner_ops dib0090_ops = { .info = { .name ="DiBcom DiB0090" , - .frequency_min =45000000 , - .frequency_max =860000000 , - .frequency_step =1000 , + .frequency_min_hz =45 * MHz, + .frequency_max_hz =860 * MHz, + .frequency_step_hz =1 * kHz, }, .release = dib0090_release,
@@ -2593,9 +2593,9 @@ static const struct dvb_tuner_ops dib0090_ops = {static const struct dvb_tuner_ops dib0090_fw_ops = { .info = { .name ="DiBcom DiB0090" , - .frequency_min =45000000 , - .frequency_max =860000000 , - .frequency_step =1000 , + .frequency_min_hz =45 * MHz, + .frequency_max_hz =860 * MHz, + .frequency_step_hz =1 * kHz, }, .release = dib0090_release,
drivers/media/dvb-frontends/dvb-pll.c +14 -2
@@ -799,6 +799,7 @@ struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, int pll_addr,struct dvb_pll_priv *priv =NULL ;int ret;const struct dvb_pll_desc *desc; +struct dtv_frontend_properties *c = &fe->dtv_property_cache; b1 =kmalloc (1 ,GFP_KERNEL );if (!b1)
@@ -844,8 +845,19 @@ struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, int pll_addr,strncpy (fe->ops.tuner_ops.info.name, desc->name,sizeof (fe->ops.tuner_ops.info.name)); - fe->ops.tuner_ops.info.frequency_min = desc->min; - fe->ops.tuner_ops.info.frequency_max = desc->max; +switch (c->delivery_system) { +case SYS_DVBS : +case SYS_DVBS2 : +case SYS_TURBO : +case SYS_ISDBS : + fe->ops.tuner_ops.info.frequency_min_hz = desc->min * kHz; + fe->ops.tuner_ops.info.frequency_max_hz = desc->max * kHz; +break ; +default : + fe->ops.tuner_ops.info.frequency_min_hz = desc->min; + fe->ops.tuner_ops.info.frequency_max_hz = desc->max; + } +if (!desc->initdata) fe->ops.tuner_ops.init =NULL ;if (!desc->sleepdata)
drivers/media/dvb-frontends/helene.c +6 -6
@@ -846,9 +846,9 @@ static int helene_get_frequency(struct dvb_frontend *fe, u32 *frequency)static const struct dvb_tuner_ops helene_tuner_ops = { .info = { .name ="Sony HELENE Ter tuner" , - .frequency_min =1000000 , - .frequency_max =1200000000 , - .frequency_step =25000 , + .frequency_min_hz =1 * MHz, + .frequency_max_hz =1200 * MHz, + .frequency_step_hz =25 * kHz, }, .init = helene_init, .release = helene_release,
@@ -860,9 +860,9 @@ static const struct dvb_tuner_ops helene_tuner_ops = {static const struct dvb_tuner_ops helene_tuner_ops_s = { .info = { .name ="Sony HELENE Sat tuner" , - .frequency_min =500000 , - .frequency_max =2500000 , - .frequency_step =1000 , + .frequency_min_hz =500 * MHz, + .frequency_max_hz =2500 * MHz, + .frequency_step_hz =1 * MHz, }, .init = helene_init, .release = helene_release,
drivers/media/dvb-frontends/horus3a.c +3 -3
@@ -330,9 +330,9 @@ static int horus3a_get_frequency(struct dvb_frontend *fe, u32 *frequency)static const struct dvb_tuner_ops horus3a_tuner_ops = { .info = { .name ="Sony Horus3a" , - .frequency_min =950000 , - .frequency_max =2150000 , - .frequency_step =1000 , + .frequency_min_hz =950 * MHz, + .frequency_max_hz =2150 * MHz, + .frequency_step_hz =1 * MHz, }, .init = horus3a_init, .release = horus3a_release,
drivers/media/dvb-frontends/itd1000.c +4 -4
@@ -353,10 +353,10 @@ static void itd1000_release(struct dvb_frontend *fe)static const struct dvb_tuner_ops itd1000_tuner_ops = { .info = { - .name ="Integrant ITD1000" , - .frequency_min =950000 , - .frequency_max =2150000 , - .frequency_step =125 ,/* kHz for QPSK frontends */ + .name ="Integrant ITD1000" , + .frequency_min_hz =950 * MHz, + .frequency_max_hz =2150 * MHz, + .frequency_step_hz =125 * kHz, }, .release = itd1000_release,
drivers/media/dvb-frontends/ix2505v.c +2 -2
@@ -256,8 +256,8 @@ static int ix2505v_get_frequency(struct dvb_frontend *fe, u32 *frequency)static const struct dvb_tuner_ops ix2505v_tuner_ops = { .info = { .name ="Sharp IX2505V (B0017)" , - .frequency_min =950000 , - .frequency_max =2175000 + .frequency_min_hz =950 * MHz, + .frequency_max_hz =2175 * MHz }, .release = ix2505v_release, .set_params = ix2505v_set_params,
drivers/media/dvb-frontends/stb6000.c +2 -2
@@ -188,8 +188,8 @@ static int stb6000_get_frequency(struct dvb_frontend *fe, u32 *frequency)static const struct dvb_tuner_ops stb6000_tuner_ops = { .info = { .name ="ST STB6000" , - .frequency_min =950000 , - .frequency_max =2150000 + .frequency_min_hz =950 * MHz, + .frequency_max_hz =2150 * MHz }, .release = stb6000_release, .sleep = stb6000_sleep,
drivers/media/dvb-frontends/stb6100.c +2 -3
@@ -527,9 +527,8 @@ static int stb6100_set_params(struct dvb_frontend *fe)static const struct dvb_tuner_ops stb6100_ops = { .info = { .name ="STB6100 Silicon Tuner" , - .frequency_min =950000 , - .frequency_max =2150000 , - .frequency_step =0 , + .frequency_min_hz =950 * MHz, + .frequency_max_hz =2150 * MHz, }, .init = stb6100_init,
drivers/media/dvb-frontends/stv6110.c +3 -3
@@ -371,9 +371,9 @@ static int stv6110_get_bandwidth(struct dvb_frontend *fe, u32 *bandwidth)static const struct dvb_tuner_ops stv6110_tuner_ops = { .info = { .name ="ST STV6110" , - .frequency_min =950000 , - .frequency_max =2150000 , - .frequency_step =1000 , + .frequency_min_hz =950 * MHz, + .frequency_max_hz =2150 * MHz, + .frequency_step_hz =1 * MHz, }, .init = stv6110_init, .release = stv6110_release,
drivers/media/dvb-frontends/stv6110x.c +3 -4
@@ -347,10 +347,9 @@ static void stv6110x_release(struct dvb_frontend *fe)static const struct dvb_tuner_ops stv6110x_ops = { .info = { - .name ="STV6110(A) Silicon Tuner" , - .frequency_min =950000 , - .frequency_max =2150000 , - .frequency_step =0 , + .name ="STV6110(A) Silicon Tuner" , + .frequency_min_hz =950 * MHz, + .frequency_max_hz =2150 * MHz, }, .release = stv6110x_release };
drivers/media/dvb-frontends/stv6111.c +2 -3
@@ -646,9 +646,8 @@ static int get_rf_strength(struct dvb_frontend *fe, u16 *st)static const struct dvb_tuner_ops tuner_ops = { .info = { .name ="ST STV6111" , - .frequency_min =950000 , - .frequency_max =2150000 , - .frequency_step =0 + .frequency_min_hz =950 * MHz, + .frequency_max_hz =2150 * MHz, }, .set_params = set_params, .release = release,
drivers/media/dvb-frontends/tda18271c2dd.c +3 -3
@@ -1214,9 +1214,9 @@ static int get_bandwidth(struct dvb_frontend *fe, u32 *bandwidth)static const struct dvb_tuner_ops tuner_ops = { .info = { .name ="NXP TDA18271C2D" , - .frequency_min =47125000 , - .frequency_max =865000000 , - .frequency_step =62500 + .frequency_min_hz =47125 * kHz, + .frequency_max_hz =865 * MHz, + .frequency_step_hz =62500 }, .init = init, .sleep = sleep,
drivers/media/dvb-frontends/tda665x.c +3 -3
@@ -231,9 +231,9 @@ struct dvb_frontend *tda665x_attach(struct dvb_frontend *fe, info = &fe->ops.tuner_ops.info;memcpy (info->name, config->name,sizeof (config->name)); - info->frequency_min = config->frequency_min; - info->frequency_max = config->frequency_max; - info->frequency_step = config->frequency_offst; + info->frequency_min_hz = config->frequency_min; + info->frequency_max_hz = config->frequency_max; + info->frequency_step_hz = config->frequency_offst;printk (KERN_DEBUG "%s: Attaching TDA665x (%s) tuner\n" , __func__, info->name);
drivers/media/dvb-frontends/tda8261.c +4 -5
@@ -163,10 +163,9 @@ static void tda8261_release(struct dvb_frontend *fe)static const struct dvb_tuner_ops tda8261_ops = { .info = { - .name ="TDA8261" , - .frequency_min =950000 , - .frequency_max =2150000 , - .frequency_step =0 + .name ="TDA8261" , + .frequency_min_hz =950 * MHz, + .frequency_max_hz =2150 * MHz, }, .set_params = tda8261_set_params,
@@ -190,7 +189,7 @@ struct dvb_frontend *tda8261_attach(struct dvb_frontend *fe, fe->tuner_priv = state; fe->ops.tuner_ops = tda8261_ops; - fe->ops.tuner_ops.info.frequency_step = div_tab[config->step_size]; + fe->ops.tuner_ops.info.frequency_step_hz = div_tab[config->step_size] * kHz;pr_info ("%s: Attaching TDA8261 8PSK/QPSK tuner\n" , __func__);
drivers/media/dvb-frontends/tda826x.c +2 -2
@@ -131,8 +131,8 @@ static int tda826x_get_frequency(struct dvb_frontend *fe, u32 *frequency)static const struct dvb_tuner_ops tda826x_tuner_ops = { .info = { .name ="Philips TDA826X" , - .frequency_min =950000 , - .frequency_max =2175000 + .frequency_min_hz =950 * MHz, + .frequency_max_hz =2175 * MHz }, .release = tda826x_release, .sleep = tda826x_sleep,
drivers/media/dvb-frontends/ts2020.c +2 -2
@@ -498,8 +498,8 @@ static int ts2020_read_signal_strength(struct dvb_frontend *fe,static const struct dvb_tuner_ops ts2020_tuner_ops = { .info = { .name ="TS2020" , - .frequency_min =950000 , - .frequency_max =2150000 + .frequency_min_hz =950 * MHz, + .frequency_max_hz =2150 * MHz }, .init = ts2020_init, .release = ts2020_release,
drivers/media/dvb-frontends/tua6100.c +3 -3
@@ -155,9 +155,9 @@ static int tua6100_get_frequency(struct dvb_frontend *fe, u32 *frequency)static const struct dvb_tuner_ops tua6100_tuner_ops = { .info = { .name ="Infineon TUA6100" , - .frequency_min =950000 , - .frequency_max =2150000 , - .frequency_step =1000 , + .frequency_min_hz =950 * MHz, + .frequency_max_hz =2150 * MHz, + .frequency_step_hz =1 * MHz, }, .release = tua6100_release, .sleep = tua6100_sleep,
drivers/media/dvb-frontends/zl10036.c +2 -2
@@ -443,8 +443,8 @@ static int zl10036_init(struct dvb_frontend *fe)static const struct dvb_tuner_ops zl10036_tuner_ops = { .info = { .name ="Zarlink ZL10036" , - .frequency_min =950000 , - .frequency_max =2175000 + .frequency_min_hz =950 * MHz, + .frequency_max_hz =2175 * MHz }, .init = zl10036_init, .release = zl10036_release,
drivers/media/tuners/e4000.c +3 -3
@@ -610,9 +610,9 @@ static int e4000_dvb_get_if_frequency(struct dvb_frontend *fe, u32 *frequency)static const struct dvb_tuner_ops e4000_dvb_tuner_ops = { .info = { - .name ="Elonics E4000" , - .frequency_min =174000000 , - .frequency_max =862000000 , + .name ="Elonics E4000" , + .frequency_min_hz =174 * MHz, + .frequency_max_hz =862 * MHz, }, .init = e4000_dvb_init,
drivers/media/tuners/fc0011.c +3 -3
@@ -472,10 +472,10 @@ static int fc0011_get_bandwidth(struct dvb_frontend *fe, u32 *bandwidth)static const struct dvb_tuner_ops fc0011_tuner_ops = { .info = { - .name ="Fitipower FC0011" , + .name ="Fitipower FC0011" , - .frequency_min =45000000 , - .frequency_max =1000000000 , + .frequency_min_hz =45 * MHz, + .frequency_max_hz =1000 * MHz, }, .release = fc0011_release,
drivers/media/tuners/fc0012.c +3 -4
@@ -415,11 +415,10 @@ static int fc0012_get_rf_strength(struct dvb_frontend *fe, u16 *strength)static const struct dvb_tuner_ops fc0012_tuner_ops = { .info = { - .name ="Fitipower FC0012" , + .name ="Fitipower FC0012" , - .frequency_min =37000000 ,/* estimate */ - .frequency_max =862000000 ,/* estimate */ - .frequency_step =0 , + .frequency_min_hz =37 * MHz,/* estimate */ + .frequency_max_hz =862 * MHz,/* estimate */ }, .release = fc0012_release,
drivers/media/tuners/fc0013.c +3 -4
@@ -574,11 +574,10 @@ static int fc0013_get_rf_strength(struct dvb_frontend *fe, u16 *strength)static const struct dvb_tuner_ops fc0013_tuner_ops = { .info = { - .name ="Fitipower FC0013" , + .name ="Fitipower FC0013" , - .frequency_min =37000000 ,/* estimate */ - .frequency_max =1680000000 ,/* CHECK */ - .frequency_step =0 , + .frequency_min_hz =37 * MHz,/* estimate */ + .frequency_max_hz =1680 * MHz,/* CHECK */ }, .release = fc0013_release,
drivers/media/tuners/fc2580.c +3 -3
@@ -355,9 +355,9 @@ static int fc2580_dvb_get_if_frequency(struct dvb_frontend *fe, u32 *frequency)static const struct dvb_tuner_ops fc2580_dvb_tuner_ops = { .info = { - .name ="FCI FC2580" , - .frequency_min =174000000 , - .frequency_max =862000000 , + .name ="FCI FC2580" , + .frequency_min_hz =174 * MHz, + .frequency_max_hz =862 * MHz, }, .init = fc2580_dvb_init,
drivers/media/tuners/it913x.c +3 -3
@@ -375,9 +375,9 @@ static int it913x_set_params(struct dvb_frontend *fe)static const struct dvb_tuner_ops it913x_tuner_ops = { .info = { - .name ="ITE IT913X" , - .frequency_min =174000000 , - .frequency_max =862000000 , + .name ="ITE IT913X" , + .frequency_min_hz =174 * MHz, + .frequency_max_hz =862 * MHz, }, .init = it913x_init,
drivers/media/tuners/m88rs6000t.c +3 -3
@@ -569,9 +569,9 @@ static int m88rs6000t_get_rf_strength(struct dvb_frontend *fe, u16 *strength)static const struct dvb_tuner_ops m88rs6000t_tuner_ops = { .info = { - .name ="Montage M88RS6000 Internal Tuner" , - .frequency_min =950000 , - .frequency_max =2150000 , + .name ="Montage M88RS6000 Internal Tuner" , + .frequency_min_hz =950 * MHz, + .frequency_max_hz =2150 * MHz, }, .init = m88rs6000t_init,
drivers/media/tuners/max2165.c +4 -4
@@ -377,10 +377,10 @@ static void max2165_release(struct dvb_frontend *fe)static const struct dvb_tuner_ops max2165_tuner_ops = { .info = { - .name ="Maxim MAX2165" , - .frequency_min =470000000 , - .frequency_max =862000000 , - .frequency_step =50000 , + .name ="Maxim MAX2165" , + .frequency_min_hz =470 * MHz, + .frequency_max_hz =862 * MHz, + .frequency_step_hz =50 * kHz, }, .release = max2165_release,
drivers/media/tuners/mc44s803.c +4 -4
@@ -300,10 +300,10 @@ static int mc44s803_get_if_frequency(struct dvb_frontend *fe, u32 *frequency)static const struct dvb_tuner_ops mc44s803_tuner_ops = { .info = { - .name ="Freescale MC44S803" , - .frequency_min =48000000 , - .frequency_max =1000000000 , - .frequency_step =100000 , + .name ="Freescale MC44S803" , + .frequency_min_hz =48 * MHz, + .frequency_max_hz =1000 * MHz, + .frequency_step_hz =100 * kHz, }, .release = mc44s803_release,
drivers/media/tuners/mt2060.c +4 -4
@@ -395,10 +395,10 @@ static void mt2060_release(struct dvb_frontend *fe)static const struct dvb_tuner_ops mt2060_tuner_ops = { .info = { - .name ="Microtune MT2060" , - .frequency_min =48000000 , - .frequency_max =860000000 , - .frequency_step =50000 , + .name ="Microtune MT2060" , + .frequency_min_hz =48 * MHz, + .frequency_max_hz =860 * MHz, + .frequency_step_hz =50 * kHz, }, .release = mt2060_release,
drivers/media/tuners/mt2063.c +3 -4
@@ -2200,10 +2200,9 @@ static int mt2063_get_bandwidth(struct dvb_frontend *fe, u32 *bw)static const struct dvb_tuner_ops mt2063_ops = { .info = { .name ="MT2063 Silicon Tuner" , - .frequency_min =45000000 , - .frequency_max =865000000 , - .frequency_step =0 , - }, + .frequency_min_hz =45 * MHz, + .frequency_max_hz =865 * MHz, + }, .init = mt2063_init, .sleep = MT2063_Sleep,
drivers/media/tuners/mt2131.c +4 -4
@@ -235,10 +235,10 @@ static void mt2131_release(struct dvb_frontend *fe)static const struct dvb_tuner_ops mt2131_tuner_ops = { .info = { - .name ="Microtune MT2131" , - .frequency_min =48000000 , - .frequency_max =860000000 , - .frequency_step =50000 , + .name ="Microtune MT2131" , + .frequency_min_hz =48 * MHz, + .frequency_max_hz =860 * MHz, + .frequency_step_hz =50 * kHz, }, .release = mt2131_release,
drivers/media/tuners/mt2266.c +4 -4
@@ -304,10 +304,10 @@ static void mt2266_release(struct dvb_frontend *fe)static const struct dvb_tuner_ops mt2266_tuner_ops = { .info = { - .name ="Microtune MT2266" , - .frequency_min =174000000 , - .frequency_max =862000000 , - .frequency_step =50000 , + .name ="Microtune MT2266" , + .frequency_min_hz =174 * MHz, + .frequency_max_hz =862 * MHz, + .frequency_step_hz =50 * kHz, }, .release = mt2266_release, .init = mt2266_init,
drivers/media/tuners/mxl301rf.c +2 -2
@@ -271,8 +271,8 @@ static const struct dvb_tuner_ops mxl301rf_ops = { .info = { .name = "MaxLinear MxL301RF", - .frequency_min = 93000000, - .frequency_max = 803142857, + .frequency_min_hz = 93 * MHz, + .frequency_max_hz = 803 * MHz + 142857, }, .init = mxl301rf_init,
drivers/media/tuners/mxl5005s.c +4 -4
@@ -4075,10 +4075,10 @@ static void mxl5005s_release(struct dvb_frontend *fe)static const struct dvb_tuner_ops mxl5005s_tuner_ops = { .info = { - .name ="MaxLinear MXL5005S" , - .frequency_min =48000000 , - .frequency_max =860000000 , - .frequency_step =50000 , + .name ="MaxLinear MXL5005S" , + .frequency_min_hz =48 * MHz, + .frequency_max_hz =860 * MHz, + .frequency_step_hz =50 * kHz, }, .release = mxl5005s_release,
drivers/media/tuners/qm1d1b0004.c +2 -2
@@ -186,8 +186,8 @@ static const struct dvb_tuner_ops qm1d1b0004_ops = { .info = { .name = "Sharp qm1d1b0004", - .frequency_min = 950000, - .frequency_max = 2150000, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, }, .init = qm1d1b0004_init,
drivers/media/tuners/qm1d1c0042.c +2 -2
@@ -388,8 +388,8 @@ static const struct dvb_tuner_ops qm1d1c0042_ops = { .info = { .name = "Sharp QM1D1C0042", - .frequency_min = 950000, - .frequency_max = 2150000, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, }, .init = qm1d1c0042_init,
drivers/media/tuners/qt1010.c +4 -4
@@ -394,10 +394,10 @@ static int qt1010_get_if_frequency(struct dvb_frontend *fe, u32 *frequency)static const struct dvb_tuner_ops qt1010_tuner_ops = { .info = { - .name ="Quantek QT1010" , - .frequency_min =QT1010_MIN_FREQ , - .frequency_max =QT1010_MAX_FREQ , - .frequency_step =QT1010_STEP , + .name ="Quantek QT1010" , + .frequency_min_hz =QT1010_MIN_FREQ , + .frequency_max_hz =QT1010_MAX_FREQ , + .frequency_step_hz =QT1010_STEP , }, .release = qt1010_release,
drivers/media/tuners/qt1010_priv.h +8 -6
@@ -71,12 +71,14 @@ reg def meaning2f 00 ? not used? */ -#define QT1010_STEP 125000/* 125 kHz used by Windows drivers, -hw could be more precise but we don't -know how to use */ -#define QT1010_MIN_FREQ 48000000/* 48 MHz */ -#define QT1010_MAX_FREQ 860000000/* 860 MHz */ -#define QT1010_OFFSET 1246000000/* 1246 MHz */ +#define QT1010_STEP (125 * kHz)/* +* used by Windows drivers, +* hw could be more precise but we don't +* know how to use +*/ +#define QT1010_MIN_FREQ (48 * MHz) +#define QT1010_MAX_FREQ (860 * MHz) +#define QT1010_OFFSET (1246 * MHz)#define QT1010_WR 0#define QT1010_RD 1
drivers/media/tuners/r820t.c +3 -3
@@ -2297,9 +2297,9 @@ static void r820t_release(struct dvb_frontend *fe)static const struct dvb_tuner_ops r820t_tuner_ops = { .info = { - .name ="Rafael Micro R820T" , - .frequency_min =42000000 , - .frequency_max =1002000000 , + .name ="Rafael Micro R820T" , + .frequency_min_hz =42 * MHz, + .frequency_max_hz =1002 * MHz, }, .init = r820t_init, .release = r820t_release,
drivers/media/tuners/si2157.c +3 -3
@@ -387,9 +387,9 @@ static int si2157_get_if_frequency(struct dvb_frontend *fe, u32 *frequency)static const struct dvb_tuner_ops si2157_ops = { .info = { - .name ="Silicon Labs Si2141/Si2146/2147/2148/2157/2158" , - .frequency_min =42000000 , - .frequency_max =870000000 , + .name ="Silicon Labs Si2141/Si2146/2147/2148/2157/2158" , + .frequency_min_hz =42 * MHz, + .frequency_max_hz =870 * MHz, }, .init = si2157_init,
drivers/media/tuners/tda18212.c +4 -4
@@ -175,11 +175,11 @@ static int tda18212_get_if_frequency(struct dvb_frontend *fe, u32 *frequency)static const struct dvb_tuner_ops tda18212_tuner_ops = { .info = { - .name ="NXP TDA18212" , + .name ="NXP TDA18212" , - .frequency_min =48000000 , - .frequency_max =864000000 , - .frequency_step =1000 , + .frequency_min_hz =48 * MHz, + .frequency_max_hz =864 * MHz, + .frequency_step_hz =1 * kHz, }, .set_params = tda18212_set_params,
drivers/media/tuners/tda18218.c +4 -4
@@ -269,11 +269,11 @@ static void tda18218_release(struct dvb_frontend *fe)static const struct dvb_tuner_ops tda18218_tuner_ops = { .info = { - .name ="NXP TDA18218" , + .name ="NXP TDA18218" , - .frequency_min =174000000 , - .frequency_max =864000000 , - .frequency_step =1000 , + .frequency_min_hz =174 * MHz, + .frequency_max_hz =864 * MHz, + .frequency_step_hz =1 * kHz, }, .release = tda18218_release,
drivers/media/tuners/tda18250.c +3 -3
@@ -740,9 +740,9 @@ static int tda18250_sleep(struct dvb_frontend *fe)static const struct dvb_tuner_ops tda18250_ops = { .info = { - .name ="NXP TDA18250" , - .frequency_min =42000000 , - .frequency_max =870000000 , + .name ="NXP TDA18250" , + .frequency_min_hz =42 * MHz, + .frequency_max_hz =870 * MHz, }, .init = tda18250_init,
drivers/media/tuners/tda18271-fe.c +3 -3
@@ -1240,9 +1240,9 @@ static int tda18271_set_config(struct dvb_frontend *fe, void *priv_cfg)static const struct dvb_tuner_ops tda18271_tuner_ops = { .info = { .name ="NXP TDA18271HD" , - .frequency_min =45000000 , - .frequency_max =864000000 , - .frequency_step =62500 + .frequency_min_hz =45 * MHz, + .frequency_max_hz =864 * MHz, + .frequency_step_hz =62500 }, .init = tda18271_init, .sleep = tda18271_sleep,
drivers/media/tuners/tda827x.c +6 -6
@@ -816,9 +816,9 @@ static int tda827x_initial_sleep(struct dvb_frontend *fe)static const struct dvb_tuner_ops tda827xo_tuner_ops = { .info = { .name ="Philips TDA827X" , - .frequency_min =55000000 , - .frequency_max =860000000 , - .frequency_step =250000 + .frequency_min_hz =55 * MHz, + .frequency_max_hz =860 * MHz, + .frequency_step_hz =250 * kHz }, .release = tda827x_release, .init = tda827x_initial_init,
@@ -832,9 +832,9 @@ static const struct dvb_tuner_ops tda827xo_tuner_ops = {static const struct dvb_tuner_ops tda827xa_tuner_ops = { .info = { .name ="Philips TDA827XA" , - .frequency_min =44000000 , - .frequency_max =906000000 , - .frequency_step =62500 + .frequency_min_hz =44 * MHz, + .frequency_max_hz =906 * MHz, + .frequency_step_hz =62500 }, .release = tda827x_release, .init = tda827x_init,
drivers/media/tuners/tua9001.c +3 -3
@@ -164,9 +164,9 @@ static int tua9001_get_if_frequency(struct dvb_frontend *fe, u32 *frequency)static const struct dvb_tuner_ops tua9001_tuner_ops = { .info = { - .name ="Infineon TUA9001" , - .frequency_min =170000000 , - .frequency_max =862000000 , + .name ="Infineon TUA9001" , + .frequency_min_hz =170 * MHz, + .frequency_max_hz =862 * MHz, }, .init = tua9001_init,
drivers/media/tuners/tuner-xc2028.c +3 -3
@@ -1440,9 +1440,9 @@ static int xc2028_set_config(struct dvb_frontend *fe, void *priv_cfg)static const struct dvb_tuner_ops xc2028_dvb_tuner_ops = { .info = { .name ="Xceive XC3028" , - .frequency_min =42000000 , - .frequency_max =864000000 , - .frequency_step =50000 , + .frequency_min_hz =42 * MHz, + .frequency_max_hz =864 * MHz, + .frequency_step_hz =50 * kHz, }, .set_config = xc2028_set_config,
drivers/media/tuners/xc4000.c +6 -6
@@ -398,8 +398,8 @@ static int xc_set_rf_frequency(struct xc4000_priv *priv, u32 freq_hz)dprintk (1 ,"%s(%u)\n" , __func__, freq_hz); -if ((freq_hz > xc4000_tuner_ops.info.frequency_max) || - (freq_hz < xc4000_tuner_ops.info.frequency_min)) +if ((freq_hz > xc4000_tuner_ops.info.frequency_max_hz) || + (freq_hz < xc4000_tuner_ops.info.frequency_min_hz))return -EINVAL ; freq_code = (u16)(freq_hz /15625 );
@@ -1635,10 +1635,10 @@ static void xc4000_release(struct dvb_frontend *fe)static const struct dvb_tuner_ops xc4000_tuner_ops = { .info = { - .name ="Xceive XC4000" , - .frequency_min =1000000 , - .frequency_max =1023000000 , - .frequency_step =50000 , + .name ="Xceive XC4000" , + .frequency_min_hz =1 * MHz, + .frequency_max_hz =1023 * MHz, + .frequency_step_hz =50 * kHz, }, .release = xc4000_release,
drivers/media/tuners/xc5000.c +6 -6
@@ -460,8 +460,8 @@ static int xc_set_rf_frequency(struct xc5000_priv *priv, u32 freq_hz)dprintk (1 ,"%s(%u)\n" , __func__, freq_hz); -if ((freq_hz > xc5000_tuner_ops.info.frequency_max) || - (freq_hz < xc5000_tuner_ops.info.frequency_min)) +if ((freq_hz > xc5000_tuner_ops.info.frequency_max_hz) || + (freq_hz < xc5000_tuner_ops.info.frequency_min_hz))return -EINVAL ; freq_code = (u16)(freq_hz /15625 );
@@ -1350,10 +1350,10 @@ static int xc5000_set_config(struct dvb_frontend *fe, void *priv_cfg)static const struct dvb_tuner_ops xc5000_tuner_ops = { .info = { - .name ="Xceive XC5000" , - .frequency_min =1000000 , - .frequency_max =1023000000 , - .frequency_step =50000 , + .name ="Xceive XC5000" , + .frequency_min_hz =1 * MHz, + .frequency_max_hz =1023 * MHz, + .frequency_step_hz =50 * kHz, }, .release = xc5000_release,
drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.c +3 -3
@@ -465,9 +465,9 @@ static const struct dvb_tuner_ops mxl111sf_tuner_tuner_ops = { .info = { .name = "MaxLinear MxL111SF",#if 0 - .frequency_min = , - .frequency_max = , - .frequency_step = , + .frequency_min_hz = , + .frequency_max_hz = , + .frequency_step_hz = ,#endif },#if 0
include/media/dvb_frontend.h +10 -9
@@ -52,6 +52,10 @@*/ #define MAX_DELSYS 8 +/* Helper definitions to be used at frontend drivers */ +#define kHz 1000UL +#define MHz 1000000UL +/** * struct dvb_frontend_tune_settings - parameters to adjust frontend tuning *
@@ -73,22 +77,19 @@ struct dvb_frontend;* struct dvb_tuner_info - Frontend name and min/max ranges/bandwidths * * @name: name of the Frontend -* @frequency_min: minimal frequency supported -* @frequency_max: maximum frequency supported -* @frequency_step: frequency step +* @frequency_min_hz: minimal frequency supported in Hz +* @frequency_max_hz: maximum frequency supported in Hz +* @frequency_step_hz: frequency step in Hz * @bandwidth_min: minimal frontend bandwidth supported * @bandwidth_max: maximum frontend bandwidth supported * @bandwidth_step: frontend bandwidth step -* -* NOTE: frequency parameters are in Hz, for terrestrial/cable or kHz for -* satellite. */ struct dvb_tuner_info {char name[128 ]; -u32 frequency_min; -u32 frequency_max; -u32 frequency_step; +u32 frequency_min_hz; +u32 frequency_max_hz; +u32 frequency_step_hz;u32 bandwidth_min;u32 bandwidth_max;
Signature · 1 line
2.17.1
PATCH v2 2/3 media: dvb: represent min/max/step/tolerance freqs in Hz
In reply to Mauro Carvalho ChehabRight 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.
--- drivers/media/common/siano/smsdvb-main.c | 6 +- drivers/media/dvb-core/dvb_frontend.c | 90 +++++++++++++------ drivers/media/dvb-frontends/af9013.c | 7 +- drivers/media/dvb-frontends/af9033.c | 7 +- drivers/media/dvb-frontends/as102_fe.c | 6 +- drivers/media/dvb-frontends/atbm8830.c | 6 +- drivers/media/dvb-frontends/au8522_dig.c | 6 +- drivers/media/dvb-frontends/bcm3510.c | 6 +- drivers/media/dvb-frontends/cx22700.c | 6 +- drivers/media/dvb-frontends/cx22702.c | 6 +- drivers/media/dvb-frontends/cx24110.c | 8 +- drivers/media/dvb-frontends/cx24116.c | 8 +- drivers/media/dvb-frontends/cx24117.c | 8 +- drivers/media/dvb-frontends/cx24120.c | 8 +- drivers/media/dvb-frontends/cx24123.c | 8 +- drivers/media/dvb-frontends/cxd2820r_t.c | 4 +- drivers/media/dvb-frontends/cxd2820r_t2.c | 4 +- drivers/media/dvb-frontends/cxd2841er.c | 9 +- .../media/dvb-frontends/cxd2880/cxd2880_top.c | 6 +- drivers/media/dvb-frontends/dib3000mb.c | 6 +- drivers/media/dvb-frontends/dib3000mc.c | 6 +- drivers/media/dvb-frontends/dib7000m.c | 6 +- drivers/media/dvb-frontends/dib7000p.c | 6 +- drivers/media/dvb-frontends/dib8000.c | 6 +- drivers/media/dvb-frontends/dib9000.c | 6 +- drivers/media/dvb-frontends/drx39xyj/drxj.c | 6 +- drivers/media/dvb-frontends/drxd_hard.c | 7 +- drivers/media/dvb-frontends/drxk_hard.c | 8 +- drivers/media/dvb-frontends/ds3000.c | 8 +- drivers/media/dvb-frontends/dvb_dummy_fe.c | 24 ++--- drivers/media/dvb-frontends/gp8psk-fe.c | 6 +- drivers/media/dvb-frontends/ix2505v.c | 4 +- drivers/media/dvb-frontends/l64781.c | 7 +- drivers/media/dvb-frontends/lg2160.c | 12 +-- drivers/media/dvb-frontends/lgdt3305.c | 12 +-- drivers/media/dvb-frontends/lgdt3306a.c | 6 +- drivers/media/dvb-frontends/lgdt330x.c | 12 +-- drivers/media/dvb-frontends/lgs8gl5.c | 7 +- drivers/media/dvb-frontends/lgs8gxx.c | 6 +- drivers/media/dvb-frontends/m88ds3103.c | 6 +- drivers/media/dvb-frontends/m88rs2000.c | 8 +- drivers/media/dvb-frontends/mb86a16.c | 7 +- drivers/media/dvb-frontends/mb86a20s.c | 6 +- drivers/media/dvb-frontends/mt312.c | 10 +-- drivers/media/dvb-frontends/mt352.c | 7 +- drivers/media/dvb-frontends/mxl5xx.c | 6 +- drivers/media/dvb-frontends/nxt200x.c | 6 +- drivers/media/dvb-frontends/nxt6000.c | 6 +- drivers/media/dvb-frontends/or51132.c | 6 +- drivers/media/dvb-frontends/or51211.c | 8 +- drivers/media/dvb-frontends/rtl2830.c | 4 +- drivers/media/dvb-frontends/rtl2832.c | 10 +-- drivers/media/dvb-frontends/s5h1409.c | 6 +- drivers/media/dvb-frontends/s5h1411.c | 6 +- drivers/media/dvb-frontends/s5h1420.c | 8 +- drivers/media/dvb-frontends/s5h1432.c | 6 +- drivers/media/dvb-frontends/s921.c | 7 +- drivers/media/dvb-frontends/si2165.c | 2 +- drivers/media/dvb-frontends/si21xx.c | 7 +- drivers/media/dvb-frontends/sp8870.c | 6 +- drivers/media/dvb-frontends/sp887x.c | 6 +- drivers/media/dvb-frontends/stb0899_drv.c | 6 +- drivers/media/dvb-frontends/stv0288.c | 7 +- drivers/media/dvb-frontends/stv0297.c | 6 +- drivers/media/dvb-frontends/stv0299.c | 7 +- drivers/media/dvb-frontends/stv0367.c | 20 ++--- drivers/media/dvb-frontends/stv0900_core.c | 7 +- drivers/media/dvb-frontends/stv090x.c | 6 +- drivers/media/dvb-frontends/stv0910.c | 6 +- drivers/media/dvb-frontends/tc90522.c | 10 +-- drivers/media/dvb-frontends/tda10021.c | 10 +-- drivers/media/dvb-frontends/tda10023.c | 6 +- drivers/media/dvb-frontends/tda10048.c | 6 +- drivers/media/dvb-frontends/tda1004x.c | 12 +-- drivers/media/dvb-frontends/tda10071.c | 10 +-- drivers/media/dvb-frontends/tda10086.c | 6 +- drivers/media/dvb-frontends/tda8083.c | 7 +- drivers/media/dvb-frontends/ves1820.c | 6 +- drivers/media/dvb-frontends/ves1x93.c | 8 +- drivers/media/dvb-frontends/zl10036.c | 4 +- drivers/media/dvb-frontends/zl10353.c | 7 +- drivers/media/firewire/firedtv-fe.c | 26 +++--- drivers/media/pci/bt8xx/dst.c | 26 +++--- drivers/media/pci/bt8xx/dvb-bt8xx.c | 8 +- drivers/media/pci/ddbridge/ddbridge-mci.c | 6 +- drivers/media/pci/mantis/mantis_vp3030.c | 4 +- drivers/media/tuners/mxl5007t.c | 2 - drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c | 6 +- drivers/media/usb/dvb-usb/af9005-fe.c | 6 +- drivers/media/usb/dvb-usb/cinergyT2-fe.c | 6 +- drivers/media/usb/dvb-usb/dtt200u-fe.c | 6 +- drivers/media/usb/dvb-usb/friio-fe.c | 11 ++- drivers/media/usb/dvb-usb/vp702x-fe.c | 7 +- drivers/media/usb/dvb-usb/vp7045-fe.c | 6 +- drivers/media/usb/ttusb-dec/ttusbdecfe.c | 12 +-- include/media/dvb_frontend.h | 30 ++++++- 96 files changed, 432 insertions(+), 401 deletions(-)
drivers/media/common/siano/smsdvb-main.c +3 -3
@@ -1047,9 +1047,9 @@ static void smsdvb_release(struct dvb_frontend *fe)static const struct dvb_frontend_ops smsdvb_fe_ops = { .info = { .name ="Siano Mobile Digital MDTV Receiver" , - .frequency_min =44250000 , - .frequency_max =867250000 , - .frequency_stepsize =250000 , + .frequency_min_hz =44250 * kHz, + .frequency_max_hz =867250 * kHz, + .frequency_stepsize_hz =250 * kHz, .caps =FE_CAN_INVERSION_AUTO |FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/dvb-core/dvb_frontend.c +63 -27
135 lines not on this page · raw message
drivers/media/dvb-frontends/af9013.c +3 -4
@@ -1136,10 +1136,9 @@ static const struct dvb_frontend_ops af9013_ops = { .delsys = { SYS_DVBT }, .info = { .name = "Afatech AF9013", - .frequency_min = 174000000, - .frequency_max = 862000000, - .frequency_stepsize = 250000, - .frequency_tolerance = 0, + .frequency_min_hz = 174 * MHz, + .frequency_max_hz = 862 * MHz, + .frequency_stepsize_hz = 250 * kHz, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
drivers/media/dvb-frontends/af9033.c +3 -4
@@ -1020,10 +1020,9 @@ static const struct dvb_frontend_ops af9033_ops = { .delsys = {SYS_DVBT}, .info = { .name = "Afatech AF9033 (DVB-T)", - .frequency_min = 174000000, - .frequency_max = 862000000, - .frequency_stepsize = 250000, - .frequency_tolerance = 0, + .frequency_min_hz = 174 * MHz, + .frequency_max_hz = 862 * MHz, + .frequency_stepsize_hz = 250 * kHz, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
drivers/media/dvb-frontends/as102_fe.c +3 -3
@@ -419,9 +419,9 @@ static const struct dvb_frontend_ops as102_fe_ops = { .delsys = { SYS_DVBT }, .info = { .name = "Abilis AS102 DVB-T", - .frequency_min = 174000000, - .frequency_max = 862000000, - .frequency_stepsize =166667 , + .frequency_min_hz = 174 * MHz, + .frequency_max_hz = 862 * MHz, + .frequency_stepsize_hz =166667 , .caps = FE_CAN_INVERSION_AUTO |FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8 |FE_CAN_FEC_AUTO
drivers/media/dvb-frontends/atbm8830.c +3 -3
@@ -428,9 +428,9 @@ static const struct dvb_frontend_ops atbm8830_ops = { .delsys = { SYS_DTMB }, .info = { .name = "AltoBeam ATBM8830/8831 DMB-TH", - .frequency_min = 474000000, - .frequency_max = 858000000, - .frequency_stepsize = 10000, + .frequency_min_hz = 474 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 10 * kHz, .caps =FE_CAN_FEC_AUTO | FE_CAN_QAM_AUTO |
drivers/media/dvb-frontends/au8522_dig.c +3 -3
@@ -897,9 +897,9 @@ static const struct dvb_frontend_ops au8522_ops = { .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .info = { .name ="Auvitek AU8522 QAM/8VSB Frontend" , - .frequency_min = 54000000, - .frequency_max = 858000000, - .frequency_stepsize = 62500, + .frequency_min_hz = 54 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 62500, .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB },
drivers/media/dvb-frontends/bcm3510.c +2 -4
@@ -840,10 +840,8 @@ static const struct dvb_frontend_ops bcm3510_ops = { .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .info = { .name ="Broadcom BCM3510 VSB/QAM frontend" , - .frequency_min = 54000000, - .frequency_max = 803000000, -/* stepsize is just a guess */ - .frequency_stepsize = 0, + .frequency_min_hz = 54 * MHz, + .frequency_max_hz = 803 * MHz, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/dvb-frontends/cx22700.c +3 -3
@@ -412,9 +412,9 @@ static const struct dvb_frontend_ops cx22700_ops = { .delsys = { SYS_DVBT }, .info = { .name = "Conexant CX22700 DVB-T", - .frequency_min = 470000000, - .frequency_max = 860000000, - .frequency_stepsize = 166667, + .frequency_min_hz = 470 * MHz, + .frequency_max_hz = 860 * MHz, + .frequency_stepsize_hz = 166667, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8 |FE_CAN_FEC_AUTO | FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
drivers/media/dvb-frontends/cx22702.c +3 -3
@@ -622,9 +622,9 @@ static const struct dvb_frontend_ops cx22702_ops = { .delsys = { SYS_DVBT }, .info = { .name = "Conexant CX22702 DVB-T", - .frequency_min = 177000000, - .frequency_max = 858000000, - .frequency_stepsize = 166666, + .frequency_min_hz = 177 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 166666, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8 |FE_CAN_FEC_AUTO | FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO |
drivers/media/dvb-frontends/cx24110.c +4 -4
@@ -629,10 +629,10 @@ static const struct dvb_frontend_ops cx24110_ops = { .delsys = { SYS_DVBS }, .info = { .name = "Conexant CX24110 DVB-S", - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 1011, /* kHz for QPSK frontends */ - .frequency_tolerance = 29500, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 1011 * kHz, + .frequency_tolerance_hz = 29500 * kHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .caps = FE_CAN_INVERSION_AUTO |
drivers/media/dvb-frontends/cx24116.c +4 -4
@@ -1465,10 +1465,10 @@ static const struct dvb_frontend_ops cx24116_ops = { .delsys = { SYS_DVBS, SYS_DVBS2 }, .info = { .name ="Conexant CX24116/CX24118" , - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 1011, /* kHz for QPSK frontends */ - .frequency_tolerance = 5000, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 1011 * kHz, + .frequency_tolerance_hz = 5 * MHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .caps = FE_CAN_INVERSION_AUTO |
drivers/media/dvb-frontends/cx24117.c +4 -4
@@ -1622,10 +1622,10 @@ static const struct dvb_frontend_ops cx24117_ops = { .delsys = { SYS_DVBS, SYS_DVBS2 }, .info = { .name ="Conexant CX24117/CX24132" , - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 1011, /* kHz for QPSK frontends */ - .frequency_tolerance = 5000, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 1011 * kHz, + .frequency_tolerance_hz = 5 * MHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .caps = FE_CAN_INVERSION_AUTO |
drivers/media/dvb-frontends/cx24120.c +4 -4
@@ -1555,10 +1555,10 @@ static const struct dvb_frontend_ops cx24120_ops = { .delsys = { SYS_DVBS, SYS_DVBS2 }, .info = { .name ="Conexant CX24120/CX24118" , - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 1011, /* kHz for QPSK frontends */ - .frequency_tolerance = 5000, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 1011 * kHz, + .frequency_tolerance_hz = 5 * MHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .caps = FE_CAN_INVERSION_AUTO |
drivers/media/dvb-frontends/cx24123.c +4 -4
@@ -1111,10 +1111,10 @@ static const struct dvb_frontend_ops cx24123_ops = { .delsys = { SYS_DVBS }, .info = { .name = "Conexant CX24123/CX24109", - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 1011, /* kHz for QPSK frontends */ - .frequency_tolerance = 5000, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 1011 * kHz, + .frequency_tolerance_hz = 5 * MHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .caps = FE_CAN_INVERSION_AUTO |
drivers/media/dvb-frontends/cxd2820r_t.c +2 -2
@@ -431,8 +431,8 @@ int cxd2820r_get_tune_settings_t(struct dvb_frontend *fe, struct dvb_frontend_tune_settings *s) { s->min_delay_ms =500 ; - s->step_size = fe->ops.info.frequency_stepsize *2 ; - s->max_drift = (fe->ops.info.frequency_stepsize *2 ) +1 ; + s->step_size = fe->ops.info.frequency_stepsize_hz *2 ; + s->max_drift = (fe->ops.info.frequency_stepsize_hz *2 ) +1 ;return 0 ; }
drivers/media/dvb-frontends/cxd2820r_t2.c +2 -2
@@ -426,8 +426,8 @@ int cxd2820r_get_tune_settings_t2(struct dvb_frontend *fe, struct dvb_frontend_tune_settings *s) { s->min_delay_ms =1500 ; - s->step_size = fe->ops.info.frequency_stepsize *2 ; - s->max_drift = (fe->ops.info.frequency_stepsize *2 ) +1 ; + s->step_size = fe->ops.info.frequency_stepsize_hz *2 ; + s->max_drift = (fe->ops.info.frequency_stepsize_hz *2 ) +1 ;return 0 ; }
drivers/media/dvb-frontends/cxd2841er.c +4 -5
@@ -3942,9 +3942,8 @@ static const struct dvb_frontend_ops cxd2841er_dvbs_s2_ops = { .delsys = { SYS_DVBS, SYS_DVBS2 }, .info = { .name ="Sony CXD2841ER DVB-S/S2 demodulator" , - .frequency_min = 500000, - .frequency_max = 2500000, - .frequency_stepsize = 0, + .frequency_min_hz = 500 * MHz, + .frequency_max_hz = 2500 * MHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .symbol_rate_tolerance = 500,
@@ -3988,8 +3987,8 @@ static struct dvb_frontend_ops cxd2841er_t_c_ops = {FE_CAN_HIERARCHY_AUTO |FE_CAN_MUTE_TS | FE_CAN_2G_MODULATION, - .frequency_min = 42000000, - .frequency_max = 1002000000, + .frequency_min_hz = 42 * MHz, + .frequency_max_hz = 1002 * MHz, .symbol_rate_min = 870000, .symbol_rate_max =11700000 },
drivers/media/dvb-frontends/cxd2880/cxd2880_top.c +3 -3
@@ -1833,9 +1833,9 @@ static enum dvbfe_algo cxd2880_get_frontend_algo(struct dvb_frontend *fe)static struct dvb_frontend_ops cxd2880_dvbt_t2_ops = { .info = { .name ="Sony CXD2880" , - .frequency_min =174000000 , - .frequency_max =862000000 , - .frequency_stepsize =1000 , + .frequency_min_hz =174 * MHz, + .frequency_max_hz =862 * MHz, + .frequency_stepsize_hz =1 * kHz, .caps =FE_CAN_INVERSION_AUTO |FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 |
drivers/media/dvb-frontends/dib3000mb.c +3 -3
@@ -786,9 +786,9 @@ static const struct dvb_frontend_ops dib3000mb_ops = { .delsys = { SYS_DVBT }, .info = { .name = "DiBcom 3000M-B DVB-T", - .frequency_min = 44250000, - .frequency_max = 867250000, - .frequency_stepsize = 62500, + .frequency_min_hz = 44250 * kHz, + .frequency_max_hz = 867250 * kHz, + .frequency_stepsize_hz = 62500, .caps =FE_CAN_INVERSION_AUTO |FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/dvb-frontends/dib3000mc.c +3 -3
@@ -944,9 +944,9 @@ static const struct dvb_frontend_ops dib3000mc_ops = { .delsys = { SYS_DVBT }, .info = { .name = "DiBcom 3000MC/P", - .frequency_min = 44250000, - .frequency_max = 867250000, - .frequency_stepsize = 62500, + .frequency_min_hz = 44250 * kHz, + .frequency_max_hz = 867250 * kHz, + .frequency_stepsize_hz = 62500, .caps =FE_CAN_INVERSION_AUTO |FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/dvb-frontends/dib7000m.c +3 -3
@@ -1443,9 +1443,9 @@ static const struct dvb_frontend_ops dib7000m_ops = { .delsys = { SYS_DVBT }, .info = { .name = "DiBcom 7000MA/MB/PA/PB/MC", - .frequency_min = 44250000, - .frequency_max = 867250000, - .frequency_stepsize = 62500, + .frequency_min_hz = 44250 * kHz, + .frequency_max_hz = 867250 * kHz, + .frequency_stepsize_hz = 62500, .caps =FE_CAN_INVERSION_AUTO |FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/dvb-frontends/dib7000p.c +3 -3
@@ -2824,9 +2824,9 @@ static const struct dvb_frontend_ops dib7000p_ops = { .delsys = { SYS_DVBT }, .info = { .name = "DiBcom 7000PC", - .frequency_min = 44250000, - .frequency_max = 867250000, - .frequency_stepsize = 62500, + .frequency_min_hz = 44250 * kHz, + .frequency_max_hz = 867250 * kHz, + .frequency_stepsize_hz = 62500, .caps =FE_CAN_INVERSION_AUTO |FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/dvb-frontends/dib8000.c +3 -3
@@ -4390,9 +4390,9 @@ static const struct dvb_frontend_ops dib8000_ops = { .delsys = { SYS_ISDBT }, .info = { .name = "DiBcom 8000 ISDB-T", - .frequency_min = 44250000, - .frequency_max = 867250000, - .frequency_stepsize = 62500, + .frequency_min_hz = 44250 * kHz, + .frequency_max_hz = 867250 * kHz, + .frequency_stepsize_hz = 62500, .caps =FE_CAN_INVERSION_AUTO |FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/dvb-frontends/dib9000.c +3 -3
@@ -2553,9 +2553,9 @@ static const struct dvb_frontend_ops dib9000_ops = { .delsys = { SYS_DVBT }, .info = { .name = "DiBcom 9000", - .frequency_min = 44250000, - .frequency_max = 867250000, - .frequency_stepsize = 62500, + .frequency_min_hz = 44250 * kHz, + .frequency_max_hz = 867250 * kHz, + .frequency_stepsize_hz = 62500, .caps =FE_CAN_INVERSION_AUTO |FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/dvb-frontends/drx39xyj/drxj.c +3 -3
@@ -12374,9 +12374,9 @@ static const struct dvb_frontend_ops drx39xxj_ops = { .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .info = { .name ="Micronas DRX39xxj family Frontend" , - .frequency_stepsize = 62500, - .frequency_min = 51000000, - .frequency_max = 858000000, + .frequency_min_hz = 51 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 62500, .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB },
drivers/media/dvb-frontends/drxd_hard.c +3 -4
@@ -2912,10 +2912,9 @@ static const struct dvb_frontend_ops drxd_ops = { .delsys = { SYS_DVBT}, .info = { .name = "Micronas DRXD DVB-T", - .frequency_min = 47125000, - .frequency_max = 855250000, - .frequency_stepsize = 166667, - .frequency_tolerance = 0, + .frequency_min_hz = 47125 * kHz, + .frequency_max_hz = 855250 * kHz, + .frequency_stepsize_hz = 166667, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/dvb-frontends/drxk_hard.c +4 -4
@@ -6744,13 +6744,13 @@ static const struct dvb_frontend_ops drxk_ops = {/* .delsys will be filled dynamically */ .info = { .name = "DRXK", - .frequency_min = 47000000, - .frequency_max = 865000000, + .frequency_min_hz = 47 * MHz, + .frequency_max_hz = 865 * MHz,/* For DVB-C */ - .symbol_rate_min = 870000, + .symbol_rate_min = 870000, .symbol_rate_max = 11700000,/* For DVB-T */ - .frequency_stepsize = 166667, + .frequency_stepsize_hz = 166667, .caps =FE_CAN_QAM_16 |FE_CAN_QAM_32 |FE_CAN_QAM_64 | FE_CAN_QAM_128 | FE_CAN_QAM_256 | FE_CAN_FEC_AUTO |
drivers/media/dvb-frontends/ds3000.c +4 -4
@@ -1100,10 +1100,10 @@ static const struct dvb_frontend_ops ds3000_ops = { .delsys = { SYS_DVBS, SYS_DVBS2 }, .info = { .name ="Montage Technology DS3000" , - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 1011, /* kHz for QPSK frontends */ - .frequency_tolerance = 5000, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 1011 * kHz, + .frequency_tolerance_hz = 5 * MHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .caps = FE_CAN_INVERSION_AUTO |
drivers/media/dvb-frontends/dvb_dummy_fe.c +12 -12
@@ -170,9 +170,9 @@ static const struct dvb_frontend_ops dvb_dummy_fe_ofdm_ops = { .delsys = { SYS_DVBT }, .info = { .name = "Dummy DVB-T", - .frequency_min = 0, - .frequency_max = 863250000, - .frequency_stepsize = 62500, + .frequency_min_hz = 0, + .frequency_max_hz = 863250 * kHz, + .frequency_stepsize_hz = 62500, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_4_5 |FE_CAN_FEC_5_6 |FE_CAN_FEC_6_7 | FE_CAN_FEC_7_8 | FE_CAN_FEC_8_9 | FE_CAN_FEC_AUTO |
@@ -201,11 +201,11 @@ static const struct dvb_frontend_ops dvb_dummy_fe_qam_ops = { .delsys = { SYS_DVBC_ANNEX_A }, .info = { .name = "Dummy DVB-C", - .frequency_stepsize = 62500, - .frequency_min = 51000000, - .frequency_max = 858000000, - .symbol_rate_min = (57840000/2)/64, /* SACLK/64 == (XIN/2)/64 */ - .symbol_rate_max = (57840000 /2 )/4 ,/* SACLK/4 */ + .frequency_min_hz = 51 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 62500, + .symbol_rate_min = (57840000 / 2) / 64, /* SACLK/64 == (XIN/2)/64 */ + .symbol_rate_max = (57840000 /2 ) /4 ,/* SACLK/4 */ .caps = FE_CAN_QAM_16 | FE_CAN_QAM_32 | FE_CAN_QAM_64 |FE_CAN_QAM_128 |FE_CAN_QAM_256 |FE_CAN_FEC_AUTO |FE_CAN_INVERSION_AUTO
@@ -230,10 +230,10 @@ static const struct dvb_frontend_ops dvb_dummy_fe_qpsk_ops = { .delsys = { SYS_DVBS }, .info = { .name = "Dummy DVB-S", - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 250, /* kHz for QPSK frontends */ - .frequency_tolerance = 29500, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 250 * kHz, + .frequency_tolerance_hz = 29500 * kHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .caps = FE_CAN_INVERSION_AUTO |
drivers/media/dvb-frontends/gp8psk-fe.c +3 -3
@@ -355,9 +355,9 @@ static const struct dvb_frontend_ops gp8psk_fe_ops = { .delsys = { SYS_DVBS }, .info = { .name = "Genpix DVB-S", - .frequency_min = 800000, - .frequency_max = 2250000, - .frequency_stepsize = 100, + .frequency_min_hz = 800 * MHz, + .frequency_max_hz = 2250 * MHz, + .frequency_stepsize_hz = 100 * kHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .symbol_rate_tolerance = 500, /* ppm */
drivers/media/dvb-frontends/ix2505v.c +2 -2
@@ -135,8 +135,8 @@ static int ix2505v_set_params(struct dvb_frontend *fe)u8 gain, cc, ref, psc, local_osc, lpf;u8 data[4 ] = {0 }; -if ((frequency < fe->ops.info.frequency_min) - || (frequency > fe->ops.info.frequency_max)) +if ((frequency < fe->ops.info.frequency_min_hz / kHz) + || (frequency > fe->ops.info.frequency_max_hz / kHz))return -EINVAL ;if (state->config->tuner_gain)
drivers/media/dvb-frontends/l64781.c +3 -4
@@ -575,10 +575,9 @@ static const struct dvb_frontend_ops l64781_ops = { .delsys = { SYS_DVBT }, .info = { .name = "LSI L64781 DVB-T", -/* .frequency_min = ???,*/ -/* .frequency_max = ???,*/ - .frequency_stepsize = 166666, -/* .frequency_tolerance = ???,*/ +/* .frequency_min_hz = ???,*/ +/* .frequency_max_hz = ???,*/ + .frequency_stepsize_hz = 166666,/* .symbol_rate_tolerance = ???,*/ .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 |
drivers/media/dvb-frontends/lg2160.c +6 -6
@@ -1349,9 +1349,9 @@ static const struct dvb_frontend_ops lg2160_ops = { .delsys = { SYS_ATSCMH }, .info = { .name = "LG Electronics LG2160 ATSC/MH Frontend", - .frequency_min = 54000000, - .frequency_max = 858000000, - .frequency_stepsize = 62500, + .frequency_min_hz = 54 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 62500, }, .i2c_gate_ctrl = lg216x_i2c_gate_ctrl, #if 0
@@ -1375,9 +1375,9 @@ static const struct dvb_frontend_ops lg2161_ops = { .delsys = { SYS_ATSCMH }, .info = { .name = "LG Electronics LG2161 ATSC/MH Frontend", - .frequency_min = 54000000, - .frequency_max = 858000000, - .frequency_stepsize = 62500, + .frequency_min_hz = 54 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 62500, }, .i2c_gate_ctrl = lg216x_i2c_gate_ctrl, #if 0
drivers/media/dvb-frontends/lgdt3305.c +6 -6
@@ -1164,9 +1164,9 @@ static const struct dvb_frontend_ops lgdt3304_ops = { .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .info = { .name ="LG Electronics LGDT3304 VSB/QAM Frontend" , - .frequency_min = 54000000, - .frequency_max = 858000000, - .frequency_stepsize = 62500, + .frequency_min_hz = 54 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 62500, .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB }, .i2c_gate_ctrl = lgdt3305_i2c_gate_ctrl,
@@ -1187,9 +1187,9 @@ static const struct dvb_frontend_ops lgdt3305_ops = { .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .info = { .name ="LG Electronics LGDT3305 VSB/QAM Frontend" , - .frequency_min = 54000000, - .frequency_max = 858000000, - .frequency_stepsize = 62500, + .frequency_min_hz = 54 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 62500, .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB }, .i2c_gate_ctrl = lgdt3305_i2c_gate_ctrl,
drivers/media/dvb-frontends/lgdt3306a.c +3 -3
@@ -2157,9 +2157,9 @@ static const struct dvb_frontend_ops lgdt3306a_ops = { .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .info = { .name ="LG Electronics LGDT3306A VSB/QAM Frontend" , - .frequency_min = 54000000, - .frequency_max = 858000000, - .frequency_stepsize = 62500, + .frequency_min_hz = 54 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 62500, .caps = FE_CAN_QAM_AUTO | FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB }, .i2c_gate_ctrl = lgdt3306a_i2c_gate_ctrl,
drivers/media/dvb-frontends/lgdt330x.c +6 -6
@@ -944,9 +944,9 @@ static const struct dvb_frontend_ops lgdt3302_ops = { .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .info = { .name ="LG Electronics LGDT3302 VSB/QAM Frontend" , - .frequency_min = 54000000, - .frequency_max = 858000000, - .frequency_stepsize = 62500, + .frequency_min_hz = 54 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 62500, .symbol_rate_min = 5056941, /* QAM 64 */ .symbol_rate_max = 10762000, /* VSB 8 */ .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB
@@ -966,9 +966,9 @@ static const struct dvb_frontend_ops lgdt3303_ops = { .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .info = { .name ="LG Electronics LGDT3303 VSB/QAM Frontend" , - .frequency_min = 54000000, - .frequency_max = 858000000, - .frequency_stepsize = 62500, + .frequency_min_hz = 54 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 62500, .symbol_rate_min = 5056941, /* QAM 64 */ .symbol_rate_max = 10762000, /* VSB 8 */ .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB
drivers/media/dvb-frontends/lgs8gl5.c +3 -4
@@ -416,10 +416,9 @@ static const struct dvb_frontend_ops lgs8gl5_ops = { .delsys = { SYS_DTMB }, .info = { .name = "Legend Silicon LGS-8GL5 DMB-TH", - .frequency_min = 474000000, - .frequency_max = 858000000, - .frequency_stepsize = 10000, - .frequency_tolerance = 0, + .frequency_min_hz = 474 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 10 * kHz, .caps =FE_CAN_FEC_AUTO |FE_CAN_QPSK |FE_CAN_QAM_16 |FE_CAN_QAM_32 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO |
drivers/media/dvb-frontends/lgs8gxx.c +3 -3
@@ -985,9 +985,9 @@ static const struct dvb_frontend_ops lgs8gxx_ops = { .delsys = { SYS_DTMB }, .info = { .name = "Legend Silicon LGS8913/LGS8GXX DMB-TH", - .frequency_min = 474000000, - .frequency_max = 858000000, - .frequency_stepsize = 10000, + .frequency_min_hz = 474 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 10 * kHz, .caps =FE_CAN_FEC_AUTO | FE_CAN_QAM_AUTO |
drivers/media/dvb-frontends/m88ds3103.c +3 -3
@@ -1300,9 +1300,9 @@ static const struct dvb_frontend_ops m88ds3103_ops = { .delsys = {SYS_DVBS, SYS_DVBS2}, .info = { .name ="Montage Technology M88DS3103" , - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_tolerance = 5000, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_tolerance_hz = 5 * MHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .caps = FE_CAN_INVERSION_AUTO |
drivers/media/dvb-frontends/m88rs2000.c +4 -4
@@ -759,10 +759,10 @@ static const struct dvb_frontend_ops m88rs2000_ops = { .delsys = { SYS_DVBS }, .info = { .name = "M88RS2000 DVB-S", - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 1000, /* kHz for QPSK frontends */ - .frequency_tolerance = 5000, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 1 * MHz, + .frequency_tolerance_hz = 5 * MHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .symbol_rate_tolerance = 500, /* ppm */
drivers/media/dvb-frontends/mb86a16.c +3 -4
@@ -1808,10 +1808,9 @@ static const struct dvb_frontend_ops mb86a16_ops = { .delsys = { SYS_DVBS }, .info = { .name = "Fujitsu MB86A16 DVB-S", - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 3000, - .frequency_tolerance = 0, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 3 * MHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .symbol_rate_tolerance = 500,
drivers/media/dvb-frontends/mb86a20s.c +3 -3
@@ -2111,9 +2111,9 @@ static const struct dvb_frontend_ops mb86a20s_ops = {FE_CAN_TRANSMISSION_MODE_AUTO |FE_CAN_QAM_AUTO | FE_CAN_GUARD_INTERVAL_AUTO | FE_CAN_HIERARCHY_AUTO,/* Actually, those values depend on the used tuner */ - .frequency_min = 45000000, - .frequency_max = 864000000, - .frequency_stepsize = 62500, + .frequency_min_hz = 45 * MHz, + .frequency_max_hz = 864 * MHz, + .frequency_stepsize_hz = 62500, }, .release = mb86a20s_release,
drivers/media/dvb-frontends/mt312.c +5 -5
@@ -559,8 +559,8 @@ static int mt312_set_frontend(struct dvb_frontend *fe)dprintk ("%s: Freq %d\n" , __func__, p->frequency); -if ((p->frequency < fe->ops.info.frequency_min) - || (p->frequency > fe->ops.info.frequency_max)) +if ((p->frequency < fe->ops.info.frequency_min_hz / kHz) + || (p->frequency > fe->ops.info.frequency_max_hz / kHz))return -EINVAL ; if (((int)p->inversion < INVERSION_OFF)
@@ -755,10 +755,10 @@ static const struct dvb_frontend_ops mt312_ops = { .delsys = { SYS_DVBS }, .info = { .name = "Zarlink ???? DVB-S", - .frequency_min = 950000, - .frequency_max = 2150000, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz,/* FIXME: adjust freq to real used xtal */ - .frequency_stepsize = (MT312_PLL_CLK / 1000) / 128, + .frequency_stepsize_hz = MT312_PLL_CLK / 128, .symbol_rate_min = MT312_SYS_CLK / 128, /* FIXME as above */ .symbol_rate_max = MT312_SYS_CLK / 2, .caps =
drivers/media/dvb-frontends/mt352.c +3 -4
@@ -567,10 +567,9 @@ static const struct dvb_frontend_ops mt352_ops = { .delsys = { SYS_DVBT }, .info = { .name = "Zarlink MT352 DVB-T", - .frequency_min = 174000000, - .frequency_max = 862000000, - .frequency_stepsize = 166667, - .frequency_tolerance = 0, + .frequency_min_hz = 174 * MHz, + .frequency_max_hz = 862 * MHz, + .frequency_stepsize_hz = 166667, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/dvb-frontends/mxl5xx.c +2 -4
@@ -784,10 +784,8 @@ static struct dvb_frontend_ops mxl_ops = { .delsys = { SYS_DVBS, SYS_DVBS2, SYS_DSS }, .info = { .name ="MaxLinear MxL5xx DVB-S/S2 tuner-demodulator" , - .frequency_min = 300000, - .frequency_max = 2350000, - .frequency_stepsize = 0, - .frequency_tolerance = 0, + .frequency_min_hz = 300 * MHz, + .frequency_max_hz = 2350 * MHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .caps = FE_CAN_INVERSION_AUTO |
drivers/media/dvb-frontends/nxt200x.c +3 -3
@@ -1212,9 +1212,9 @@ static const struct dvb_frontend_ops nxt200x_ops = { .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .info = { .name ="Nextwave NXT200X VSB/QAM frontend" , - .frequency_min = 54000000, - .frequency_max = 860000000, - .frequency_stepsize = 166666, /* stepsize is just a guess */ + .frequency_min_hz = 54 * MHz, + .frequency_max_hz = 860 * MHz, + .frequency_stepsize_hz = 166666, /* stepsize is just a guess */ .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8 |FE_CAN_FEC_AUTO |FE_CAN_8VSB |FE_CAN_QAM_64 |FE_CAN_QAM_256
drivers/media/dvb-frontends/nxt6000.c +3 -3
@@ -596,9 +596,9 @@ static const struct dvb_frontend_ops nxt6000_ops = { .delsys = { SYS_DVBT }, .info = { .name = "NxtWave NXT6000 DVB-T", - .frequency_min = 0, - .frequency_max = 863250000, - .frequency_stepsize = 62500, + .frequency_min_hz = 0, + .frequency_max_hz = 863250 * kHz, + .frequency_stepsize_hz = 62500,/*.frequency_tolerance = *//* FIXME: 12% of SR */ .symbol_rate_min = 0, /* FIXME */ .symbol_rate_max = 9360000, /* FIXME */
drivers/media/dvb-frontends/or51132.c +3 -3
@@ -583,9 +583,9 @@ static const struct dvb_frontend_ops or51132_ops = { .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .info = { .name ="Oren OR51132 VSB/QAM Frontend" , - .frequency_min = 44000000, - .frequency_max = 958000000, - .frequency_stepsize = 166666, + .frequency_min_hz = 44 * MHz, + .frequency_max_hz = 958 * MHz, + .frequency_stepsize_hz = 166666, .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8 |FE_CAN_FEC_AUTO | FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_QAM_AUTO |
drivers/media/dvb-frontends/or51211.c +4 -4
@@ -530,10 +530,10 @@ struct dvb_frontend* or51211_attach(const struct or51211_config* config,static const struct dvb_frontend_ops or51211_ops = { .delsys = {SYS_ATSC ,SYS_DVBC_ANNEX_B }, .info = { - .name ="Oren OR51211 VSB Frontend" , - .frequency_min =44000000 , - .frequency_max =958000000 , - .frequency_stepsize =166666 , + .name ="Oren OR51211 VSB Frontend" , + .frequency_min_hz =44 * MHz, + .frequency_max_hz =958 * MHz, + .frequency_stepsize_hz =166666 , .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8 |FE_CAN_FEC_AUTO |FE_CAN_8VSB
drivers/media/dvb-frontends/rtl2830.c +2 -2
@@ -159,8 +159,8 @@ static int rtl2830_get_tune_settings(struct dvb_frontend *fe, struct dvb_frontend_tune_settings *s) { s->min_delay_ms =500 ; - s->step_size = fe->ops.info.frequency_stepsize *2 ; - s->max_drift = (fe->ops.info.frequency_stepsize *2 ) +1 ; + s->step_size = fe->ops.info.frequency_stepsize_hz *2 ; + s->max_drift = (fe->ops.info.frequency_stepsize_hz *2 ) +1 ;return 0 ; }
drivers/media/dvb-frontends/rtl2832.c +5 -5
@@ -408,8 +408,8 @@ static int rtl2832_get_tune_settings(struct dvb_frontend *fe,dev_dbg (&client->dev,"\n" ); s->min_delay_ms =1000 ; - s->step_size = fe->ops.info.frequency_stepsize *2 ; - s->max_drift = (fe->ops.info.frequency_stepsize *2 ) +1 ; + s->step_size = fe->ops.info.frequency_stepsize_hz *2 ; + s->max_drift = (fe->ops.info.frequency_stepsize_hz *2 ) +1 ;return 0 ; }
@@ -841,9 +841,9 @@ static const struct dvb_frontend_ops rtl2832_ops = { .delsys = { SYS_DVBT }, .info = { .name = "Realtek RTL2832 (DVB-T)", - .frequency_min = 174000000, - .frequency_max = 862000000, - .frequency_stepsize = 166667, + .frequency_min_hz = 174 * MHz, + .frequency_max_hz = 862 * MHz, + .frequency_stepsize_hz = 166667, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
drivers/media/dvb-frontends/s5h1409.c +3 -3
@@ -999,9 +999,9 @@ static const struct dvb_frontend_ops s5h1409_ops = { .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .info = { .name ="Samsung S5H1409 QAM/8VSB Frontend" , - .frequency_min = 54000000, - .frequency_max = 858000000, - .frequency_stepsize = 62500, + .frequency_min_hz = 54 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 62500, .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB },
drivers/media/dvb-frontends/s5h1411.c +3 -3
@@ -918,9 +918,9 @@ static const struct dvb_frontend_ops s5h1411_ops = { .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, .info = { .name ="Samsung S5H1411 QAM/8VSB Frontend" , - .frequency_min = 54000000, - .frequency_max = 858000000, - .frequency_stepsize = 62500, + .frequency_min_hz = 54 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 62500, .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB },
drivers/media/dvb-frontends/s5h1420.c +4 -4
@@ -934,10 +934,10 @@ static const struct dvb_frontend_ops s5h1420_ops = { .delsys = { SYS_DVBS }, .info = { .name = "Samsung S5H1420/PnpNetwork PN1010 DVB-S", - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 125, /* kHz for QPSK frontends */ - .frequency_tolerance = 29500, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 125 * kHz, + .frequency_tolerance_hz = 29500 * kHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000,/* .symbol_rate_tolerance = ???,*/
drivers/media/dvb-frontends/s5h1432.c +3 -3
@@ -370,9 +370,9 @@ static const struct dvb_frontend_ops s5h1432_ops = { .delsys = { SYS_DVBT }, .info = { .name = "Samsung s5h1432 DVB-T Frontend", - .frequency_min = 177000000, - .frequency_max = 858000000, - .frequency_stepsize = 166666, + .frequency_min_hz = 177 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 166666, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8 |FE_CAN_FEC_AUTO | FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO |
drivers/media/dvb-frontends/s921.c +3 -4
@@ -510,15 +510,14 @@ static const struct dvb_frontend_ops s921_ops = {/* Use dib8000 values per default */ .info = { .name = "Sharp S921", - .frequency_min = 470000000, + .frequency_min_hz = 470 * MHz,/* * Max should be 770MHz instead, according with Sharp docs, * but Leadership doc says it works up to 806 MHz. This is * required to get channel 69, used in Brazil */ - .frequency_max = 806000000, - .frequency_tolerance = 0, - .caps =FE_CAN_INVERSION_AUTO | + .frequency_max_hz = 806 * MHz, + .caps =FE_CAN_INVERSION_AUTO |FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8 |FE_CAN_FEC_AUTO | FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
drivers/media/dvb-frontends/si2165.c +1 -1
@@ -1120,7 +1120,7 @@ static const struct dvb_frontend_ops si2165_ops = { .symbol_rate_min = 1000000, .symbol_rate_max = 7200000,/* For DVB-T */ - .frequency_stepsize = 166667, + .frequency_stepsize_hz = 166667, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
drivers/media/dvb-frontends/si21xx.c +3 -4
@@ -870,10 +870,9 @@ static const struct dvb_frontend_ops si21xx_ops = { .delsys = { SYS_DVBS }, .info = { .name = "SL SI21XX DVB-S", - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 125, /* kHz for QPSK frontends */ - .frequency_tolerance = 0, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 125 * kHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .symbol_rate_tolerance = 500, /* ppm */
drivers/media/dvb-frontends/sp8870.c +3 -3
@@ -584,9 +584,9 @@ static const struct dvb_frontend_ops sp8870_ops = { .delsys = { SYS_DVBT }, .info = { .name = "Spase SP8870 DVB-T", - .frequency_min = 470000000, - .frequency_max = 860000000, - .frequency_stepsize = 166666, + .frequency_min_hz = 470 * MHz, + .frequency_max_hz = 860 * MHz, + .frequency_stepsize_hz = 166666, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/dvb-frontends/sp887x.c +3 -3
@@ -594,9 +594,9 @@ static const struct dvb_frontend_ops sp887x_ops = { .delsys = { SYS_DVBT }, .info = { .name = "Spase SP887x DVB-T", - .frequency_min = 50500000, - .frequency_max = 858000000, - .frequency_stepsize = 166666, + .frequency_min_hz = 50500 * kHz, + .frequency_max_hz = 858000 * kHz, + .frequency_stepsize_hz = 166666, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8 |FE_CAN_FEC_AUTO | FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
drivers/media/dvb-frontends/stb0899_drv.c +2 -4
@@ -1584,10 +1584,8 @@ static const struct dvb_frontend_ops stb0899_ops = { .delsys = { SYS_DVBS, SYS_DVBS2, SYS_DSS }, .info = { .name ="STB0899 Multistandard" , - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 0, - .frequency_tolerance = 0, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, .symbol_rate_min = 5000000, .symbol_rate_max = 45000000,
drivers/media/dvb-frontends/stv0288.c +3 -4
@@ -533,10 +533,9 @@ static const struct dvb_frontend_ops stv0288_ops = { .delsys = { SYS_DVBS }, .info = { .name = "ST STV0288 DVB-S", - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 1000, /* kHz for QPSK frontends */ - .frequency_tolerance = 0, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 1 * MHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .symbol_rate_tolerance = 500, /* ppm */
drivers/media/dvb-frontends/stv0297.c +3 -3
@@ -694,9 +694,9 @@ static const struct dvb_frontend_ops stv0297_ops = { .delsys = { SYS_DVBC_ANNEX_A }, .info = { .name = "ST STV0297 DVB-C", - .frequency_min = 47000000, - .frequency_max = 862000000, - .frequency_stepsize = 62500, + .frequency_min_hz = 470 * MHz, + .frequency_max_hz = 862 * MHz, + .frequency_stepsize_hz = 62500, .symbol_rate_min = 870000, .symbol_rate_max = 11700000, .caps = FE_CAN_QAM_16 | FE_CAN_QAM_32 | FE_CAN_QAM_64 |
drivers/media/dvb-frontends/stv0299.c +3 -4
@@ -717,10 +717,9 @@ static const struct dvb_frontend_ops stv0299_ops = { .delsys = { SYS_DVBS }, .info = { .name = "ST STV0299 DVB-S", - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 125, /* kHz for QPSK frontends */ - .frequency_tolerance = 0, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 125 * kHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .symbol_rate_tolerance = 500, /* ppm */
drivers/media/dvb-frontends/stv0367.c +9 -11
@@ -1693,10 +1693,9 @@ static const struct dvb_frontend_ops stv0367ter_ops = { .delsys = { SYS_DVBT }, .info = { .name = "ST STV0367 DVB-T", - .frequency_min = 47000000, - .frequency_max = 862000000, - .frequency_stepsize = 15625, - .frequency_tolerance = 0, + .frequency_min_hz = 47 * MHz, + .frequency_max_hz = 862 * MHz, + .frequency_stepsize_hz = 15625, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
@@ -2867,9 +2866,9 @@ static const struct dvb_frontend_ops stv0367cab_ops = { .delsys = { SYS_DVBC_ANNEX_A }, .info = { .name = "ST STV0367 DVB-C", - .frequency_min = 47000000, - .frequency_max = 862000000, - .frequency_stepsize = 62500, + .frequency_min_hz = 47 * MHz, + .frequency_max_hz = 862 * MHz, + .frequency_stepsize_hz = 62500, .symbol_rate_min = 870000, .symbol_rate_max = 11700000, .caps = 0x400 |/* FE_CAN_QAM_4 */
@@ -3273,10 +3272,9 @@ static const struct dvb_frontend_ops stv0367ddb_ops = { .delsys = { SYS_DVBC_ANNEX_A, SYS_DVBT }, .info = { .name ="ST STV0367 DDB DVB-C/T" , - .frequency_min = 47000000, - .frequency_max = 865000000, - .frequency_stepsize = 166667, - .frequency_tolerance = 0, + .frequency_min_hz = 47 * MHz, + .frequency_max_hz = 865 * MHz, + .frequency_stepsize_hz = 166667, .symbol_rate_min = 870000, .symbol_rate_max = 11700000, .caps = /* DVB-C */
drivers/media/dvb-frontends/stv0900_core.c +3 -4
@@ -1875,10 +1875,9 @@ static const struct dvb_frontend_ops stv0900_ops = { .delsys = { SYS_DVBS, SYS_DVBS2, SYS_DSS }, .info = { .name ="STV0900 frontend" , - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 125, - .frequency_tolerance = 0, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 125 * kHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .symbol_rate_tolerance = 500,
drivers/media/dvb-frontends/stv090x.c +2 -4
@@ -4905,10 +4905,8 @@ static const struct dvb_frontend_ops stv090x_ops = { .delsys = { SYS_DVBS, SYS_DVBS2, SYS_DSS }, .info = { .name ="STV090x Multistandard" , - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 0, - .frequency_tolerance = 0, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .caps = FE_CAN_INVERSION_AUTO |
drivers/media/dvb-frontends/stv0910.c +2 -4
@@ -1724,10 +1724,8 @@ static const struct dvb_frontend_ops stv0910_ops = { .delsys = { SYS_DVBS, SYS_DVBS2, SYS_DSS }, .info = { .name ="ST STV0910" , - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 0, - .frequency_tolerance = 0, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, .symbol_rate_min = 100000, .symbol_rate_max = 70000000, .caps = FE_CAN_INVERSION_AUTO |
drivers/media/dvb-frontends/tc90522.c +5 -5
@@ -714,8 +714,8 @@ static const struct dvb_frontend_ops tc90522_ops_sat = { .delsys = { SYS_ISDBS }, .info = { .name = "Toshiba TC90522 ISDB-S module", - .frequency_min = 950000, - .frequency_max = 2150000, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, .caps =FE_CAN_INVERSION_AUTO |FE_CAN_FEC_AUTO |FE_CAN_QAM_AUTO |FE_CAN_TRANSMISSION_MODE_AUTO | FE_CAN_GUARD_INTERVAL_AUTO | FE_CAN_HIERARCHY_AUTO,
@@ -734,9 +734,9 @@ static const struct dvb_frontend_ops tc90522_ops_ter = { .delsys = { SYS_ISDBT }, .info = { .name = "Toshiba TC90522 ISDB-T module", - .frequency_min = 470000000, - .frequency_max = 770000000, - .frequency_stepsize = 142857, + .frequency_min_hz = 470 * MHz, + .frequency_max_hz = 770 * MHz, + .frequency_stepsize_hz = 142857, .caps =FE_CAN_INVERSION_AUTO |FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/dvb-frontends/tda10021.c +5 -5
@@ -487,11 +487,11 @@ static const struct dvb_frontend_ops tda10021_ops = { .delsys = { SYS_DVBC_ANNEX_A, SYS_DVBC_ANNEX_C }, .info = { .name ="Philips TDA10021 DVB-C" , - .frequency_stepsize = 62500, - .frequency_min = 47000000, - .frequency_max = 862000000, - .symbol_rate_min = (XIN/2)/64, /* SACLK/64 == (XIN/2)/64 */ - .symbol_rate_max = (XIN/2)/4, /* SACLK/4 */ + .frequency_min_hz = 47 * MHz, + .frequency_max_hz = 862 * MHz, + .frequency_stepsize_hz = 62500, + .symbol_rate_min = (XIN / 2) / 64, /* SACLK/64 == (XIN/2)/64 */ + .symbol_rate_max = (XIN / 2) / 4, /* SACLK/4 */ #if 0 .frequency_tolerance = ???, .symbol_rate_tolerance = ???, /* ppm */ /* == 8% (spec p. 5) */
drivers/media/dvb-frontends/tda10023.c +3 -3
@@ -575,9 +575,9 @@ static const struct dvb_frontend_ops tda10023_ops = { .delsys = { SYS_DVBC_ANNEX_A, SYS_DVBC_ANNEX_C }, .info = { .name ="Philips TDA10023 DVB-C" , - .frequency_stepsize = 62500, - .frequency_min = 47000000, - .frequency_max = 862000000, + .frequency_min_hz = 47 * MHz, + .frequency_max_hz = 862 * MHz, + .frequency_stepsize_hz = 62500, .symbol_rate_min = 0, /* set in tda10023_attach */ .symbol_rate_max = 0, /* set in tda10023_attach */ .caps = 0x400 | //FE_CAN_QAM_4
drivers/media/dvb-frontends/tda10048.c +3 -3
@@ -1156,9 +1156,9 @@ static const struct dvb_frontend_ops tda10048_ops = { .delsys = { SYS_DVBT }, .info = { .name = "NXP TDA10048HN DVB-T", - .frequency_min = 177000000, - .frequency_max = 858000000, - .frequency_stepsize = 166666, + .frequency_min_hz = 177 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 166666, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8 |FE_CAN_FEC_AUTO | FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO |
drivers/media/dvb-frontends/tda1004x.c +6 -6
@@ -1249,9 +1249,9 @@ static const struct dvb_frontend_ops tda10045_ops = { .delsys = { SYS_DVBT }, .info = { .name = "Philips TDA10045H DVB-T", - .frequency_min = 51000000, - .frequency_max = 858000000, - .frequency_stepsize = 166667, + .frequency_min_hz = 51 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 166667, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
@@ -1319,9 +1319,9 @@ static const struct dvb_frontend_ops tda10046_ops = { .delsys = { SYS_DVBT }, .info = { .name = "Philips TDA10046H DVB-T", - .frequency_min = 51000000, - .frequency_max = 858000000, - .frequency_stepsize = 166667, + .frequency_min_hz = 51 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 166667, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/dvb-frontends/tda10071.c +5 -5
@@ -681,8 +681,8 @@ static int tda10071_set_frontend(struct dvb_frontend *fe) cmd.args[5 ] = (c->frequency >>0 ) &0xff ; cmd.args[6 ] = ((c->symbol_rate /1000 ) >>8 ) &0xff ; cmd.args[7 ] = ((c->symbol_rate /1000 ) >>0 ) &0xff ; - cmd.args[8 ] = (tda10071_ops.info.frequency_tolerance >>8 ) &0xff ; - cmd.args[9 ] = (tda10071_ops.info.frequency_tolerance >>0 ) &0xff ; + cmd.args[8 ] = ((tda10071_ops.info.frequency_tolerance_hz /1000 ) >>8 ) &0xff ; + cmd.args[9 ] = ((tda10071_ops.info.frequency_tolerance_hz /1000 ) >>0 ) &0xff ; cmd.args[10 ] = rolloff; cmd.args[11 ] = inversion; cmd.args[12 ] = pilot;
@@ -1106,9 +1106,9 @@ static const struct dvb_frontend_ops tda10071_ops = { .delsys = { SYS_DVBS, SYS_DVBS2 }, .info = { .name ="NXP TDA10071" , - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_tolerance = 5000, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_tolerance_hz = 5 * MHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .caps = FE_CAN_INVERSION_AUTO |
drivers/media/dvb-frontends/tda10086.c +3 -3
@@ -710,9 +710,9 @@ static const struct dvb_frontend_ops tda10086_ops = { .delsys = { SYS_DVBS }, .info = { .name = "Philips TDA10086 DVB-S", - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 125, /* kHz for QPSK frontends */ + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 125 * kHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .caps = FE_CAN_INVERSION_AUTO |
drivers/media/dvb-frontends/tda8083.c +3 -4
@@ -453,10 +453,9 @@ static const struct dvb_frontend_ops tda8083_ops = { .delsys = { SYS_DVBS }, .info = { .name = "Philips TDA8083 DVB-S", - .frequency_min = 920000, /* TDA8060 */ - .frequency_max = 2200000, /* TDA8060 */ - .frequency_stepsize = 125, /* kHz for QPSK frontends */ -/* .frequency_tolerance = ???,*/ + .frequency_min_hz = 920 * MHz, /* TDA8060 */ + .frequency_max_hz = 2200 * MHz, /* TDA8060 */ + .frequency_stepsize_hz = 125 * kHz, .symbol_rate_min = 12000000, .symbol_rate_max = 30000000,/* .symbol_rate_tolerance = ???,*/
drivers/media/dvb-frontends/ves1820.c +3 -3
@@ -412,9 +412,9 @@ static const struct dvb_frontend_ops ves1820_ops = { .delsys = { SYS_DVBC_ANNEX_A }, .info = { .name = "VLSI VES1820 DVB-C", - .frequency_stepsize = 62500, - .frequency_min = 47000000, - .frequency_max = 862000000, + .frequency_min_hz = 47 * MHz, + .frequency_max_hz = 862 * MHz, + .frequency_stepsize_hz = 62500, .caps =FE_CAN_QAM_16 |FE_CAN_QAM_32 | FE_CAN_QAM_64 |
drivers/media/dvb-frontends/ves1x93.c +4 -4
@@ -516,10 +516,10 @@ static const struct dvb_frontend_ops ves1x93_ops = { .delsys = { SYS_DVBS }, .info = { .name = "VLSI VES1x93 DVB-S", - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 125, /* kHz for QPSK frontends */ - .frequency_tolerance = 29500, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 125 * kHz, + .frequency_tolerance_hz = 29500 * kHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000,/* .symbol_rate_tolerance = ???,*/
drivers/media/dvb-frontends/zl10036.c +2 -2
@@ -311,8 +311,8 @@ static int zl10036_set_params(struct dvb_frontend *fe)/* ensure correct values * maybe redundant as core already checks this */ -if ((frequency < fe->ops.info.frequency_min) - || (frequency > fe->ops.info.frequency_max)) +if ((frequency < fe->ops.info.frequency_min_hz / kHz) + || (frequency > fe->ops.info.frequency_max_hz / kHz))return -EINVAL ;/*
drivers/media/dvb-frontends/zl10353.c +3 -4
@@ -635,10 +635,9 @@ static const struct dvb_frontend_ops zl10353_ops = { .delsys = { SYS_DVBT }, .info = { .name = "Zarlink ZL10353 DVB-T", - .frequency_min = 174000000, - .frequency_max = 862000000, - .frequency_stepsize = 166667, - .frequency_tolerance = 0, + .frequency_min_hz = 174 * MHz, + .frequency_max_hz = 862 * MHz, + .frequency_stepsize_hz = 166667, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/firewire/firedtv-fe.c +13 -13
@@ -152,7 +152,7 @@ static int fdtv_set_frontend(struct dvb_frontend *fe)void fdtv_frontend_init (struct firedtv *fdtv,const char *name) {struct dvb_frontend_ops *ops = &fdtv->fe.ops; -struct dvb_frontend_info *fi = &ops->info; +struct dvb_frontend_internal_info *fi = &ops->info; ops->init = fdtv_dvb_init; ops->sleep = fdtv_sleep;
@@ -174,9 +174,9 @@ void fdtv_frontend_init(struct firedtv *fdtv, const char *name)case FIREDTV_DVB_S : ops->delsys[0 ] =SYS_DVBS ; - fi->frequency_min =950000 ; - fi->frequency_max =2150000 ; - fi->frequency_stepsize =125 ; + fi->frequency_min_hz =950 * MHz; + fi->frequency_max_hz =2150 * MHz; + fi->frequency_stepsize_hz =125 * kHz; fi->symbol_rate_min =1000000 ; fi->symbol_rate_max =40000000 ;
@@ -194,9 +194,9 @@ void fdtv_frontend_init(struct firedtv *fdtv, const char *name) ops->delsys[0 ] =SYS_DVBS ; ops->delsys[1 ] =SYS_DVBS2 ; - fi->frequency_min =950000 ; - fi->frequency_max =2150000 ; - fi->frequency_stepsize =125 ; + fi->frequency_min_hz =950 * MHz; + fi->frequency_max_hz =2150 * MHz; + fi->frequency_stepsize_hz =125 * kHz; fi->symbol_rate_min =1000000 ; fi->symbol_rate_max =40000000 ;
@@ -214,9 +214,9 @@ void fdtv_frontend_init(struct firedtv *fdtv, const char *name)case FIREDTV_DVB_C : ops->delsys[0 ] =SYS_DVBC_ANNEX_A ; - fi->frequency_min =47000000 ; - fi->frequency_max =866000000 ; - fi->frequency_stepsize =62500 ; + fi->frequency_min_hz =47 * MHz; + fi->frequency_max_hz =866 * MHz; + fi->frequency_stepsize_hz =62500 ; fi->symbol_rate_min =870000 ; fi->symbol_rate_max =6900000 ;
@@ -232,9 +232,9 @@ void fdtv_frontend_init(struct firedtv *fdtv, const char *name)case FIREDTV_DVB_T : ops->delsys[0 ] =SYS_DVBT ; - fi->frequency_min =49000000 ; - fi->frequency_max =861000000 ; - fi->frequency_stepsize =62500 ; + fi->frequency_min_hz =49 * MHz; + fi->frequency_max_hz =861 * MHz; + fi->frequency_stepsize_hz =62500 ; fi->caps =FE_CAN_INVERSION_AUTO | FE_CAN_FEC_2_3 |
drivers/media/pci/bt8xx/dst.c +13 -13
@@ -1739,9 +1739,9 @@ static const struct dvb_frontend_ops dst_dvbt_ops = { .delsys = { SYS_DVBT }, .info = { .name = "DST DVB-T", - .frequency_min = 137000000, - .frequency_max = 858000000, - .frequency_stepsize = 166667, + .frequency_min_hz = 137 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 166667, .caps =FE_CAN_FEC_AUTO |FE_CAN_QAM_AUTO | FE_CAN_QAM_16 |
@@ -1768,10 +1768,10 @@ static const struct dvb_frontend_ops dst_dvbs_ops = { .delsys = { SYS_DVBS }, .info = { .name = "DST DVB-S", - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 1000, /* kHz for QPSK frontends */ - .frequency_tolerance = 29500, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 1 * MHz, + .frequency_tolerance_hz = 29500 * kHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000,/* . symbol_rate_tolerance = ???,*/
@@ -1797,9 +1797,9 @@ static const struct dvb_frontend_ops dst_dvbc_ops = { .delsys = { SYS_DVBC_ANNEX_A }, .info = { .name = "DST DVB-C", - .frequency_stepsize = 62500, - .frequency_min = 51000000, - .frequency_max = 858000000, + .frequency_min_hz = 51 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 62500, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .caps = FE_CAN_FEC_AUTO |
@@ -1826,9 +1826,9 @@ static const struct dvb_frontend_ops dst_atsc_ops = { .delsys = { SYS_ATSC }, .info = { .name = "DST ATSC", - .frequency_stepsize = 62500, - .frequency_min = 510000000, - .frequency_max = 858000000, + .frequency_min_hz = 510 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 62500, .symbol_rate_min = 1000000, .symbol_rate_max =45000000 , .caps = FE_CAN_FEC_AUTO | FE_CAN_QAM_AUTO | FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB
drivers/media/pci/bt8xx/dvb-bt8xx.c +4 -4
@@ -606,8 +606,8 @@ static void frontend_init(struct dvb_bt8xx_card *card, u32 type)if (card->fe !=NULL ) { card->fe->ops.tuner_ops.calc_regs = thomson_dtt7579_tuner_calc_regs; - card->fe->ops.info.frequency_min =174000000 ; - card->fe->ops.info.frequency_max =862000000 ; + card->fe->ops.info.frequency_min_hz =174 * MHz; + card->fe->ops.info.frequency_max_hz =862 * MHz; }break ;
@@ -659,8 +659,8 @@ static void frontend_init(struct dvb_bt8xx_card *card, u32 type) card->fe =dvb_attach (mt352_attach, &advbt771_samsung_tdtc9251dh0_config, card->i2c_adapter);if (card->fe !=NULL ) { card->fe->ops.tuner_ops.calc_regs = advbt771_samsung_tdtc9251dh0_tuner_calc_regs; - card->fe->ops.info.frequency_min =174000000 ; - card->fe->ops.info.frequency_max =862000000 ; + card->fe->ops.info.frequency_min_hz =174 * MHz; + card->fe->ops.info.frequency_max_hz =862 * MHz; }break ;
drivers/media/pci/ddbridge/ddbridge-mci.c +2 -4
@@ -463,10 +463,8 @@ static struct dvb_frontend_ops mci_ops = { .delsys = { SYS_DVBS, SYS_DVBS2 }, .info = { .name ="Digital Devices MaxSX8 MCI DVB-S/S2/S2X" , - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 0, - .frequency_tolerance = 0, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, .symbol_rate_min = 100000, .symbol_rate_max = 100000000, .caps = FE_CAN_INVERSION_AUTO |
drivers/media/pci/mantis/mantis_vp3030.c +2 -2
@@ -42,8 +42,8 @@ static struct zl10353_config mantis_vp3030_config = {static struct tda665x_config env57h12d5_config = { .name ="ENV57H12D5 (ET-50DT)" , .addr =0x60 , - .frequency_min =47000000 , - .frequency_max =862000000 , + .frequency_min =47 * MHz, + .frequency_max =862 * MHz, .frequency_offst =3616667 , .ref_multiplier =6 ,/* 1/6 MHz */ .ref_divider =100000 ,/* 1/6 MHz */
drivers/media/tuners/mxl5007t.c +0 -2
@@ -59,8 +59,6 @@ MODULE_PARM_DESC(debug, "set debug level");/* ------------------------------------------------------------------------- */ -#define MHz 1000000 -enum mxl5007t_mode { MxL_MODE_ISDBT =0 , MxL_MODE_DVBT =1 ,
drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c +3 -3
@@ -554,9 +554,9 @@ static const struct dvb_frontend_ops mxl111sf_demod_ops = { .delsys = { SYS_DVBT }, .info = { .name = "MaxLinear MxL111SF DVB-T demodulator", - .frequency_min = 177000000, - .frequency_max = 858000000, - .frequency_stepsize = 166666, + .frequency_min_hz = 177 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 166666, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8 |FE_CAN_FEC_AUTO | FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
drivers/media/usb/dvb-usb/af9005-fe.c +3 -3
@@ -1455,9 +1455,9 @@ static const struct dvb_frontend_ops af9005_fe_ops = { .delsys = { SYS_DVBT }, .info = { .name = "AF9005 USB DVB-T", - .frequency_min = 44250000, - .frequency_max = 867250000, - .frequency_stepsize = 250000, + .frequency_min_hz = 44250 * kHz, + .frequency_max_hz = 867250 * kHz, + .frequency_stepsize_hz = 250 * kHz, .caps =FE_CAN_INVERSION_AUTO |FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/usb/dvb-usb/cinergyT2-fe.c +3 -3
@@ -295,9 +295,9 @@ static const struct dvb_frontend_ops cinergyt2_fe_ops = { .delsys = { SYS_DVBT }, .info = { .name = DRIVER_NAME, - .frequency_min = 174000000, - .frequency_max = 862000000, - .frequency_stepsize =166667 , + .frequency_min_hz = 174 * MHz, + .frequency_max_hz = 862 * MHz, + .frequency_stepsize_hz =166667 , .caps = FE_CAN_INVERSION_AUTO | FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8
drivers/media/usb/dvb-usb/dtt200u-fe.c +3 -3
@@ -230,9 +230,9 @@ static const struct dvb_frontend_ops dtt200u_fe_ops = { .delsys = { SYS_DVBT }, .info = { .name = "WideView USB DVB-T", - .frequency_min = 44250000, - .frequency_max = 867250000, - .frequency_stepsize = 250000, + .frequency_min_hz = 44250 * kHz, + .frequency_max_hz = 867250 * kHz, + .frequency_stepsize_hz = 250 * kHz, .caps =FE_CAN_INVERSION_AUTO |FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/usb/dvb-usb/friio-fe.c +5 -6
@@ -133,10 +133,10 @@ static int jdvbt90502_pll_set_freq(struct jdvbt90502_state *state, u32 freq)u32 f;deb_fe ("%s: freq=%d, step=%d\n" , __func__, freq, - state->frontend.ops.info.frequency_stepsize); + state->frontend.ops.info.frequency_stepsize_hz);/* freq -> oscilator frequency conversion. */ /* freq: 473,000,000 + n*6,000,000 [+ 142857 (center freq. shift)] */ - f = freq / state->frontend.ops.info.frequency_stepsize; + f = freq / state->frontend.ops.info.frequency_stepsize_hz;/* add 399[1/7 MHZ] = 57MHz for the IF */ f +=399 ;/* add center frequency shift if necessary */
@@ -413,10 +413,9 @@ static const struct dvb_frontend_ops jdvbt90502_ops = { .delsys = { SYS_ISDBT }, .info = { .name = "Comtech JDVBT90502 ISDB-T", - .frequency_min = 473000000, /* UHF 13ch, center */ - .frequency_max = 767142857, /* UHF 62ch, center */ - .frequency_stepsize = JDVBT90502_PLL_CLK / JDVBT90502_PLL_DIVIDER, - .frequency_tolerance = 0, + .frequency_min_hz = 473000000, /* UHF 13ch, center */ + .frequency_max_hz = 767142857, /* UHF 62ch, center */ + .frequency_stepsize_hz = JDVBT90502_PLL_CLK / JDVBT90502_PLL_DIVIDER,/* NOTE: this driver ignores all parameters but frequency. */ .caps = FE_CAN_INVERSION_AUTO |
drivers/media/usb/dvb-usb/vp702x-fe.c +3 -4
@@ -349,10 +349,9 @@ static const struct dvb_frontend_ops vp702x_fe_ops = { .delsys = { SYS_DVBS }, .info = { .name = "Twinhan DST-like frontend (VP7021/VP7020) DVB-S", - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 1000, /* kHz for QPSK frontends */ - .frequency_tolerance = 0, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 1 * MHz, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .symbol_rate_tolerance = 500, /* ppm */
drivers/media/usb/dvb-usb/vp7045-fe.c +3 -3
@@ -162,9 +162,9 @@ static const struct dvb_frontend_ops vp7045_fe_ops = { .delsys = { SYS_DVBT }, .info = { .name = "Twinhan VP7045/46 USB DVB-T", - .frequency_min = 44250000, - .frequency_max = 867250000, - .frequency_stepsize = 1000, + .frequency_min_hz = 44250 * kHz, + .frequency_max_hz = 867250 * kHz, + .frequency_stepsize_hz = 1 * kHz, .caps =FE_CAN_INVERSION_AUTO |FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
drivers/media/usb/ttusb-dec/ttusbdecfe.c +6 -6
@@ -247,9 +247,9 @@ static const struct dvb_frontend_ops ttusbdecfe_dvbt_ops = { .delsys = { SYS_DVBT }, .info = { .name = "TechnoTrend/Hauppauge DEC2000-t Frontend", - .frequency_min = 51000000, - .frequency_max = 858000000, - .frequency_stepsize = 62500, + .frequency_min_hz = 51 * MHz, + .frequency_max_hz = 858 * MHz, + .frequency_stepsize_hz = 62500, .caps =FE_CAN_FEC_1_2 |FE_CAN_FEC_2_3 |FE_CAN_FEC_3_4 |FE_CAN_FEC_5_6 |FE_CAN_FEC_7_8 |FE_CAN_FEC_AUTO | FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO |
@@ -270,9 +270,9 @@ static const struct dvb_frontend_ops ttusbdecfe_dvbs_ops = { .delsys = { SYS_DVBS }, .info = { .name = "TechnoTrend/Hauppauge DEC3000-s Frontend", - .frequency_min = 950000, - .frequency_max = 2150000, - .frequency_stepsize = 125, + .frequency_min_hz = 950 * MHz, + .frequency_max_hz = 2150 * MHz, + .frequency_stepsize_hz = 125 * kHz, .symbol_rate_min = 1000000, /* guessed */ .symbol_rate_max = 45000000, /* guessed */ .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
include/media/dvb_frontend.h +29 -1
@@ -317,6 +317,34 @@ struct analog_demod_ops {struct dtv_frontend_properties ; +/** +* struct dvb_frontend_internal_info - Frontend properties and capabilities +* +* @name: Name of the frontend +* @frequency_min_hz: Minimal frequency supported by the frontend. +* @frequency_max_hz: Minimal frequency supported by the frontend. +* @frequency_stepsize_hz: All frequencies are multiple of this value. +* @frequency_tolerance_hz: Frequency tolerance. +* @symbol_rate_min: Minimal symbol rate, in bauds +* (for Cable/Satellite systems). +* @symbol_rate_max: Maximal symbol rate, in bauds +* (for Cable/Satellite systems). +* @symbol_rate_tolerance: Maximal symbol rate tolerance, in ppm +* (for Cable/Satellite systems). +* @caps: Capabilities supported by the frontend, +* as specified in &enum fe_caps. +*/ +struct dvb_frontend_internal_info { +char name[128 ]; +u32 frequency_min_hz; +u32 frequency_max_hz; +u32 frequency_stepsize_hz; +u32 frequency_tolerance_hz; +u32 symbol_rate_min; +u32 symbol_rate_max; +u32 symbol_rate_tolerance; +enum fe_caps caps; +};/** * struct dvb_frontend_ops - Demodulation information and callbacks for
@@ -404,7 +432,7 @@ struct dtv_frontend_properties;* @analog_ops: pointer to &struct analog_demod_ops */ struct dvb_frontend_ops { -struct dvb_frontend_info info; +struct dvb_frontend_internal_info info;u8 delsys[MAX_DELSYS ];
Signature · 1 line
2.17.1
Matthias Schwarzott
maintainerRe: [PATCH v2 2/3] media: dvb: represent min/max/step/tolerance freqs in Hz
Am 06.07.2018 um 00:59 schrieb Mauro Carvalho Chehab:
Hi Mauro,
I have one comment below.
Quoted 19 lines
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 <[email protected]>Signed-off-by Mauro Carvalho Chehab <[email protected]>---
drivers/media/dvb-core/dvb_frontend.c +0
-0
[...]
drivers/media/dvb-core/dvb_frontend.c static int dvb_frontend_handle_ioctl(struct file *file, · line 2424
Quoted 11 lines
drivers/media/dvb-core/dvb_frontend.c +4
-2@@ -2391,9 +2417,19 @@ static int dvb_frontend_handle_ioctl(struct file *file,case FE_GET_INFO : {struct dvb_frontend_info *info = parg; +memset (info,0 ,sizeof (*info)); -memcpy (info, &fe->ops.info,sizeof (struct dvb_frontend_info )); -dvb_frontend_get_frequency_limits (fe, &info->frequency_min, &info->frequency_max); +strcpy (info->name, fe->ops.info.name); + info->frequency_stepsize = fe->ops.info.frequency_stepsize_hz; + info->frequency_tolerance = fe->ops.info.frequency_tolerance_hz;
The variables frequency_stepsize and frequency_tolerance are assigned again some lines below.
drivers/media/dvb-core/dvb_frontend.c static int dvb_frontend_handle_ioctl(struct file *file, · line 2435
Quoted 11 lines
drivers/media/dvb-core/dvb_frontend.c +8
-0+ info->symbol_rate_min = fe->ops.info.symbol_rate_min; + info->symbol_rate_max = fe->ops.info.symbol_rate_max; + info->symbol_rate_tolerance = fe->ops.info.symbol_rate_tolerance; + info->caps = fe->ops.info.caps; + info->frequency_stepsize =dvb_frontend_get_stepsize (fe); +dvb_frontend_get_frequency_limits (fe, &info->frequency_min, + &info->frequency_max, + &info->frequency_tolerance);/* * Associate the 4 delivery systems supported by DVBv3
Matthias
PATCH v2 3/3 dvb_frontend: ensure that the step is ok for both FE and tuner
In reply to Mauro Carvalho ChehabThe frequency step should take into account the tuner step, as, if tuner step is bigger than frontend step, the zigzag algorithm won't be doing the right thing, as it will be tuning multiple times at the same frequency.
--- drivers/media/dvb-core/dvb_frontend.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
drivers/media/dvb-core/dvb_frontend.c +4 -1
@@ -939,7 +939,10 @@ static void dvb_frontend_get_frequency_limits(struct dvb_frontend *fe,static u32 dvb_frontend_get_stepsize (struct dvb_frontend *fe) {struct dtv_frontend_properties *c = &fe->dtv_property_cache; -u32 step = fe->ops.info.frequency_stepsize_hz; +u32 fe_step = fe->ops.info.frequency_stepsize_hz; +u32 tuner_step = fe->ops.tuner_ops.info.frequency_step_hz; +u32 step =max (fe_step, tuner_step); +switch (c->delivery_system) {case SYS_DVBS :case SYS_DVBS2 :
Signature · 1 line
2.17.1