On 03/02/15 19:31, Malcolm Priestley wrote:
On 03/02/15 19:19, Mauro Carvalho Chehab wrote:
Em Fri, 2 Jan 2015 13:56:31 +0000
Malcolm Priestley <tvboxspy@xxxxxxxxx> escreveu:
This allows calling the original functions providing the streaming is
off.
Malcolm,
I'm applying this patch series, as the driver has already some support
for
the legacy DVBv3 stats, but please port it to use DVBv5.
Hi Mauro,
I am not sure what you mean by this?
Are there any examples?
Sorry, Yes I see how, will do.
Regards
Malcolm
Thanks,
Mauro
Signed-off-by: Malcolm Priestley <tvboxspy@xxxxxxxxx>
---
drivers/media/usb/dvb-usb-v2/lmedm04.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/drivers/media/usb/dvb-usb-v2/lmedm04.c
b/drivers/media/usb/dvb-usb-v2/lmedm04.c
index a9c7fd0..5de6f7c 100644
--- a/drivers/media/usb/dvb-usb-v2/lmedm04.c
+++ b/drivers/media/usb/dvb-usb-v2/lmedm04.c
@@ -145,6 +145,10 @@ struct lme2510_state {
void *usb_buffer;
/* Frontend original calls */
int (*fe_read_status)(struct dvb_frontend *, fe_status_t *);
+ int (*fe_read_signal_strength)(struct dvb_frontend *, u16 *);
+ int (*fe_read_snr)(struct dvb_frontend *, u16 *);
+ int (*fe_read_ber)(struct dvb_frontend *, u32 *);
+ int (*fe_read_ucblocks)(struct dvb_frontend *, u32 *);
int (*fe_set_voltage)(struct dvb_frontend *, fe_sec_voltage_t);
u8 dvb_usb_lme2510_firmware;
};
@@ -877,6 +881,9 @@ static int dm04_read_signal_strength(struct
dvb_frontend *fe, u16 *strength)
{
struct lme2510_state *st = fe_to_priv(fe);
+ if (st->fe_read_signal_strength && !st->stream_on)
+ return st->fe_read_signal_strength(fe, strength);
+
switch (st->tuner_config) {
case TUNER_LG:
*strength = 0xff - st->signal_level;
@@ -898,6 +905,9 @@ static int dm04_read_snr(struct dvb_frontend *fe,
u16 *snr)
{
struct lme2510_state *st = fe_to_priv(fe);
+ if (st->fe_read_snr && !st->stream_on)
+ return st->fe_read_snr(fe, snr);
+
switch (st->tuner_config) {
case TUNER_LG:
*snr = 0xff - st->signal_sn;
@@ -917,6 +927,11 @@ static int dm04_read_snr(struct dvb_frontend
*fe, u16 *snr)
static int dm04_read_ber(struct dvb_frontend *fe, u32 *ber)
{
+ struct lme2510_state *st = fe_to_priv(fe);
+
+ if (st->fe_read_ber && !st->stream_on)
+ return st->fe_read_ber(fe, ber);
+
*ber = 0;
return 0;
@@ -924,6 +939,11 @@ static int dm04_read_ber(struct dvb_frontend
*fe, u32 *ber)
static int dm04_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks)
{
+ struct lme2510_state *st = fe_to_priv(fe);
+
+ if (st->fe_read_ucblocks && !st->stream_on)
+ return st->fe_read_ucblocks(fe, ucblocks);
+
*ucblocks = 0;
return 0;
@@ -1036,6 +1056,10 @@ static int dm04_lme2510_frontend_attach(struct
dvb_usb_adapter *adap)
}
st->fe_read_status = adap->fe[0]->ops.read_status;
+ st->fe_read_signal_strength =
adap->fe[0]->ops.read_signal_strength;
+ st->fe_read_snr = adap->fe[0]->ops.read_snr;
+ st->fe_read_ber = adap->fe[0]->ops.read_ber;
+ st->fe_read_ucblocks = adap->fe[0]->ops.read_ucblocks;
adap->fe[0]->ops.read_status = dm04_read_status;
adap->fe[0]->ops.read_signal_strength = dm04_read_signal_strength;
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html