V4L/DVB (13357): stv090x: adds an additional check for signal presence based on AGC1
authorAndreas Regel <andreas.regel@gmx.de>
Fri, 13 Nov 2009 21:18:53 +0000 (18:18 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 5 Dec 2009 20:41:30 +0000 (18:41 -0200)
Signed-off-by: Andreas Regel <andreas.regel@gmx.de>
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/frontends/stv090x.c
drivers/media/dvb/frontends/stv090x_priv.h

index a2ec0ed..647c535 100644 (file)
@@ -3185,7 +3185,7 @@ static enum stv090x_signal_state stv090x_algo(struct stv090x_state *state)
        if ((agc1_power == 0) && (power_iq < STV090x_IQPOWER_THRESHOLD)) {
                dprintk(FE_ERROR, 1, "No Signal: POWER_IQ=0x%02x", power_iq);
                lock = 0;
-
+               signal_state = STV090x_NOAGC1;
        } else {
                reg = STV090x_READ_DEMOD(state, DEMOD);
                STV090x_SETFIELD_Px(reg, SPECINV_CONTROL_FIELD, state->inversion);
@@ -3209,9 +3209,8 @@ static enum stv090x_signal_state stv090x_algo(struct stv090x_state *state)
                }
        }
 
-       /* need to check for AGC1 state */
-
-
+       if (signal_state == STV090x_NOAGC1)
+               return signal_state;
 
        if (state->algo == STV090x_BLIND_SEARCH)
                lock = stv090x_blind_search(state);
index 5696816..5921a8d 100644 (file)
@@ -91,6 +91,7 @@
        STV090x_SEARCH_AGC2_TH_CUT30)
 
 enum stv090x_signal_state {
+       STV090x_NOAGC1,
        STV090x_NOCARRIER,
        STV090x_NODATA,
        STV090x_DATAOK,