[media] cx24120: Check for lock before updating BER & UCB
authorJemma Denson <jdenson@gmail.com>
Tue, 19 May 2015 20:23:14 +0000 (17:23 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Wed, 20 May 2015 12:03:15 +0000 (09:03 -0300)
BER & UCB aren't available unless we're locked; don't update dvbv5
stats when not locked and mark these counters as unavailable.

Signed-off-by: Jemma Denson <jdenson@gmail.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/dvb-frontends/cx24120.c

index ce784248b3287ab13195eb65bd155b1da9b521e3..dc80e6affeae67ff4c43b3ff98d0cdd00d8875f9 100644 (file)
@@ -663,6 +663,15 @@ static void cx24120_get_stats(struct cx24120_state *state)
                c->cnr.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
        }
 
+       /* BER & UCB require lock */
+       if (!(state->fe_status & FE_HAS_LOCK)) {
+               c->post_bit_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
+               c->post_bit_count.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
+               c->block_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
+               c->block_count.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
+               return;
+       }
+
        /* BER */
        if (time_after(jiffies, state->ber_jiffies_stats)) {
                msecs = (state->berw_usecs + 500) / 1000;