Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] [patch] FE_READ_BER ves1820/ves1893



Hi,

ves1820 has only 20 bits for BER estimation. Actually I do not have
access to ves1893 documentation, but I guess it has only 20 bits, too,
as the ves1993 has.

I think the BER value should be multiplied by 10, because the register
counts 10 ^ -8 bits, since PVBER is set to 1 1.

Regards,
Andreas



diff -u -r1.1 alps_bsrv2.c
--- linux/drivers/media/dvb/frontends/alps_bsrv2.c	16 Oct 2002 16:52:27 -0000	1.1
+++ linux/drivers/media/dvb/frontends/alps_bsrv2.c	23 Oct 2002 23:07:56 -0000
@@ -342,7 +342,7 @@
 
 		*ber = ves1893_readreg (i2c, 0x15);
                 *ber |= (ves1893_readreg (i2c, 0x16) << 8);
-                *ber |= (ves1893_readreg (i2c, 0x17) << 16);
+                *ber |= ((ves1893_readreg (i2c, 0x17) & 0x0F) << 16);
 		*ber *= 10;
 		break;
 	}
diff -u -r1.2 ves1820.c
--- linux/drivers/media/dvb/frontends/ves1820.c	21 Oct 2002 11:06:15 -0000	1.2
+++ linux/drivers/media/dvb/frontends/ves1820.c	23 Oct 2002 23:07:57 -0000
@@ -433,10 +433,9 @@
 	}
 
 	case FE_READ_BER:
-		*((u32*) arg) = ves1820_readreg(frontend->i2c, 0x14) |
+		*((u32*) arg) = (ves1820_readreg(frontend->i2c, 0x14) |
 			        (ves1820_readreg(frontend->i2c, 0x15) << 8) |
-			        (ves1820_readreg(frontend->i2c, 0x16) << 16);
-		/* XXX FIXME: scale!!*/
+			        ((ves1820_readreg(frontend->i2c, 0x16) & 0x0F) << 16)) * 10;
 		break;
 
 	case FE_READ_SIGNAL_STRENGTH:



-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index