Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev add snr reporting
details: https://anonhg.NetBSD.org/src/rev/80eca8d4fc91
branches: trunk
changeset: 767156:80eca8d4fc91
user: jmcneill <jmcneill%NetBSD.org@localhost>
date: Sun Jul 10 00:47:34 2011 +0000
description:
add snr reporting
diffstat:
sys/dev/i2c/au8522.c | 48 +++++++++++++++++++++---
sys/dev/i2c/au8522mod.h | 7 +++-
sys/dev/i2c/au8522mod_8vsb.h | 35 +++++++++++++++++-
sys/dev/i2c/au8522mod_qam256.h | 69 ++++++++++++++++++++++++++++++++++-
sys/dev/i2c/au8522mod_qam64.h | 82 +++++++++++++++++++++++++++++++++++++++++-
sys/dev/i2c/au8522reg.h | 4 +-
sys/dev/i2c/au8522var.h | 3 +-
sys/dev/usb/auvitek_dtv.c | 10 +++--
8 files changed, 242 insertions(+), 16 deletions(-)
diffs (truncated from 388 to 300 lines):
diff -r ba581696e95e -r 80eca8d4fc91 sys/dev/i2c/au8522.c
--- a/sys/dev/i2c/au8522.c Sun Jul 10 00:03:52 2011 +0000
+++ b/sys/dev/i2c/au8522.c Sun Jul 10 00:47:34 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: au8522.c,v 1.4 2011/07/09 15:00:43 jmcneill Exp $ */
+/* $NetBSD: au8522.c,v 1.5 2011/07/10 00:47:34 jmcneill Exp $ */
/*-
* Copyright (c) 2010 Jared D. McNeill <jmcneill%invisible.ca@localhost>
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: au8522.c,v 1.4 2011/07/09 15:00:43 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: au8522.c,v 1.5 2011/07/10 00:47:34 jmcneill Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -345,9 +345,6 @@
fe_status_t status = 0;
uint8_t val;
- //printf("%s: current_modulation = %d\n", __func__,
- // au->current_modulation);
-
switch (au->current_modulation) {
case VSB_8:
if (au8522_read_1(au, 0x4088, &val))
@@ -379,10 +376,49 @@
status |= FE_HAS_LOCK;
}
- //printf("%s: status = 0x%x\n", __func__, status);
return status;
}
+uint16_t
+au8522_get_snr(struct au8522 *au)
+{
+ const struct au8522_snr_table *snrtab = NULL;
+ uint16_t snrreg;
+ uint8_t val;
+ size_t snrtablen;
+ unsigned int n;
+
+ switch (au->current_modulation) {
+ case VSB_8:
+ snrtab = au8522_snr_8vsb;
+ snrtablen = __arraycount(au8522_snr_8vsb);
+ snrreg = AU8522_REG_SNR_VSB;
+ break;
+ case QAM_64:
+ snrtab = au8522_snr_qam64;
+ snrtablen = __arraycount(au8522_snr_qam64);
+ snrreg = AU8522_REG_SNR_QAM;
+ break;
+ case QAM_256:
+ snrtab = au8522_snr_qam256;
+ snrtablen = __arraycount(au8522_snr_qam256);
+ snrreg = AU8522_REG_SNR_QAM;
+ break;
+ default:
+ return 0;
+ }
+
+ if (au8522_read_1(au, snrreg, &val))
+ return 0;
+
+ for (n = 0; n < snrtablen; n++) {
+ if (val < snrtab[n].val)
+ return snrtab[n].snr;
+ }
+
+ return 0;
+}
+
MODULE(MODULE_CLASS_DRIVER, au8522, NULL);
static int
diff -r ba581696e95e -r 80eca8d4fc91 sys/dev/i2c/au8522mod.h
--- a/sys/dev/i2c/au8522mod.h Sun Jul 10 00:03:52 2011 +0000
+++ b/sys/dev/i2c/au8522mod.h Sun Jul 10 00:47:34 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: au8522mod.h,v 1.1 2011/07/09 15:00:43 jmcneill Exp $ */
+/* $NetBSD: au8522mod.h,v 1.2 2011/07/10 00:47:34 jmcneill Exp $ */
/*-
* Copyright (c) 2011 Jared D. McNeill <jmcneill%invisible.ca@localhost>
@@ -34,6 +34,11 @@
uint8_t val;
};
+struct au8522_snr_table {
+ uint16_t val;
+ uint16_t snr;
+};
+
#include <dev/i2c/au8522mod_8vsb.h>
#include <dev/i2c/au8522mod_qam64.h>
#include <dev/i2c/au8522mod_qam256.h>
diff -r ba581696e95e -r 80eca8d4fc91 sys/dev/i2c/au8522mod_8vsb.h
--- a/sys/dev/i2c/au8522mod_8vsb.h Sun Jul 10 00:03:52 2011 +0000
+++ b/sys/dev/i2c/au8522mod_8vsb.h Sun Jul 10 00:47:34 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: au8522mod_8vsb.h,v 1.1 2011/07/09 15:00:43 jmcneill Exp $ */
+/* $NetBSD: au8522mod_8vsb.h,v 1.2 2011/07/10 00:47:34 jmcneill Exp $ */
/*-
* Copyright (c) 2011 Jared D. McNeill <jmcneill%invisible.ca@localhost>
@@ -55,3 +55,36 @@
{ 0x80a4, 0xe8 },
{ 0x8231, 0x13 },
};
+
+static const struct au8522_snr_table au8522_snr_8vsb[] = {
+ { 0, 270 },
+ { 2, 250 },
+ { 3, 240 },
+ { 5, 230 },
+ { 7, 220 },
+ { 9, 210 },
+ { 12, 200 },
+ { 13, 195 },
+ { 15, 190 },
+ { 17, 185 },
+ { 19, 180 },
+ { 21, 175 },
+ { 24, 170 },
+ { 27, 165 },
+ { 31, 160 },
+ { 32, 158 },
+ { 33, 156 },
+ { 36, 152 },
+ { 37, 150 },
+ { 39, 148 },
+ { 40, 146 },
+ { 41, 144 },
+ { 43, 142 },
+ { 44, 140 },
+ { 48, 135 },
+ { 50, 130 },
+ { 43, 142 },
+ { 53, 125 },
+ { 56, 120 },
+ { 256, 115 },
+};
diff -r ba581696e95e -r 80eca8d4fc91 sys/dev/i2c/au8522mod_qam256.h
--- a/sys/dev/i2c/au8522mod_qam256.h Sun Jul 10 00:03:52 2011 +0000
+++ b/sys/dev/i2c/au8522mod_qam256.h Sun Jul 10 00:47:34 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: au8522mod_qam256.h,v 1.1 2011/07/09 15:00:43 jmcneill Exp $ */
+/* $NetBSD: au8522mod_qam256.h,v 1.2 2011/07/10 00:47:34 jmcneill Exp $ */
/*-
* Copyright (c) 2011 Jared D. McNeill <jmcneill%invisible.ca@localhost>
@@ -100,3 +100,70 @@
{ 0x80a7, 0x40 },
{ 0x8526, 0x01 },
};
+
+static const struct au8522_snr_table au8522_snr_qam256[] = {
+ { 16, 0 },
+ { 17, 400 },
+ { 18, 398 },
+ { 19, 396 },
+ { 20, 394 },
+ { 21, 392 },
+ { 22, 390 },
+ { 23, 388 },
+ { 24, 386 },
+ { 25, 384 },
+ { 26, 382 },
+ { 27, 380 },
+ { 28, 379 },
+ { 29, 378 },
+ { 30, 377 },
+ { 31, 376 },
+ { 32, 375 },
+ { 33, 374 },
+ { 34, 373 },
+ { 35, 372 },
+ { 36, 371 },
+ { 37, 370 },
+ { 38, 362 },
+ { 39, 354 },
+ { 40, 346 },
+ { 41, 338 },
+ { 42, 330 },
+ { 43, 328 },
+ { 44, 326 },
+ { 45, 324 },
+ { 46, 322 },
+ { 47, 320 },
+ { 48, 319 },
+ { 49, 318 },
+ { 50, 317 },
+ { 51, 316 },
+ { 52, 315 },
+ { 53, 314 },
+ { 54, 313 },
+ { 55, 312 },
+ { 56, 311 },
+ { 57, 310 },
+ { 58, 308 },
+ { 59, 306 },
+ { 60, 304 },
+ { 61, 302 },
+ { 62, 300 },
+ { 63, 298 },
+ { 65, 295 },
+ { 68, 294 },
+ { 70, 293 },
+ { 73, 292 },
+ { 76, 291 },
+ { 78, 290 },
+ { 79, 289 },
+ { 81, 288 },
+ { 82, 287 },
+ { 83, 286 },
+ { 84, 285 },
+ { 85, 284 },
+ { 86, 283 },
+ { 88, 282 },
+ { 89, 281 },
+ { 256, 280 },
+};
diff -r ba581696e95e -r 80eca8d4fc91 sys/dev/i2c/au8522mod_qam64.h
--- a/sys/dev/i2c/au8522mod_qam64.h Sun Jul 10 00:03:52 2011 +0000
+++ b/sys/dev/i2c/au8522mod_qam64.h Sun Jul 10 00:47:34 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: au8522mod_qam64.h,v 1.1 2011/07/09 15:00:44 jmcneill Exp $ */
+/* $NetBSD: au8522mod_qam64.h,v 1.2 2011/07/10 00:47:34 jmcneill Exp $ */
/*-
* Copyright (c) 2011 Jared D. McNeill <jmcneill%invisible.ca@localhost>
@@ -100,3 +100,83 @@
{ 0x00a7, 0x40 },
{ 0x0526, 0x01 },
};
+
+static const struct au8522_snr_table au8522_snr_qam64[] = {
+ { 15, 0 },
+ { 16, 290 },
+ { 17, 288 },
+ { 18, 286 },
+ { 19, 284 },
+ { 20, 282 },
+ { 21, 281 },
+ { 22, 279 },
+ { 23, 277 },
+ { 24, 275 },
+ { 25, 273 },
+ { 26, 271 },
+ { 27, 269 },
+ { 28, 268 },
+ { 29, 266 },
+ { 30, 264 },
+ { 31, 262 },
+ { 32, 260 },
+ { 33, 259 },
+ { 34, 258 },
+ { 35, 256 },
+ { 36, 255 },
+ { 37, 254 },
+ { 38, 252 },
+ { 39, 251 },
+ { 40, 250 },
+ { 41, 249 },
+ { 42, 248 },
+ { 43, 246 },
+ { 44, 245 },
+ { 45, 244 },
+ { 46, 242 },
+ { 47, 241 },
+ { 48, 240 },
+ { 50, 239 },
+ { 51, 238 },
+ { 53, 237 },
+ { 54, 236 },
+ { 56, 235 },
+ { 57, 234 },
+ { 59, 233 },
+ { 60, 232 },
+ { 62, 231 },
+ { 63, 230 },
+ { 65, 229 },
+ { 67, 228 },
+ { 68, 227 },
+ { 70, 226 },
+ { 71, 225 },
+ { 73, 224 },
+ { 74, 223 },
+ { 76, 222 },
+ { 78, 221 },
+ { 80, 220 },
+ { 82, 219 },
+ { 85, 218 },
+ { 88, 217 },
+ { 90, 216 },
+ { 92, 215 },
Home |
Main Index |
Thread Index |
Old Index