aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAndreas Regel <andreas.regel@gmx.de>2009-11-13 16:18:53 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-12-05 15:41:30 -0500
commitc4fa649a3beca1e311d7f244de67306673f4c285 (patch)
tree9d380d2382a8b3656071bf87ad380176ac7bd9a3 /drivers
parenta4978a83e51324aed08b1f1105a58f7e6491b751 (diff)
V4L/DVB (13357): stv090x: adds an additional check for signal presence based on AGC1
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/dvb/frontends/stv090x.c7
-rw-r--r--drivers/media/dvb/frontends/stv090x_priv.h1
2 files changed, 4 insertions, 4 deletions
diff --git a/drivers/media/dvb/frontends/stv090x.c b/drivers/media/dvb/frontends/stv090x.c
index a2ec0ed48832..647c5354300f 100644
--- a/drivers/media/dvb/frontends/stv090x.c
+++ b/drivers/media/dvb/frontends/stv090x.c
@@ -3185,7 +3185,7 @@ static enum stv090x_signal_state stv090x_algo(struct stv090x_state *state)
3185 if ((agc1_power == 0) && (power_iq < STV090x_IQPOWER_THRESHOLD)) { 3185 if ((agc1_power == 0) && (power_iq < STV090x_IQPOWER_THRESHOLD)) {
3186 dprintk(FE_ERROR, 1, "No Signal: POWER_IQ=0x%02x", power_iq); 3186 dprintk(FE_ERROR, 1, "No Signal: POWER_IQ=0x%02x", power_iq);
3187 lock = 0; 3187 lock = 0;
3188 3188 signal_state = STV090x_NOAGC1;
3189 } else { 3189 } else {
3190 reg = STV090x_READ_DEMOD(state, DEMOD); 3190 reg = STV090x_READ_DEMOD(state, DEMOD);
3191 STV090x_SETFIELD_Px(reg, SPECINV_CONTROL_FIELD, state->inversion); 3191 STV090x_SETFIELD_Px(reg, SPECINV_CONTROL_FIELD, state->inversion);
@@ -3209,9 +3209,8 @@ static enum stv090x_signal_state stv090x_algo(struct stv090x_state *state)
3209 } 3209 }
3210 } 3210 }
3211 3211
3212 /* need to check for AGC1 state */ 3212 if (signal_state == STV090x_NOAGC1)
3213 3213 return signal_state;
3214
3215 3214
3216 if (state->algo == STV090x_BLIND_SEARCH) 3215 if (state->algo == STV090x_BLIND_SEARCH)
3217 lock = stv090x_blind_search(state); 3216 lock = stv090x_blind_search(state);
diff --git a/drivers/media/dvb/frontends/stv090x_priv.h b/drivers/media/dvb/frontends/stv090x_priv.h
index 5696816b88a4..5921a8d6c89f 100644
--- a/drivers/media/dvb/frontends/stv090x_priv.h
+++ b/drivers/media/dvb/frontends/stv090x_priv.h
@@ -91,6 +91,7 @@
91 STV090x_SEARCH_AGC2_TH_CUT30) 91 STV090x_SEARCH_AGC2_TH_CUT30)
92 92
93enum stv090x_signal_state { 93enum stv090x_signal_state {
94 STV090x_NOAGC1,
94 STV090x_NOCARRIER, 95 STV090x_NOCARRIER,
95 STV090x_NODATA, 96 STV090x_NODATA,
96 STV090x_DATAOK, 97 STV090x_DATAOK,