aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/media/dvb-frontends/stv0367.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@s-opensource.com>2017-06-25 08:26:43 -0300
committerMauro Carvalho Chehab <mchehab@s-opensource.com>2017-06-25 10:48:45 -0300
commit430e29d9c0f65d9653a0b7f7a56f1c6cd374b84b (patch)
tree615778d380a194c08db7ecbd69c01e4a7c5da8cd /drivers/media/dvb-frontends/stv0367.c
parentmedia: dvb-frontends/stv0367: DVB-C signal strength statistics (diff)
downloadwireguard-linux-430e29d9c0f65d9653a0b7f7a56f1c6cd374b84b.tar.xz
wireguard-linux-430e29d9c0f65d9653a0b7f7a56f1c6cd374b84b.zip
media: dvb-frontends/stv0367: Improve DVB-C/T frontend status
The stv0367 driver provide a lot of status on its state machine. Change the logic to provide more information about frontend locking status. Also, while any detailed status isn't available, provide a more complete FE_STATUS for DVB-T. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> Signed-off-by: Daniel Scheller <d.scheller@gmx.net>
Diffstat (limited to 'drivers/media/dvb-frontends/stv0367.c')
-rw-r--r--drivers/media/dvb-frontends/stv0367.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/media/dvb-frontends/stv0367.c b/drivers/media/dvb-frontends/stv0367.c
index fab94341c22b..8ac0f598978d 100644
--- a/drivers/media/dvb-frontends/stv0367.c
+++ b/drivers/media/dvb-frontends/stv0367.c
@@ -1509,7 +1509,8 @@ static int stv0367ter_read_status(struct dvb_frontend *fe,
*status = 0;
if (stv0367_readbits(state, F367TER_LK)) {
- *status |= FE_HAS_LOCK;
+ *status = FE_HAS_SIGNAL | FE_HAS_CARRIER | FE_HAS_VITERBI
+ | FE_HAS_SYNC | FE_HAS_LOCK;
dprintk("%s: stv0367 has locked\n", __func__);
}
@@ -2157,6 +2158,18 @@ static int stv0367cab_read_status(struct dvb_frontend *fe,
*status = 0;
+ if (state->cab_state->state > FE_CAB_NOSIGNAL)
+ *status |= FE_HAS_SIGNAL;
+
+ if (state->cab_state->state > FE_CAB_NOCARRIER)
+ *status |= FE_HAS_CARRIER;
+
+ if (state->cab_state->state >= FE_CAB_DEMODOK)
+ *status |= FE_HAS_VITERBI;
+
+ if (state->cab_state->state >= FE_CAB_DATAOK)
+ *status |= FE_HAS_SYNC;
+
if (stv0367_readbits(state, (state->cab_state->qamfec_status_reg ?
state->cab_state->qamfec_status_reg : F367CAB_QAMFEC_LOCK))) {
*status |= FE_HAS_LOCK;