diff options
author | Jean Delvare <khali@linux-fr.org> | 2010-09-10 09:36:37 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-10-20 23:06:10 -0400 |
commit | f89ca6fae204ca0c6eb0bb444290ad8032bf7aa2 (patch) | |
tree | cd526dfd98cc3f8b6ec375ccccb612ad9012bb29 /drivers/media/dvb/frontends/cx22702.c | |
parent | bdc6fad34139fdd5182e05977b4e5dc7ac132675 (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.c | 58 |
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__); |