From: Joerg Riechardt <J.Riechardt@gmx.de>
To: linux-media <linux-media@vger.kernel.org>
Subject: [PATCH] stv090x: use lookup tables for carrier/noise ratio
Date: Wed, 18 Sep 2013 01:05:20 +0200 [thread overview]
Message-ID: <5238E030.8040203@gmx.de> (raw)
[-- 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:
next reply other threads:[~2013-09-17 23:05 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-17 23:05 Joerg Riechardt [this message]
2014-11-11 10:28 ` [PATCH] stv090x: use lookup tables for carrier/noise ratio Mauro Carvalho Chehab
2015-08-29 15:02 ` Joerg Riechardt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5238E030.8040203@gmx.de \
--to=j.riechardt@gmx.de \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).