diff options
author | Daniel Scheller <d.scheller@gmx.net> | 2017-04-09 16:38:21 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2017-06-20 09:55:07 -0300 |
commit | e3943aa6d8023bbd0ce972367b8c9eb1b43321e0 (patch) | |
tree | 5fd10bd7f34b14bbf111c8d2532fad16fdcfa58f /drivers/media | |
parent | 763f857e40f3711355f42e666cfdd232390d4e55 (diff) | |
download | op-kernel-dev-e3943aa6d8023bbd0ce972367b8c9eb1b43321e0.zip op-kernel-dev-e3943aa6d8023bbd0ce972367b8c9eb1b43321e0.tar.gz |
[media] dvb-frontends/cxd2841er: make lock wait in set_fe_tc() optional
Don't wait for FE_HAS_LOCK in set_frontend_tc() and thus don't hammer the
lock status register with inquiries when CXD2841ER_NO_WAIT_LOCK is set
in the configuration, which also unneccessarily blocks applications until
a TS LOCK has been acquired. Rather, API and applications will check for
a TS LOCK by utilising the tune fe_op, read_status and get_frontend ops,
which is sufficient.
Signed-off-by: Daniel Scheller <d.scheller@gmx.net>
Acked-by: Abylay Ospan <aospan@netup.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/dvb-frontends/cxd2841er.c | 4 | ||||
-rw-r--r-- | drivers/media/dvb-frontends/cxd2841er.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/media/dvb-frontends/cxd2841er.c b/drivers/media/dvb-frontends/cxd2841er.c index 61f74fe..0522ceb 100644 --- a/drivers/media/dvb-frontends/cxd2841er.c +++ b/drivers/media/dvb-frontends/cxd2841er.c @@ -3460,6 +3460,10 @@ static int cxd2841er_set_frontend_tc(struct dvb_frontend *fe) cxd2841er_tuner_set(fe); cxd2841er_tune_done(priv); + + if (priv->flags & CXD2841ER_NO_WAIT_LOCK) + goto done; + timeout = 2500; while (timeout > 0) { ret = cxd2841er_read_status_tc(fe, &status); diff --git a/drivers/media/dvb-frontends/cxd2841er.h b/drivers/media/dvb-frontends/cxd2841er.h index 061e551..d77b59f 100644 --- a/drivers/media/dvb-frontends/cxd2841er.h +++ b/drivers/media/dvb-frontends/cxd2841er.h @@ -29,6 +29,7 @@ #define CXD2841ER_TS_SERIAL 4 /* bit 2 */ #define CXD2841ER_ASCOT 8 /* bit 3 */ #define CXD2841ER_EARLY_TUNE 16 /* bit 4 */ +#define CXD2841ER_NO_WAIT_LOCK 32 /* bit 5 */ enum cxd2841er_xtal { SONY_XTAL_20500, /* 20.5 MHz */ |