aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/frontends/cx22702.c
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2010-09-10 09:36:37 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-10-20 23:06:10 -0400
commitf89ca6fae204ca0c6eb0bb444290ad8032bf7aa2 (patch)
treecd526dfd98cc3f8b6ec375ccccb612ad9012bb29 /drivers/media/dvb/frontends/cx22702.c
parentbdc6fad34139fdd5182e05977b4e5dc7ac132675 (diff)
V4L/DVB: cx22702: Simplify cx22702_set_tps()
Code in function cx22702_set_tps() can be slightly simplified. Apparently gcc was smart enough to optimize it anyway, but it can't hurt to make the code more readable. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Steven Toth <stoth@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/frontends/cx22702.c')
-rw-r--r--drivers/media/dvb/frontends/cx22702.c58
1 files changed, 26 insertions, 32 deletions
diff --git a/drivers/media/dvb/frontends/cx22702.c b/drivers/media/dvb/frontends/cx22702.c
index f9a7aaee1900..ff6c4983051c 100644
--- a/drivers/media/dvb/frontends/cx22702.c
+++ b/drivers/media/dvb/frontends/cx22702.c
@@ -316,33 +316,31 @@ static int cx22702_set_tps(struct dvb_frontend *fe,
316 } 316 }
317 317
318 /* manually programmed values */ 318 /* manually programmed values */
319 val = 0; 319 switch (p->u.ofdm.constellation) { /* mask 0x18 */
320 switch (p->u.ofdm.constellation) {
321 case QPSK: 320 case QPSK:
322 val = (val & 0xe7); 321 val = 0x00;
323 break; 322 break;
324 case QAM_16: 323 case QAM_16:
325 val = (val & 0xe7) | 0x08; 324 val = 0x08;
326 break; 325 break;
327 case QAM_64: 326 case QAM_64:
328 val = (val & 0xe7) | 0x10; 327 val = 0x10;
329 break; 328 break;
330 default: 329 default:
331 dprintk("%s: invalid constellation\n", __func__); 330 dprintk("%s: invalid constellation\n", __func__);
332 return -EINVAL; 331 return -EINVAL;
333 } 332 }
334 switch (p->u.ofdm.hierarchy_information) { 333 switch (p->u.ofdm.hierarchy_information) { /* mask 0x07 */
335 case HIERARCHY_NONE: 334 case HIERARCHY_NONE:
336 val = (val & 0xf8);
337 break; 335 break;
338 case HIERARCHY_1: 336 case HIERARCHY_1:
339 val = (val & 0xf8) | 1; 337 val |= 0x01;
340 break; 338 break;
341 case HIERARCHY_2: 339 case HIERARCHY_2:
342 val = (val & 0xf8) | 2; 340 val |= 0x02;
343 break; 341 break;
344 case HIERARCHY_4: 342 case HIERARCHY_4:
345 val = (val & 0xf8) | 3; 343 val |= 0x03;
346 break; 344 break;
347 default: 345 default:
348 dprintk("%s: invalid hierarchy\n", __func__); 346 dprintk("%s: invalid hierarchy\n", __func__);
@@ -350,44 +348,42 @@ static int cx22702_set_tps(struct dvb_frontend *fe,
350 } 348 }
351 cx22702_writereg(state, 0x06, val); 349 cx22702_writereg(state, 0x06, val);
352 350
353 val = 0; 351 switch (p->u.ofdm.code_rate_HP) { /* mask 0x38 */
354 switch (p->u.ofdm.code_rate_HP) {
355 case FEC_NONE: 352 case FEC_NONE:
356 case FEC_1_2: 353 case FEC_1_2:
357 val = (val & 0xc7); 354 val = 0x00;
358 break; 355 break;
359 case FEC_2_3: 356 case FEC_2_3:
360 val = (val & 0xc7) | 0x08; 357 val = 0x08;
361 break; 358 break;
362 case FEC_3_4: 359 case FEC_3_4:
363 val = (val & 0xc7) | 0x10; 360 val = 0x10;
364 break; 361 break;
365 case FEC_5_6: 362 case FEC_5_6:
366 val = (val & 0xc7) | 0x18; 363 val = 0x18;
367 break; 364 break;
368 case FEC_7_8: 365 case FEC_7_8:
369 val = (val & 0xc7) | 0x20; 366 val = 0x20;
370 break; 367 break;
371 default: 368 default:
372 dprintk("%s: invalid code_rate_HP\n", __func__); 369 dprintk("%s: invalid code_rate_HP\n", __func__);
373 return -EINVAL; 370 return -EINVAL;
374 } 371 }
375 switch (p->u.ofdm.code_rate_LP) { 372 switch (p->u.ofdm.code_rate_LP) { /* mask 0x07 */
376 case FEC_NONE: 373 case FEC_NONE:
377 case FEC_1_2: 374 case FEC_1_2:
378 val = (val & 0xf8);
379 break; 375 break;
380 case FEC_2_3: 376 case FEC_2_3:
381 val = (val & 0xf8) | 1; 377 val |= 0x01;
382 break; 378 break;
383 case FEC_3_4: 379 case FEC_3_4:
384 val = (val & 0xf8) | 2; 380 val |= 0x02;
385 break; 381 break;
386 case FEC_5_6: 382 case FEC_5_6:
387 val = (val & 0xf8) | 3; 383 val |= 0x03;
388 break; 384 break;
389 case FEC_7_8: 385 case FEC_7_8:
390 val = (val & 0xf8) | 4; 386 val |= 0x04;
391 break; 387 break;
392 default: 388 default:
393 dprintk("%s: invalid code_rate_LP\n", __func__); 389 dprintk("%s: invalid code_rate_LP\n", __func__);
@@ -395,30 +391,28 @@ static int cx22702_set_tps(struct dvb_frontend *fe,
395 } 391 }
396 cx22702_writereg(state, 0x07, val); 392 cx22702_writereg(state, 0x07, val);
397 393
398 val = 0; 394 switch (p->u.ofdm.guard_interval) { /* mask 0x0c */
399 switch (p->u.ofdm.guard_interval) {
400 case GUARD_INTERVAL_1_32: 395 case GUARD_INTERVAL_1_32:
401 val = (val & 0xf3); 396 val = 0x00;
402 break; 397 break;
403 case GUARD_INTERVAL_1_16: 398 case GUARD_INTERVAL_1_16:
404 val = (val & 0xf3) | 0x04; 399 val = 0x04;
405 break; 400 break;
406 case GUARD_INTERVAL_1_8: 401 case GUARD_INTERVAL_1_8:
407 val = (val & 0xf3) | 0x08; 402 val = 0x08;
408 break; 403 break;
409 case GUARD_INTERVAL_1_4: 404 case GUARD_INTERVAL_1_4:
410 val = (val & 0xf3) | 0x0c; 405 val = 0x0c;
411 break; 406 break;
412 default: 407 default:
413 dprintk("%s: invalid guard_interval\n", __func__); 408 dprintk("%s: invalid guard_interval\n", __func__);
414 return -EINVAL; 409 return -EINVAL;
415 } 410 }
416 switch (p->u.ofdm.transmission_mode) { 411 switch (p->u.ofdm.transmission_mode) { /* mask 0x03 */
417 case TRANSMISSION_MODE_2K: 412 case TRANSMISSION_MODE_2K:
418 val = (val & 0xfc);
419 break; 413 break;
420 case TRANSMISSION_MODE_8K: 414 case TRANSMISSION_MODE_8K:
421 val = (val & 0xfc) | 1; 415 val |= 0x1;
422 break; 416 break;
423 default: 417 default:
424 dprintk("%s: invalid transmission_mode\n", __func__); 418 dprintk("%s: invalid transmission_mode\n", __func__);