aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/dvb-frontends/mb86a20s.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/drivers/media/dvb-frontends/mb86a20s.c b/drivers/media/dvb-frontends/mb86a20s.c
index 40c61838c61d..8f4fff1f0fa5 100644
--- a/drivers/media/dvb-frontends/mb86a20s.c
+++ b/drivers/media/dvb-frontends/mb86a20s.c
@@ -413,7 +413,7 @@ static int mb86a20s_get_modulation(struct mb86a20s_state *state,
413 rc = mb86a20s_readreg(state, 0x6e); 413 rc = mb86a20s_readreg(state, 0x6e);
414 if (rc < 0) 414 if (rc < 0)
415 return rc; 415 return rc;
416 switch ((rc & 0x70) >> 4) { 416 switch ((rc >> 4) & 0x07) {
417 case 0: 417 case 0:
418 return DQPSK; 418 return DQPSK;
419 case 1: 419 case 1:
@@ -446,7 +446,7 @@ static int mb86a20s_get_fec(struct mb86a20s_state *state,
446 rc = mb86a20s_readreg(state, 0x6e); 446 rc = mb86a20s_readreg(state, 0x6e);
447 if (rc < 0) 447 if (rc < 0)
448 return rc; 448 return rc;
449 switch (rc) { 449 switch ((rc >> 4) & 0x07) {
450 case 0: 450 case 0:
451 return FEC_1_2; 451 return FEC_1_2;
452 case 1: 452 case 1:
@@ -481,9 +481,21 @@ static int mb86a20s_get_interleaving(struct mb86a20s_state *state,
481 rc = mb86a20s_readreg(state, 0x6e); 481 rc = mb86a20s_readreg(state, 0x6e);
482 if (rc < 0) 482 if (rc < 0)
483 return rc; 483 return rc;
484 if (rc > 3) 484
485 return -EINVAL; /* Not used */ 485 switch ((rc >> 4) & 0x07) {
486 return rc; 486 case 1:
487 return GUARD_INTERVAL_1_4;
488 case 2:
489 return GUARD_INTERVAL_1_8;
490 case 3:
491 return GUARD_INTERVAL_1_16;
492 case 4:
493 return GUARD_INTERVAL_1_32;
494
495 default:
496 case 0:
497 return GUARD_INTERVAL_AUTO;
498 }
487} 499}
488 500
489static int mb86a20s_get_segment_count(struct mb86a20s_state *state, 501static int mb86a20s_get_segment_count(struct mb86a20s_state *state,