From: Daniel Scheller <d.scheller@xxxxxxx> This series adds DVBv5 statistics support to the new DDB codepath of the stv0367 demodulator driver. The changes utilise already existing functionality (in form of register readouts), but wraps the reads in separate functions so the existing relative scale reporting can be kept as-is, while adding the v5 stats in dB scale where appropriate. The {ter,cab}_read_status() additionally have been enhanced to provide a more detailed status from the values the logic already provides (at least for DVB-C, DVB-T isn't as detailed, so all flags are set upon lock instead). >From my own testing: Reported values look approx. the same as those reported by the cxd2841er driver for both -C and -T. Testing for v3: The enhanced status works good for DVB-C - signal almost instantly goes to FE_HAS_LOCK with good signal strength with the cabling plugged in. When antenna is pulled, fe_status goes away, cnr goes to unavailable and signal strength to the lowest the driver can provide. Statistics come back after cable is plugged back in. Re DVB-T, unfortunately I cannot do anymore testing with this, since over here in germany DVB-T was replaced by DVB-T2, which the demod cannot handle. Since it worked before and the logic didn't really change, I strongly assume things are still good. Mauro, re your patch (thanks again!), I slightly changed the commit title and description but kept you as the author, added t-b and signoff. Also, thank you for writing up the DVBv5 statistics document/howto, which was very helpful in fixing this! Hope everything's good to go now :-) Changes from v2 to v3: - ucblocks reporting and register read out splitting are already merged, thus not part of the series anymore - enhanced {ter,cab}_read_status(), thank you Mauro for pointing this out and providing the (untested) patch! - always read signal strength, read cnr on FE_HAS_CARRIER, and ucblocks on FE_HAS_LOCK - adjust if-status-logic for ucblock to match the rest Changes from v1 to v2: - INTLOG10X100() macro for QAM SNR calculation removed and replaced by directly utilising intlog2 plus a div - factored statistics collection into *_read_status() - prevent a possible division by zero (though requires ridiculously good SNR to trigger) - _read_status() doesn't return -EINVAL anymore if no demod state is set, prevents falsely reported errors from inquiries of userspace tools Daniel Scheller (3): [media] dvb-frontends/stv0367: SNR DVBv5 statistics for DVB-C and T [media] dvb-frontends/stv0367: DVB-C signal strength statistics [media] dvb-frontends/stv0367: make UCB readout logic more clear Mauro Carvalho Chehab (1): [media] dvb-frontends/stv0367: Improve DVB-C/T frontend status drivers/media/dvb-frontends/stv0367.c | 85 ++++++++++++++++++++++++++++++++--- 1 file changed, 78 insertions(+), 7 deletions(-) -- 2.13.0