Commit b1a88c71 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

[media] lbdt3306a: simplify the lock status check

The logic there is too complex and it looks like an inifite
loop.

So, simplify the logic and implement it as a for loop.

This gets rid of the following checkpatch.pl warnings:

WARNING: else is not generally useful after a break or return
+			return LG3306_UNLOCK;
+		} else {

WARNING: else is not generally useful after a break or return
+			return LG3306_UNLOCK;
+		} else {
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 097117ca
...@@ -1461,65 +1461,53 @@ static enum lgdt3306a_lock_status lgdt3306a_vsb_lock_poll(struct lgdt3306a_state ...@@ -1461,65 +1461,53 @@ static enum lgdt3306a_lock_status lgdt3306a_vsb_lock_poll(struct lgdt3306a_state
u8 packet_error; u8 packet_error;
u32 snr; u32 snr;
while (1) { for (cnt = 0; cnt < 10; cnt++) {
if (lgdt3306a_sync_lock_poll(state) == LG3306_UNLOCK) { if (lgdt3306a_sync_lock_poll(state) == LG3306_UNLOCK) {
dbg_info("no sync lock!\n"); dbg_info("no sync lock!\n");
return LG3306_UNLOCK; return LG3306_UNLOCK;
} else { }
msleep(20); msleep(20);
ret = lgdt3306a_pre_monitoring(state); ret = lgdt3306a_pre_monitoring(state);
if (ret) if (ret)
return LG3306_UNLOCK; break;
packet_error = lgdt3306a_get_packet_error(state); packet_error = lgdt3306a_get_packet_error(state);
snr = lgdt3306a_calculate_snr_x100(state); snr = lgdt3306a_calculate_snr_x100(state);
dbg_info("cnt=%d errors=%d snr=%d\n", dbg_info("cnt=%d errors=%d snr=%d\n", cnt, packet_error, snr);
cnt, packet_error, snr);
if ((snr < 1500) || (packet_error >= 0xff)) if ((snr >= 1500) && (packet_error < 0xff))
cnt++;
else
return LG3306_LOCK; return LG3306_LOCK;
}
if (cnt >= 10) {
dbg_info("not locked!\n"); dbg_info("not locked!\n");
return LG3306_UNLOCK; return LG3306_UNLOCK;
}
}
}
return LG3306_UNLOCK;
} }
static enum lgdt3306a_lock_status lgdt3306a_qam_lock_poll(struct lgdt3306a_state *state) static enum lgdt3306a_lock_status lgdt3306a_qam_lock_poll(struct lgdt3306a_state *state)
{ {
u8 cnt = 0; u8 cnt;
u8 packet_error; u8 packet_error;
u32 snr; u32 snr;
while (1) { for (cnt = 0; cnt < 10; cnt++) {
if (lgdt3306a_fec_lock_poll(state) == LG3306_UNLOCK) { if (lgdt3306a_fec_lock_poll(state) == LG3306_UNLOCK) {
dbg_info("no fec lock!\n"); dbg_info("no fec lock!\n");
return LG3306_UNLOCK; return LG3306_UNLOCK;
} else { }
msleep(20); msleep(20);
packet_error = lgdt3306a_get_packet_error(state); packet_error = lgdt3306a_get_packet_error(state);
snr = lgdt3306a_calculate_snr_x100(state); snr = lgdt3306a_calculate_snr_x100(state);
dbg_info("cnt=%d errors=%d snr=%d\n", dbg_info("cnt=%d errors=%d snr=%d\n", cnt, packet_error, snr);
cnt, packet_error, snr);
if ((snr < 1500) || (packet_error >= 0xff)) if ((snr >= 1500) && (packet_error < 0xff))
cnt++;
else
return LG3306_LOCK; return LG3306_LOCK;
}
if (cnt >= 10) {
dbg_info("not locked!\n"); dbg_info("not locked!\n");
return LG3306_UNLOCK; return LG3306_UNLOCK;
}
}
}
return LG3306_UNLOCK;
} }
static int lgdt3306a_read_status(struct dvb_frontend *fe, fe_status_t *status) static int lgdt3306a_read_status(struct dvb_frontend *fe, fe_status_t *status)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment