V4L/DVB (4028): Change dvb_frontend_ops to be a real field instead of a pointer field inside dvb_frontend
The dvb_frontend_ops is a pointer inside dvb_frontend. That's why every demod-driver
is having a field of dvb_frontend_ops in its private-state-struct and
using the reference for filling the pointer-field in dvb_frontend.
- It saves at least two lines of code per demod-driver,
- reduces object size (one less dereference per frontend_ops-access),
- be coherent with dvb_tuner_ops,
- makes it a little bit easier for newbies to understand how it works and
- avoids stupid mistakes because you would have to copy the dvb_frontend_ops
always, before you could assign the static pointer directly, which was
dangerous.
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c
index 500785e..d0063ae 100644
--- a/drivers/media/dvb/dvb-usb/cxusb.c
+++ b/drivers/media/dvb/dvb-usb/cxusb.c
@@ -360,8 +360,8 @@
memcpy(d->pll_init, bpll, 4);
d->pll_desc = &dvb_pll_fmd1216me;
- d->fe->ops->tuner_ops.init = dvb_usb_tuner_init_i2c;
- d->fe->ops->tuner_ops.set_params = dvb_usb_tuner_set_params_i2c;
+ d->fe->ops.tuner_ops.init = dvb_usb_tuner_init_i2c;
+ d->fe->ops.tuner_ops.set_params = dvb_usb_tuner_set_params_i2c;
return 0;
}
@@ -370,7 +370,7 @@
{
d->pll_addr = 0x61;
d->pll_desc = &dvb_pll_thomson_dtt7579;
- d->fe->ops->tuner_ops.calc_regs = dvb_usb_tuner_calc_regs;
+ d->fe->ops.tuner_ops.calc_regs = dvb_usb_tuner_calc_regs;
return 0;
}
@@ -378,7 +378,7 @@
{
d->pll_addr = 0x61;
d->pll_desc = &dvb_pll_lg_z201;
- d->fe->ops->tuner_ops.calc_regs = dvb_usb_tuner_calc_regs;
+ d->fe->ops.tuner_ops.calc_regs = dvb_usb_tuner_calc_regs;
return 0;
}
@@ -386,13 +386,13 @@
{
d->pll_addr = 0x60;
d->pll_desc = &dvb_pll_thomson_dtt7579;
- d->fe->ops->tuner_ops.calc_regs = dvb_usb_tuner_calc_regs;
+ d->fe->ops.tuner_ops.calc_regs = dvb_usb_tuner_calc_regs;
return 0;
}
static int cxusb_lgdt3303_tuner_attach(struct dvb_usb_device *d)
{
- d->fe->ops->tuner_ops.set_params = cxusb_lgh064f_tuner_set_params;
+ d->fe->ops.tuner_ops.set_params = cxusb_lgh064f_tuner_set_params;
return 0;
}