media: dvb-frontends/stv0367: DDB frontend status inquiry fixup
authorDaniel Scheller <d.scheller@gmx.net>
Sun, 9 Jul 2017 16:36:45 +0000 (12:36 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Thu, 20 Jul 2017 18:06:56 +0000 (14:06 -0400)
Return 0 instead of -EINVAL in get_frontend if no demod mode is active.
This fixes ie. dvb-fe-tool getting confused and assuming a DVBv3 FE on idle
frontends when the FE has been put to sleep using sleep().

Also, in read_status(), don't immediately return when no demod is active,
so the remaining code has a chance to clear the signal statistics.

Signed-off-by: Daniel Scheller <d.scheller@gmx.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/dvb-frontends/stv0367.c

index 8ac0f598978dacb8ed441bf6cc816a8b6bd5a463..59c1aad256c2f6e71dc2ff11f101bed9be8bdbda 100644 (file)
@@ -3090,7 +3090,7 @@ static int stv0367ddb_read_status(struct dvb_frontend *fe,
 {
        struct stv0367_state *state = fe->demodulator_priv;
        struct dtv_frontend_properties *p = &fe->dtv_property_cache;
-       int ret;
+       int ret = 0;
 
        switch (state->activedemod) {
        case demod_ter:
@@ -3100,7 +3100,7 @@ static int stv0367ddb_read_status(struct dvb_frontend *fe,
                ret = stv0367cab_read_status(fe, status);
                break;
        default:
-               return 0;
+               break;
        }
 
        /* stop and report on *_read_status failure */
@@ -3138,7 +3138,7 @@ static int stv0367ddb_get_frontend(struct dvb_frontend *fe,
                break;
        }
 
-       return -EINVAL;
+       return 0;
 }
 
 static int stv0367ddb_sleep(struct dvb_frontend *fe)