aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/ttusb-dec
diff options
context:
space:
mode:
authorPatrick Boettcher <pb@linuxtv.org>2006-05-14 04:01:31 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-06-25 01:00:42 -0400
commitdea74869f3c62b0b7addd67017b22b394e942aac (patch)
treed1a597caea6615c76f34896cc832fd1371f2e776 /drivers/media/dvb/ttusb-dec
parent332bed5fc25ab0eb84215ecd89a4acd48219eee0 (diff)
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>
Diffstat (limited to 'drivers/media/dvb/ttusb-dec')
-rw-r--r--drivers/media/dvb/ttusb-dec/ttusb_dec.c4
-rw-r--r--drivers/media/dvb/ttusb-dec/ttusbdecfe.c8
2 files changed, 4 insertions, 8 deletions
diff --git a/drivers/media/dvb/ttusb-dec/ttusb_dec.c b/drivers/media/dvb/ttusb-dec/ttusb_dec.c
index da1090afad54..6c1cb770bcf5 100644
--- a/drivers/media/dvb/ttusb-dec/ttusb_dec.c
+++ b/drivers/media/dvb/ttusb-dec/ttusb_dec.c
@@ -1657,8 +1657,8 @@ static int ttusb_dec_probe(struct usb_interface *intf,
1657 } else { 1657 } else {
1658 if (dvb_register_frontend(&dec->adapter, dec->fe)) { 1658 if (dvb_register_frontend(&dec->adapter, dec->fe)) {
1659 printk("budget-ci: Frontend registration failed!\n"); 1659 printk("budget-ci: Frontend registration failed!\n");
1660 if (dec->fe->ops->release) 1660 if (dec->fe->ops.release)
1661 dec->fe->ops->release(dec->fe); 1661 dec->fe->ops.release(dec->fe);
1662 dec->fe = NULL; 1662 dec->fe = NULL;
1663 } 1663 }
1664 } 1664 }
diff --git a/drivers/media/dvb/ttusb-dec/ttusbdecfe.c b/drivers/media/dvb/ttusb-dec/ttusbdecfe.c
index a5a46175fa09..42f39a89bc4d 100644
--- a/drivers/media/dvb/ttusb-dec/ttusbdecfe.c
+++ b/drivers/media/dvb/ttusb-dec/ttusbdecfe.c
@@ -28,8 +28,6 @@
28 28
29struct ttusbdecfe_state { 29struct ttusbdecfe_state {
30 30
31 struct dvb_frontend_ops ops;
32
33 /* configuration settings */ 31 /* configuration settings */
34 const struct ttusbdecfe_config* config; 32 const struct ttusbdecfe_config* config;
35 33
@@ -203,10 +201,9 @@ struct dvb_frontend* ttusbdecfe_dvbt_attach(const struct ttusbdecfe_config* conf
203 201
204 /* setup the state */ 202 /* setup the state */
205 state->config = config; 203 state->config = config;
206 memcpy(&state->ops, &ttusbdecfe_dvbt_ops, sizeof(struct dvb_frontend_ops));
207 204
208 /* create dvb_frontend */ 205 /* create dvb_frontend */
209 state->frontend.ops = &state->ops; 206 memcpy(&state->frontend.ops, &ttusbdecfe_dvbt_ops, sizeof(struct dvb_frontend_ops));
210 state->frontend.demodulator_priv = state; 207 state->frontend.demodulator_priv = state;
211 return &state->frontend; 208 return &state->frontend;
212} 209}
@@ -226,10 +223,9 @@ struct dvb_frontend* ttusbdecfe_dvbs_attach(const struct ttusbdecfe_config* conf
226 state->config = config; 223 state->config = config;
227 state->voltage = 0; 224 state->voltage = 0;
228 state->hi_band = 0; 225 state->hi_band = 0;
229 memcpy(&state->ops, &ttusbdecfe_dvbs_ops, sizeof(struct dvb_frontend_ops));
230 226
231 /* create dvb_frontend */ 227 /* create dvb_frontend */
232 state->frontend.ops = &state->ops; 228 memcpy(&state->frontend.ops, &ttusbdecfe_dvbs_ops, sizeof(struct dvb_frontend_ops));
233 state->frontend.demodulator_priv = state; 229 state->frontend.demodulator_priv = state;
234 return &state->frontend; 230 return &state->frontend;
235} 231}