1 commit 9e332f6087c1bac263298afc3ef96c368131cbc1
2 Author: Andreas Oberritter <obi@linuxtv.org>
3 Date: Sun May 8 20:03:39 2011 -0300
5 [media] DVB: dvb_frontend: use shortcut to access fe->dtv_property_cache
7 Signed-off-by: Andreas Oberritter <obi@linuxtv.org>
8 Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
12 drivers/media/dvb/dvb-core/dvb_frontend.c
14 diff -Naur a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
15 --- a/drivers/media/dvb/dvb-core/dvb_frontend.c 2011-08-09 18:55:42.736223117 +0200
16 +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c 2011-08-09 18:57:42.520221665 +0200
19 static int dvb_frontend_clear_cache(struct dvb_frontend *fe)
21 + struct dtv_frontend_properties *c = &fe->dtv_property_cache;
24 - memset(&(fe->dtv_property_cache), 0,
25 - sizeof(struct dtv_frontend_properties));
26 + memset(c, 0, sizeof(struct dtv_frontend_properties));
28 - fe->dtv_property_cache.state = DTV_CLEAR;
29 - fe->dtv_property_cache.delivery_system = SYS_UNDEFINED;
30 - fe->dtv_property_cache.inversion = INVERSION_AUTO;
31 - fe->dtv_property_cache.fec_inner = FEC_AUTO;
32 - fe->dtv_property_cache.transmission_mode = TRANSMISSION_MODE_AUTO;
33 - fe->dtv_property_cache.bandwidth_hz = BANDWIDTH_AUTO;
34 - fe->dtv_property_cache.guard_interval = GUARD_INTERVAL_AUTO;
35 - fe->dtv_property_cache.hierarchy = HIERARCHY_AUTO;
36 - fe->dtv_property_cache.symbol_rate = QAM_AUTO;
37 - fe->dtv_property_cache.code_rate_HP = FEC_AUTO;
38 - fe->dtv_property_cache.code_rate_LP = FEC_AUTO;
40 - fe->dtv_property_cache.isdbt_partial_reception = -1;
41 - fe->dtv_property_cache.isdbt_sb_mode = -1;
42 - fe->dtv_property_cache.isdbt_sb_subchannel = -1;
43 - fe->dtv_property_cache.isdbt_sb_segment_idx = -1;
44 - fe->dtv_property_cache.isdbt_sb_segment_count = -1;
45 - fe->dtv_property_cache.isdbt_layer_enabled = 0x7;
46 + c->state = DTV_CLEAR;
47 + c->delivery_system = SYS_UNDEFINED;
48 + c->inversion = INVERSION_AUTO;
49 + c->fec_inner = FEC_AUTO;
50 + c->transmission_mode = TRANSMISSION_MODE_AUTO;
51 + c->bandwidth_hz = BANDWIDTH_AUTO;
52 + c->guard_interval = GUARD_INTERVAL_AUTO;
53 + c->hierarchy = HIERARCHY_AUTO;
54 + c->symbol_rate = QAM_AUTO;
55 + c->code_rate_HP = FEC_AUTO;
56 + c->code_rate_LP = FEC_AUTO;
58 + c->isdbt_partial_reception = -1;
59 + c->isdbt_sb_mode = -1;
60 + c->isdbt_sb_subchannel = -1;
61 + c->isdbt_sb_segment_idx = -1;
62 + c->isdbt_sb_segment_count = -1;
63 + c->isdbt_layer_enabled = 0x7;
64 for (i = 0; i < 3; i++) {
65 - fe->dtv_property_cache.layer[i].fec = FEC_AUTO;
66 - fe->dtv_property_cache.layer[i].modulation = QAM_AUTO;
67 - fe->dtv_property_cache.layer[i].interleaving = -1;
68 - fe->dtv_property_cache.layer[i].segment_count = -1;
69 + c->layer[i].fec = FEC_AUTO;
70 + c->layer[i].modulation = QAM_AUTO;
71 + c->layer[i].interleaving = -1;
72 + c->layer[i].segment_count = -1;
76 @@ -1207,118 +1207,119 @@
77 struct dtv_property *tvp,
78 struct inode *inode, struct file *file)
80 + const struct dtv_frontend_properties *c = &fe->dtv_property_cache;
85 - tvp->u.data = fe->dtv_property_cache.frequency;
86 + tvp->u.data = c->frequency;
89 - tvp->u.data = fe->dtv_property_cache.modulation;
90 + tvp->u.data = c->modulation;
92 case DTV_BANDWIDTH_HZ:
93 - tvp->u.data = fe->dtv_property_cache.bandwidth_hz;
94 + tvp->u.data = c->bandwidth_hz;
97 - tvp->u.data = fe->dtv_property_cache.inversion;
98 + tvp->u.data = c->inversion;
100 case DTV_SYMBOL_RATE:
101 - tvp->u.data = fe->dtv_property_cache.symbol_rate;
102 + tvp->u.data = c->symbol_rate;
105 - tvp->u.data = fe->dtv_property_cache.fec_inner;
106 + tvp->u.data = c->fec_inner;
109 - tvp->u.data = fe->dtv_property_cache.pilot;
110 + tvp->u.data = c->pilot;
113 - tvp->u.data = fe->dtv_property_cache.rolloff;
114 + tvp->u.data = c->rolloff;
116 case DTV_DELIVERY_SYSTEM:
117 - tvp->u.data = fe->dtv_property_cache.delivery_system;
118 + tvp->u.data = c->delivery_system;
121 - tvp->u.data = fe->dtv_property_cache.voltage;
122 + tvp->u.data = c->voltage;
125 - tvp->u.data = fe->dtv_property_cache.sectone;
126 + tvp->u.data = c->sectone;
128 case DTV_API_VERSION:
129 tvp->u.data = (DVB_API_VERSION << 8) | DVB_API_VERSION_MINOR;
131 case DTV_CODE_RATE_HP:
132 - tvp->u.data = fe->dtv_property_cache.code_rate_HP;
133 + tvp->u.data = c->code_rate_HP;
135 case DTV_CODE_RATE_LP:
136 - tvp->u.data = fe->dtv_property_cache.code_rate_LP;
137 + tvp->u.data = c->code_rate_LP;
139 case DTV_GUARD_INTERVAL:
140 - tvp->u.data = fe->dtv_property_cache.guard_interval;
141 + tvp->u.data = c->guard_interval;
143 case DTV_TRANSMISSION_MODE:
144 - tvp->u.data = fe->dtv_property_cache.transmission_mode;
145 + tvp->u.data = c->transmission_mode;
148 - tvp->u.data = fe->dtv_property_cache.hierarchy;
149 + tvp->u.data = c->hierarchy;
152 /* ISDB-T Support here */
153 case DTV_ISDBT_PARTIAL_RECEPTION:
154 - tvp->u.data = fe->dtv_property_cache.isdbt_partial_reception;
155 + tvp->u.data = c->isdbt_partial_reception;
157 case DTV_ISDBT_SOUND_BROADCASTING:
158 - tvp->u.data = fe->dtv_property_cache.isdbt_sb_mode;
159 + tvp->u.data = c->isdbt_sb_mode;
161 case DTV_ISDBT_SB_SUBCHANNEL_ID:
162 - tvp->u.data = fe->dtv_property_cache.isdbt_sb_subchannel;
163 + tvp->u.data = c->isdbt_sb_subchannel;
165 case DTV_ISDBT_SB_SEGMENT_IDX:
166 - tvp->u.data = fe->dtv_property_cache.isdbt_sb_segment_idx;
167 + tvp->u.data = c->isdbt_sb_segment_idx;
169 case DTV_ISDBT_SB_SEGMENT_COUNT:
170 - tvp->u.data = fe->dtv_property_cache.isdbt_sb_segment_count;
171 + tvp->u.data = c->isdbt_sb_segment_count;
173 case DTV_ISDBT_LAYER_ENABLED:
174 - tvp->u.data = fe->dtv_property_cache.isdbt_layer_enabled;
175 + tvp->u.data = c->isdbt_layer_enabled;
177 case DTV_ISDBT_LAYERA_FEC:
178 - tvp->u.data = fe->dtv_property_cache.layer[0].fec;
179 + tvp->u.data = c->layer[0].fec;
181 case DTV_ISDBT_LAYERA_MODULATION:
182 - tvp->u.data = fe->dtv_property_cache.layer[0].modulation;
183 + tvp->u.data = c->layer[0].modulation;
185 case DTV_ISDBT_LAYERA_SEGMENT_COUNT:
186 - tvp->u.data = fe->dtv_property_cache.layer[0].segment_count;
187 + tvp->u.data = c->layer[0].segment_count;
189 case DTV_ISDBT_LAYERA_TIME_INTERLEAVING:
190 - tvp->u.data = fe->dtv_property_cache.layer[0].interleaving;
191 + tvp->u.data = c->layer[0].interleaving;
193 case DTV_ISDBT_LAYERB_FEC:
194 - tvp->u.data = fe->dtv_property_cache.layer[1].fec;
195 + tvp->u.data = c->layer[1].fec;
197 case DTV_ISDBT_LAYERB_MODULATION:
198 - tvp->u.data = fe->dtv_property_cache.layer[1].modulation;
199 + tvp->u.data = c->layer[1].modulation;
201 case DTV_ISDBT_LAYERB_SEGMENT_COUNT:
202 - tvp->u.data = fe->dtv_property_cache.layer[1].segment_count;
203 + tvp->u.data = c->layer[1].segment_count;
205 case DTV_ISDBT_LAYERB_TIME_INTERLEAVING:
206 - tvp->u.data = fe->dtv_property_cache.layer[1].interleaving;
207 + tvp->u.data = c->layer[1].interleaving;
209 case DTV_ISDBT_LAYERC_FEC:
210 - tvp->u.data = fe->dtv_property_cache.layer[2].fec;
211 + tvp->u.data = c->layer[2].fec;
213 case DTV_ISDBT_LAYERC_MODULATION:
214 - tvp->u.data = fe->dtv_property_cache.layer[2].modulation;
215 + tvp->u.data = c->layer[2].modulation;
217 case DTV_ISDBT_LAYERC_SEGMENT_COUNT:
218 - tvp->u.data = fe->dtv_property_cache.layer[2].segment_count;
219 + tvp->u.data = c->layer[2].segment_count;
221 case DTV_ISDBT_LAYERC_TIME_INTERLEAVING:
222 - tvp->u.data = fe->dtv_property_cache.layer[2].interleaving;
223 + tvp->u.data = c->layer[2].interleaving;
225 case DTV_ISDBS_TS_ID:
226 - tvp->u.data = fe->dtv_property_cache.isdbs_ts_id;
227 + tvp->u.data = c->isdbs_ts_id;
231 @@ -1342,6 +1343,7 @@
235 + struct dtv_frontend_properties *c = &fe->dtv_property_cache;
236 struct dvb_frontend_private *fepriv = fe->frontend_priv;
237 dtv_property_dump(tvp);
239 @@ -1365,7 +1367,7 @@
240 * tunerequest so we can pass validation in the FE_SET_FRONTEND
243 - fe->dtv_property_cache.state = tvp->cmd;
244 + c->state = tvp->cmd;
245 dprintk("%s() Finalised property cache\n", __func__);
246 dtv_property_cache_submit(fe);
248 @@ -1373,115 +1375,115 @@
249 &fepriv->parameters_in);
252 - fe->dtv_property_cache.frequency = tvp->u.data;
253 + c->frequency = tvp->u.data;
256 - fe->dtv_property_cache.modulation = tvp->u.data;
257 + c->modulation = tvp->u.data;
259 case DTV_BANDWIDTH_HZ:
260 - fe->dtv_property_cache.bandwidth_hz = tvp->u.data;
261 + c->bandwidth_hz = tvp->u.data;
264 - fe->dtv_property_cache.inversion = tvp->u.data;
265 + c->inversion = tvp->u.data;
267 case DTV_SYMBOL_RATE:
268 - fe->dtv_property_cache.symbol_rate = tvp->u.data;
269 + c->symbol_rate = tvp->u.data;
272 - fe->dtv_property_cache.fec_inner = tvp->u.data;
273 + c->fec_inner = tvp->u.data;
276 - fe->dtv_property_cache.pilot = tvp->u.data;
277 + c->pilot = tvp->u.data;
280 - fe->dtv_property_cache.rolloff = tvp->u.data;
281 + c->rolloff = tvp->u.data;
283 case DTV_DELIVERY_SYSTEM:
284 - fe->dtv_property_cache.delivery_system = tvp->u.data;
285 + c->delivery_system = tvp->u.data;
288 - fe->dtv_property_cache.voltage = tvp->u.data;
289 + c->voltage = tvp->u.data;
290 r = dvb_frontend_ioctl_legacy(inode, file, FE_SET_VOLTAGE,
291 - (void *)fe->dtv_property_cache.voltage);
292 + (void *)c->voltage);
295 - fe->dtv_property_cache.sectone = tvp->u.data;
296 + c->sectone = tvp->u.data;
297 r = dvb_frontend_ioctl_legacy(inode, file, FE_SET_TONE,
298 - (void *)fe->dtv_property_cache.sectone);
299 + (void *)c->sectone);
301 case DTV_CODE_RATE_HP:
302 - fe->dtv_property_cache.code_rate_HP = tvp->u.data;
303 + c->code_rate_HP = tvp->u.data;
305 case DTV_CODE_RATE_LP:
306 - fe->dtv_property_cache.code_rate_LP = tvp->u.data;
307 + c->code_rate_LP = tvp->u.data;
309 case DTV_GUARD_INTERVAL:
310 - fe->dtv_property_cache.guard_interval = tvp->u.data;
311 + c->guard_interval = tvp->u.data;
313 case DTV_TRANSMISSION_MODE:
314 - fe->dtv_property_cache.transmission_mode = tvp->u.data;
315 + c->transmission_mode = tvp->u.data;
318 - fe->dtv_property_cache.hierarchy = tvp->u.data;
319 + c->hierarchy = tvp->u.data;
322 /* ISDB-T Support here */
323 case DTV_ISDBT_PARTIAL_RECEPTION:
324 - fe->dtv_property_cache.isdbt_partial_reception = tvp->u.data;
325 + c->isdbt_partial_reception = tvp->u.data;
327 case DTV_ISDBT_SOUND_BROADCASTING:
328 - fe->dtv_property_cache.isdbt_sb_mode = tvp->u.data;
329 + c->isdbt_sb_mode = tvp->u.data;
331 case DTV_ISDBT_SB_SUBCHANNEL_ID:
332 - fe->dtv_property_cache.isdbt_sb_subchannel = tvp->u.data;
333 + c->isdbt_sb_subchannel = tvp->u.data;
335 case DTV_ISDBT_SB_SEGMENT_IDX:
336 - fe->dtv_property_cache.isdbt_sb_segment_idx = tvp->u.data;
337 + c->isdbt_sb_segment_idx = tvp->u.data;
339 case DTV_ISDBT_SB_SEGMENT_COUNT:
340 - fe->dtv_property_cache.isdbt_sb_segment_count = tvp->u.data;
341 + c->isdbt_sb_segment_count = tvp->u.data;
343 case DTV_ISDBT_LAYER_ENABLED:
344 - fe->dtv_property_cache.isdbt_layer_enabled = tvp->u.data;
345 + c->isdbt_layer_enabled = tvp->u.data;
347 case DTV_ISDBT_LAYERA_FEC:
348 - fe->dtv_property_cache.layer[0].fec = tvp->u.data;
349 + c->layer[0].fec = tvp->u.data;
351 case DTV_ISDBT_LAYERA_MODULATION:
352 - fe->dtv_property_cache.layer[0].modulation = tvp->u.data;
353 + c->layer[0].modulation = tvp->u.data;
355 case DTV_ISDBT_LAYERA_SEGMENT_COUNT:
356 - fe->dtv_property_cache.layer[0].segment_count = tvp->u.data;
357 + c->layer[0].segment_count = tvp->u.data;
359 case DTV_ISDBT_LAYERA_TIME_INTERLEAVING:
360 - fe->dtv_property_cache.layer[0].interleaving = tvp->u.data;
361 + c->layer[0].interleaving = tvp->u.data;
363 case DTV_ISDBT_LAYERB_FEC:
364 - fe->dtv_property_cache.layer[1].fec = tvp->u.data;
365 + c->layer[1].fec = tvp->u.data;
367 case DTV_ISDBT_LAYERB_MODULATION:
368 - fe->dtv_property_cache.layer[1].modulation = tvp->u.data;
369 + c->layer[1].modulation = tvp->u.data;
371 case DTV_ISDBT_LAYERB_SEGMENT_COUNT:
372 - fe->dtv_property_cache.layer[1].segment_count = tvp->u.data;
373 + c->layer[1].segment_count = tvp->u.data;
375 case DTV_ISDBT_LAYERB_TIME_INTERLEAVING:
376 - fe->dtv_property_cache.layer[1].interleaving = tvp->u.data;
377 + c->layer[1].interleaving = tvp->u.data;
379 case DTV_ISDBT_LAYERC_FEC:
380 - fe->dtv_property_cache.layer[2].fec = tvp->u.data;
381 + c->layer[2].fec = tvp->u.data;
383 case DTV_ISDBT_LAYERC_MODULATION:
384 - fe->dtv_property_cache.layer[2].modulation = tvp->u.data;
385 + c->layer[2].modulation = tvp->u.data;
387 case DTV_ISDBT_LAYERC_SEGMENT_COUNT:
388 - fe->dtv_property_cache.layer[2].segment_count = tvp->u.data;
389 + c->layer[2].segment_count = tvp->u.data;
391 case DTV_ISDBT_LAYERC_TIME_INTERLEAVING:
392 - fe->dtv_property_cache.layer[2].interleaving = tvp->u.data;
393 + c->layer[2].interleaving = tvp->u.data;
395 case DTV_ISDBS_TS_ID:
396 - fe->dtv_property_cache.isdbs_ts_id = tvp->u.data;
397 + c->isdbs_ts_id = tvp->u.data;
401 @@ -1495,6 +1497,7 @@
403 struct dvb_device *dvbdev = file->private_data;
404 struct dvb_frontend *fe = dvbdev->priv;
405 + struct dtv_frontend_properties *c = &fe->dtv_property_cache;
406 struct dvb_frontend_private *fepriv = fe->frontend_priv;
407 int err = -EOPNOTSUPP;
409 @@ -1514,7 +1517,7 @@
410 if ((cmd == FE_SET_PROPERTY) || (cmd == FE_GET_PROPERTY))
411 err = dvb_frontend_ioctl_properties(inode, file, cmd, parg);
413 - fe->dtv_property_cache.state = DTV_UNDEFINED;
414 + c->state = DTV_UNDEFINED;
415 err = dvb_frontend_ioctl_legacy(inode, file, cmd, parg);
418 @@ -1527,6 +1530,7 @@
420 struct dvb_device *dvbdev = file->private_data;
421 struct dvb_frontend *fe = dvbdev->priv;
422 + struct dtv_frontend_properties *c = &fe->dtv_property_cache;
425 struct dtv_properties *tvps = NULL;
426 @@ -1564,7 +1568,7 @@
427 (tvp+i)->result = err;
430 - if(fe->dtv_property_cache.state == DTV_TUNE)
431 + if (c->state == DTV_TUNE)
432 dprintk("%s() Property cache is full, tuning\n", __func__);
435 @@ -1795,9 +1799,10 @@
438 case FE_SET_FRONTEND: {
439 + struct dtv_frontend_properties *c = &fe->dtv_property_cache;
440 struct dvb_frontend_tune_settings fetunesettings;
442 - if(fe->dtv_property_cache.state == DTV_TUNE) {
443 + if (c->state == DTV_TUNE) {
444 if (dvb_frontend_check_parameters(fe, &fepriv->parameters_in) < 0) {