From cfe9d549467311c3c6d7babc95930da14ffecdd2 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Thu, 25 Apr 2013 11:15:54 -0300 Subject: [PATCH] --- yaml --- r: 367193 b: refs/heads/master c: 746f7ae0e9ca500f8be888675d88befed5740413 h: refs/heads/master i: 367191: 9d4eab82b0e8e9571a2b1070f615bd2f9aea36df v: v3 --- [refs] | 2 +- trunk/drivers/media/dvb-frontends/dib8000.c | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index f1c1d457d2bd..223485473706 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c82056d0b4ac7b805ac4e7d3870c42bb19e3b3d5 +refs/heads/master: 746f7ae0e9ca500f8be888675d88befed5740413 diff --git a/trunk/drivers/media/dvb-frontends/dib8000.c b/trunk/drivers/media/dvb-frontends/dib8000.c index 77dac46bfcbf..57863d3fd1cf 100644 --- a/trunk/drivers/media/dvb-frontends/dib8000.c +++ b/trunk/drivers/media/dvb-frontends/dib8000.c @@ -2355,7 +2355,7 @@ static void dib8000_set_isdbt_common_channel(struct dib8000_state *state, u8 seq /* TSB or ISDBT ? apply it now */ if (c->isdbt_sb_mode) { dib8000_set_sb_channel(state); - if (c->isdbt_sb_subchannel != -1) + if (c->isdbt_sb_subchannel < 14) init_prbs = dib8000_get_init_prbs(state, c->isdbt_sb_subchannel); else init_prbs = 0; @@ -3102,7 +3102,9 @@ static int dib8000_tune(struct dvb_frontend *fe) dib8000_set_isdbt_loop_params(state, LOOP_TUNE_2); /* mpeg will never lock on this condition because init_prbs is not set : search for it !*/ - if (c->isdbt_sb_mode && c->isdbt_sb_subchannel == -1 && !state->differential_constellation) { + if (c->isdbt_sb_mode + && c->isdbt_sb_subchannel < 14 + && !state->differential_constellation) { state->subchannel = 0; *tune_state = CT_DEMOD_STEP_11; } else { @@ -3146,14 +3148,18 @@ static int dib8000_tune(struct dvb_frontend *fe) locks = dib8000_read_lock(fe); if (locks&(1<<(7-state->longest_intlv_layer))) { /* mpeg lock : check the longest one */ dprintk("Mpeg locks [ L0 : %d | L1 : %d | L2 : %d ]", (locks>>7)&0x1, (locks>>6)&0x1, (locks>>5)&0x1); - if (c->isdbt_sb_mode && c->isdbt_sb_subchannel == -1 && !state->differential_constellation) + if (c->isdbt_sb_mode + && c->isdbt_sb_subchannel < 14 + && !state->differential_constellation) /* signal to the upper layer, that there was a channel found and the parameters can be read */ state->status = FE_STATUS_DEMOD_SUCCESS; else state->status = FE_STATUS_DATA_LOCKED; *tune_state = CT_DEMOD_STOP; } else if (now > *timeout) { - if (c->isdbt_sb_mode && c->isdbt_sb_subchannel == -1 && !state->differential_constellation) { /* continue to try init prbs autosearch */ + if (c->isdbt_sb_mode + && c->isdbt_sb_subchannel < 14 + && !state->differential_constellation) { /* continue to try init prbs autosearch */ state->subchannel += 3; *tune_state = CT_DEMOD_STEP_11; } else { /* we are done mpeg of the longest interleaver xas not locking but let's try if an other layer has locked in the same time */