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:
--- v4l-dvb.orig/linux/drivers/media/dvb/dvb-core/dvb_frontend.h
+++ v4l-dvb/linux/drivers/media/dvb/dvb-core/dvb_frontend.h
@@ -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 :-)
Regards,
Mike Krufky
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb