diff options
| -rw-r--r-- | drivers/media/dvb-frontends/mb86a20s.c | 22 |
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 | ||
| 489 | static int mb86a20s_get_segment_count(struct mb86a20s_state *state, | 501 | static int mb86a20s_get_segment_count(struct mb86a20s_state *state, |
