[media] lbdt3306a: simplify the lock status check
authorMauro Carvalho Chehab <mchehab@osg.samsung.com>
Tue, 28 Oct 2014 14:00:48 +0000 (12:00 -0200)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Tue, 3 Mar 2015 13:34:13 +0000 (10:34 -0300)
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: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/dvb-frontends/lgdt3306a.c

index 85fc9c63e3ca29ac4b10e39b8483b80aff6725f9..0356810da444be5ce4ce40dfabc8b4b74fcfb031 100644 (file)
@@ -1461,64 +1461,52 @@ 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;
+               }
 
-                       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);
+               msleep(20);
+               ret = lgdt3306a_pre_monitoring(state);
+               if (ret)
+                       break;
 
-                       if ((snr < 1500) || (packet_error >= 0xff))
-                               cnt++;
-                       else
-                               return LG3306_LOCK;
+               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);
 
-                       if (cnt >= 10) {
-                               dbg_info("not locked!\n");
-                               return LG3306_UNLOCK;
-                       }
-               }
+               if ((snr >= 1500) && (packet_error < 0xff))
+                       return LG3306_LOCK;
        }
+
+       dbg_info("not locked!\n");
        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);
+               msleep(20);
 
-                       if ((snr < 1500) || (packet_error >= 0xff))
-                               cnt++;
-                       else
-                               return LG3306_LOCK;
+               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);
 
-                       if (cnt >= 10) {
-                               dbg_info("not locked!\n");
-                               return LG3306_UNLOCK;
-                       }
-               }
+               if ((snr >= 1500) && (packet_error < 0xff))
+                       return LG3306_LOCK;
        }
+
+       dbg_info("not locked!\n");
        return LG3306_UNLOCK;
 }