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 <[email protected]> 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 <[email protected]>
---
  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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to