linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] stv090x: use lookup tables for carrier/noise ratio
@ 2013-09-17 23:05 Joerg Riechardt
  2014-11-11 10:28 ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 3+ messages in thread
From: Joerg Riechardt @ 2013-09-17 23:05 UTC (permalink / raw)
  To: linux-media

[-- Attachment #1: Type: text/plain, Size: 810 bytes --]

The stv090x driver uses the lookup table for signal strength already, 
with this patch we use the lookup tables for carrier/noise ratio as well.
This has the advantage, that values for DVB-S and DVB-S2 are now 
corresponding, while before they were way off. The values are now 
proportional to real carrier/noise ratio, while before they were 
corresponding to register values. So now applications are able to give 
the user real carrier/noise ratio.

Because the output has to be within 0x0000...0xFFFF the three negative 
values for DVB-S2 are omitted. This is no significant loss, because 
reception is lost at 7.5 dB already (TT S2-1600, Cine S2), so the 
negative values are not really important, and also for DVB-S they don´t 
exist.

Signed-off-by: Joerg Riechardt <j.riechardt@gmx.de>

Regards,
Joerg


[-- Attachment #2: stv090x.c.diff --]
[-- Type: text/plain, Size: 1294 bytes --]

--- stv090x.c.bak	2013-09-06 20:59:01.132365872 +0200
+++ stv090x.c	2013-09-10 03:21:48.884115191 +0200
@@ -173,9 +173,9 @@
 
 /* DVBS2 C/N Lookup table */
 static const struct stv090x_tab stv090x_s2cn_tab[] = {
-	{ -30, 13348 }, /* -3.0dB */
-	{ -20, 12640 }, /* -2d.0B */
-	{ -10, 11883 }, /* -1.0dB */
+//	{ -30, 13348 }, /* -3.0dB */
+//	{ -20, 12640 }, /* -2d.0B */
+//	{ -10, 11883 }, /* -1.0dB */
 	{   0, 11101 }, /* -0.0dB */
 	{   5, 10718 }, /*  0.5dB */
 	{  10, 10339 }, /*  1.0dB */
@@ -3697,9 +3697,10 @@
 			}
 			val /= 16;
 			last = ARRAY_SIZE(stv090x_s2cn_tab) - 1;
-			div = stv090x_s2cn_tab[0].read -
-			      stv090x_s2cn_tab[last].read;
-			*cnr = 0xFFFF - ((val * 0xFFFF) / div);
+			div = stv090x_s2cn_tab[last].real -
+			      stv090x_s2cn_tab[0].real;
+			val = stv090x_table_lookup(stv090x_s2cn_tab, last, val);
+			*cnr = val * 0xFFFF / div;
 		}
 		break;
 
@@ -3719,9 +3720,10 @@
 			}
 			val /= 16;
 			last = ARRAY_SIZE(stv090x_s1cn_tab) - 1;
-			div = stv090x_s1cn_tab[0].read -
-			      stv090x_s1cn_tab[last].read;
-			*cnr = 0xFFFF - ((val * 0xFFFF) / div);
+			div = stv090x_s1cn_tab[last].real -
+			      stv090x_s1cn_tab[0].real;
+			val = stv090x_table_lookup(stv090x_s1cn_tab, last, val);
+			*cnr = val * 0xFFFF / div;
 		}
 		break;
 	default:

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

end of thread, other threads:[~2015-08-29 15:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-17 23:05 [PATCH] stv090x: use lookup tables for carrier/noise ratio Joerg Riechardt
2014-11-11 10:28 ` Mauro Carvalho Chehab
2015-08-29 15:02   ` Joerg Riechardt

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).