Browse Source

[media] cx24120: Check for lock before updating BER & UCB

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>
Jemma Denson 10 years ago
parent
commit
e3f2f63e8c
1 changed files with 9 additions and 0 deletions
  1. 9 0
      drivers/media/dvb-frontends/cx24120.c

+ 9 - 0
drivers/media/dvb-frontends/cx24120.c

@@ -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;