media: si2165: add DVBv3 wrapper for C/N statistics
authorMatthias Schwarzott <zzam@gentoo.org>
Sun, 5 Nov 2017 14:25:09 +0000 (09:25 -0500)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Tue, 12 Dec 2017 10:52:58 +0000 (05:52 -0500)
Add read_snr function that reads from property cache to support DVBv3.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/dvb-frontends/si2165.c

index 1cd2120..ceb5a2b 100644 (file)
@@ -794,6 +794,17 @@ static int si2165_read_status(struct dvb_frontend *fe, enum fe_status *status)
        return 0;
 }
 
+static int si2165_read_snr(struct dvb_frontend *fe, u16 *snr)
+{
+       struct dtv_frontend_properties *c = &fe->dtv_property_cache;
+
+       if (c->cnr.stat[0].scale == FE_SCALE_DECIBEL)
+               *snr = div_s64(c->cnr.stat[0].svalue, 100);
+       else
+               *snr = 0;
+       return 0;
+}
+
 static int si2165_set_oversamp(struct si2165_state *state, u32 dvb_rate)
 {
        u64 oversamp;
@@ -1111,6 +1122,7 @@ static const struct dvb_frontend_ops si2165_ops = {
 
        .set_frontend      = si2165_set_frontend,
        .read_status       = si2165_read_status,
+       .read_snr          = si2165_read_snr,
 };
 
 static int si2165_probe(struct i2c_client *client,