|
@@ -1693,13 +1693,56 @@ struct linear_segments {
|
|
|
* This table should be empirically determinated by measuring the signal
|
|
|
* strength generated by a RF generator directly connected into
|
|
|
* a device.
|
|
|
+ * This table was determinated by measuring the signal strength generated
|
|
|
+ * by a DTA-2111 RF generator directly connected into a dib7000p device
|
|
|
+ * (a Hauppauge Nova-TD stick), using a good quality 3 meters length
|
|
|
+ * RC6 cable and good RC6 connectors, connected directly to antenna 1.
|
|
|
+ * As the minimum output power of DTA-2111 is -31dBm, a 16 dBm attenuator
|
|
|
+ * were used, for the lower power values.
|
|
|
+ * The real value can actually be on other devices, or even at the
|
|
|
+ * second antena input, depending on several factors, like if LNA
|
|
|
+ * is enabled or not, if diversity is enabled, type of connectors, etc.
|
|
|
+ * Yet, it is better to use this measure in dB than a random non-linear
|
|
|
+ * percentage value, especially for antenna adjustments.
|
|
|
+ * On my tests, the precision of the measure using this table is about
|
|
|
+ * 0.5 dB, with sounds reasonable enough to adjust antennas.
|
|
|
*/
|
|
|
-/* FIXME: Calibrate the table */
|
|
|
-
|
|
|
-#define DB_OFFSET 0
|
|
|
+#define DB_OFFSET 131000
|
|
|
|
|
|
static struct linear_segments strength_to_db_table[] = {
|
|
|
- { 65535, 65535},
|
|
|
+ { 63630, DB_OFFSET - 20500},
|
|
|
+ { 62273, DB_OFFSET - 21000},
|
|
|
+ { 60162, DB_OFFSET - 22000},
|
|
|
+ { 58730, DB_OFFSET - 23000},
|
|
|
+ { 58294, DB_OFFSET - 24000},
|
|
|
+ { 57778, DB_OFFSET - 25000},
|
|
|
+ { 57320, DB_OFFSET - 26000},
|
|
|
+ { 56779, DB_OFFSET - 27000},
|
|
|
+ { 56293, DB_OFFSET - 28000},
|
|
|
+ { 55724, DB_OFFSET - 29000},
|
|
|
+ { 55145, DB_OFFSET - 30000},
|
|
|
+ { 54680, DB_OFFSET - 31000},
|
|
|
+ { 54293, DB_OFFSET - 32000},
|
|
|
+ { 53813, DB_OFFSET - 33000},
|
|
|
+ { 53427, DB_OFFSET - 34000},
|
|
|
+ { 52981, DB_OFFSET - 35000},
|
|
|
+
|
|
|
+ { 52636, DB_OFFSET - 36000},
|
|
|
+ { 52014, DB_OFFSET - 37000},
|
|
|
+ { 51674, DB_OFFSET - 38000},
|
|
|
+ { 50692, DB_OFFSET - 39000},
|
|
|
+ { 49824, DB_OFFSET - 40000},
|
|
|
+ { 49052, DB_OFFSET - 41000},
|
|
|
+ { 48436, DB_OFFSET - 42000},
|
|
|
+ { 47836, DB_OFFSET - 43000},
|
|
|
+ { 47368, DB_OFFSET - 44000},
|
|
|
+ { 46468, DB_OFFSET - 45000},
|
|
|
+ { 45597, DB_OFFSET - 46000},
|
|
|
+ { 44586, DB_OFFSET - 47000},
|
|
|
+ { 43667, DB_OFFSET - 48000},
|
|
|
+ { 42673, DB_OFFSET - 49000},
|
|
|
+ { 41816, DB_OFFSET - 50000},
|
|
|
+ { 40876, DB_OFFSET - 51000},
|
|
|
{ 0, 0},
|
|
|
};
|
|
|
|
|
@@ -1853,9 +1896,6 @@ static int dib7000p_get_stats(struct dvb_frontend *demod, fe_status_t stat)
|
|
|
ARRAY_SIZE(strength_to_db_table)) - DB_OFFSET;
|
|
|
c->strength.stat[0].svalue = db;
|
|
|
|
|
|
- /* FIXME: Remove this when calibrated to DB */
|
|
|
- c->strength.stat[0].scale = FE_SCALE_COUNTER;
|
|
|
-
|
|
|
/* UCB/BER/CNR measures require lock */
|
|
|
if (!(stat & FE_HAS_LOCK)) {
|
|
|
c->cnr.len = 1;
|