From 92d2213c59053a7684e53e3e8e54724c301c97f4 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Mon, 14 Jan 2013 12:31:13 -0300 Subject: [PATCH] --- yaml --- r: 357358 b: refs/heads/master c: 04585921ac0fa0f4baaf510cc7e52e3399018fb4 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/media/dvb-frontends/mb86a20s.c | 22 +++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 359570694da0..e87d08ff03fe 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ce77d120ed24d44aa020bde61f32bbdabb9ed596 +refs/heads/master: 04585921ac0fa0f4baaf510cc7e52e3399018fb4 diff --git a/trunk/drivers/media/dvb-frontends/mb86a20s.c b/trunk/drivers/media/dvb-frontends/mb86a20s.c index 40c61838c61d..8f4fff1f0fa5 100644 --- a/trunk/drivers/media/dvb-frontends/mb86a20s.c +++ b/trunk/drivers/media/dvb-frontends/mb86a20s.c @@ -413,7 +413,7 @@ static int mb86a20s_get_modulation(struct mb86a20s_state *state, rc = mb86a20s_readreg(state, 0x6e); if (rc < 0) return rc; - switch ((rc & 0x70) >> 4) { + switch ((rc >> 4) & 0x07) { case 0: return DQPSK; case 1: @@ -446,7 +446,7 @@ static int mb86a20s_get_fec(struct mb86a20s_state *state, rc = mb86a20s_readreg(state, 0x6e); if (rc < 0) return rc; - switch (rc) { + switch ((rc >> 4) & 0x07) { case 0: return FEC_1_2; case 1: @@ -481,9 +481,21 @@ static int mb86a20s_get_interleaving(struct mb86a20s_state *state, rc = mb86a20s_readreg(state, 0x6e); if (rc < 0) return rc; - if (rc > 3) - return -EINVAL; /* Not used */ - return rc; + + switch ((rc >> 4) & 0x07) { + case 1: + return GUARD_INTERVAL_1_4; + case 2: + return GUARD_INTERVAL_1_8; + case 3: + return GUARD_INTERVAL_1_16; + case 4: + return GUARD_INTERVAL_1_32; + + default: + case 0: + return GUARD_INTERVAL_AUTO; + } } static int mb86a20s_get_segment_count(struct mb86a20s_state *state,