linux-media.vger.kernel.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).