All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] stb0899: fix the limits for signal strength values
@ 2012-01-19 17:39 Klaus Schmidinger
  2012-01-23 19:43 ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 4+ messages in thread
From: Klaus Schmidinger @ 2012-01-19 17:39 UTC (permalink / raw)
  To: linux-media

stb0899_read_signal_strength() adds an offset to the result of the table lookup.
That offset must correspond to the lowest value in the lookup table, to make sure
the result doesn't get below 0, which would mean a "very high" value since the
parameter is unsigned.
'strength' and 'snr' need to be initialized to 0 to make sure they have a
defined result in case there is no "internal->lock".

Signed-off-by: Klaus Schmidinger <Klaus.Schmidinger@tvdr.de>

--- a/linux/drivers/media/dvb/frontends/stb0899_drv.c   2011-06-11 16:54:32.000000000 +0200
+++ b/linux/drivers/media/dvb/frontends/stb0899_drv.c   2011-06-11 16:23:00.000000000 +0200
@@ -67,7 +67,7 @@
   * Crude linear extrapolation below -84.8dBm and above -8.0dBm.
   */
  static const struct stb0899_tab stb0899_dvbsrf_tab[] = {
-       { -950, -128 },
+       { -750, -128 },
         { -748,  -94 },
         { -745,  -92 },
         { -735,  -90 },
@@ -131,7 +131,7 @@
         { -730, 13645 },
         { -750, 13909 },
         { -766, 14153 },
-       { -999, 16383 }
+       { -950, 16383 }
  };

  /* DVB-S2 Es/N0 quant in dB/100 vs read value * 100*/
@@ -964,6 +964,7 @@

         int val;
         u32 reg;
+       *strength = 0;
         switch (state->delsys) {
         case SYS_DVBS:
         case SYS_DSS:
@@ -987,7 +988,7 @@
                         val = STB0899_GETFIELD(IF_AGC_GAIN, reg);

                         *strength = stb0899_table_lookup(stb0899_dvbs2rf_tab, ARRAY_SIZE(stb0899_dvbs2rf_tab) - 1, val);
-                       *strength += 750;
+                       *strength += 950;
                         dprintk(state->verbose, FE_DEBUG, 1, "IF_AGC_GAIN = 0x%04x, C = %d * 0.1 dBm",
                                 val & 0x3fff, *strength);
                 }
@@ -1009,6 +1010,7 @@
         u8 buf[2];
         u32 reg;

+       *snr = 0;
         reg  = stb0899_read_reg(state, STB0899_VSTATUS);
         switch (state->delsys) {
         case SYS_DVBS:

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-01-24 12:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-19 17:39 [PATCH] stb0899: fix the limits for signal strength values Klaus Schmidinger
2012-01-23 19:43 ` Mauro Carvalho Chehab
2012-01-24  9:33   ` [linux-media] " Klaus Schmidinger
2012-01-24 12:16     ` Mauro Carvalho Chehab

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.