[linux-dvb] [RFC] add "read_signal_strength" function to dvb_tuner_ops
mkrufky at linuxtv.org
Thu Aug 30 19:05:03 CEST 2007
Michael Krufky wrote:
> struct dvb_frontend_ops contains a function pointer for reading signal
> strength from the demodulator, however, it would also be useful to be
> able to read the signal strength from the tuner, itself.
> As of now, in dvb_tuner_ops, we only have the following function for status:
> int (*get_status)(struct dvb_frontend *fe, u32 *status);
> The usability of this function is rather limited, and currently only
> provides a mechanism for reading a limited amount of bits. The current
> status bits are as follows:
> #define TUNER_STATUS_LOCKED 1
> #define TUNER_STATUS_STEREO 2
> ...this doesn't really lend itself for a useful signal strength reading.
> I can cite two examples of how this would be useful in the current codebase:
> 1) Some demodulators do not directly provide signal strength readings.
> For example, lgdt330x. In order to provide some sort of measurement,
> other values are used to arrive at an estimated reading.
> If we had a read_signal_strength function available from the tuner
> driver, such demodulator drivers that are otherwise unable to provide
> this functionality directly would be able to read the signal strength
> from the tuner driver, and either pass on that value, or use it in its
> calculation of status readings.
> 2) The analog tuner system accesses the tuner modules directly, and
> would benefit greatly from having such functionality available to be
> able to read signal strength from the tuner.
Manu and I spoke about this on irc today, and we decided that it would be better
to name this function, "get_rf_strength" ... So, the change would be as follows:
@@ -92,6 +92,7 @@
#define TUNER_STATUS_LOCKED 1
#define TUNER_STATUS_STEREO 2
int (*get_status)(struct dvb_frontend *fe, u32 *status);
+ int (*get_rf_strength)(struct dvb_frontend *fe, u16 *strength);
/** These are provided seperately from set_params in order to facilitate silicon
* tuners which require sophisticated tuning loops, controlling each
parameter seperately. */
This is a rather trivial addition, so I doubt there will be any debate on this
matter. I plan to move forward with this tonight, unless anybody is opposed.
Any acks would still be appreciated, of course :-)
More information about the linux-dvb