Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+24 −36
Original line number Diff line number Diff line
@@ -1461,66 +1461,54 @@ static enum lgdt3306a_lock_status lgdt3306a_vsb_lock_poll(struct lgdt3306a_state
	u8 packet_error;
	u32 snr;

	while (1) {
	for (cnt = 0; cnt < 10; cnt++) {
		if (lgdt3306a_sync_lock_poll(state) == LG3306_UNLOCK) {
			dbg_info("no sync lock!\n");
			return LG3306_UNLOCK;
		} else {
		}

		msleep(20);
		ret = lgdt3306a_pre_monitoring(state);
		if (ret)
				return LG3306_UNLOCK;
			break;

		packet_error = lgdt3306a_get_packet_error(state);
		snr = lgdt3306a_calculate_snr_x100(state);
			dbg_info("cnt=%d errors=%d snr=%d\n",
			       cnt, packet_error, snr);
		dbg_info("cnt=%d errors=%d snr=%d\n", cnt, packet_error, snr);

			if ((snr < 1500) || (packet_error >= 0xff))
				cnt++;
			else
		if ((snr >= 1500) && (packet_error < 0xff))
			return LG3306_LOCK;
	}

			if (cnt >= 10) {
	dbg_info("not locked!\n");
	return LG3306_UNLOCK;
}
		}
	}
	return LG3306_UNLOCK;
}

static enum lgdt3306a_lock_status lgdt3306a_qam_lock_poll(struct lgdt3306a_state *state)
{
	u8 cnt = 0;
	u8 cnt;
	u8 packet_error;
	u32	snr;

	while (1) {
	for (cnt = 0; cnt < 10; cnt++) {
		if (lgdt3306a_fec_lock_poll(state) == LG3306_UNLOCK) {
			dbg_info("no fec lock!\n");
			return LG3306_UNLOCK;
		} else {
		}

		msleep(20);

		packet_error = lgdt3306a_get_packet_error(state);
		snr = lgdt3306a_calculate_snr_x100(state);
			dbg_info("cnt=%d errors=%d snr=%d\n",
			       cnt, packet_error, snr);
		dbg_info("cnt=%d errors=%d snr=%d\n", cnt, packet_error, snr);

			if ((snr < 1500) || (packet_error >= 0xff))
				cnt++;
			else
		if ((snr >= 1500) && (packet_error < 0xff))
			return LG3306_LOCK;
	}

			if (cnt >= 10) {
	dbg_info("not locked!\n");
	return LG3306_UNLOCK;
}
		}
	}
	return LG3306_UNLOCK;
}

static int lgdt3306a_read_status(struct dvb_frontend *fe, fe_status_t *status)
{