It seems that a good number of digital receiver chips are capable of reporting a
meaningful SNR number, but the current drivers don't have a standard for
providing this meaningful data. The current concept is a bigger value is
better than a smaller value, but the values have no meaning and can't be used
to compare performance between cards. To this end, I think that the SNR
reporting as it currently stands generates more confusion that it solves. I
would like to propose the following:
1) That it be encouraged to report SNR in dB whenever possible.
2) That the format of the report be an integer value representing the SNR to
two significant digits. i.e. 32.15dB would be reported as 3215.
3) For cards that don't provide signal strength directly (read from a
register), the strength be calculated from the SNR by mapping 30dB SNR to full
scale signal.
I have seen several frontends make attempts at this:
lgdt330x has some #if 0 code that attepts the SNR calculation
or51211 and or51132 have some "broken" code that attempts this as well.
If it is agreed upon, I would like to do the following:
1) Move the integer log functions from the or51* modules into a module called
ilog10
2) Fix the functions to work properly
3) Change the lgdt330x, or51211, and or51132 modules to report SNR in this
manner
4) Change the above modules to report signal level based on the SNR with 30dB
SNR = full scale in the report.
Comments?
Rusty