diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-26 17:04:47 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-26 17:04:47 -0800 |
commit | 74ea15d909b31158f9b63190a95b52bc05586d4b (patch) | |
tree | 004badd652ac576dacf5e3c18cc781785eedea9d /drivers/media/dvb/frontends/cxd2820r_core.c | |
parent | c75d5c5d82146636560ad5b91f3544ae60fc1c57 (diff) | |
parent | c79eba92406acc4898adcd1689fc21a6aa91ed0b (diff) |
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
[media] cinergyT2-fe: Fix bandwdith settings
[media] V4L: atmel-isi: add clk_prepare()/clk_unprepare() functions
[media] cxd2820r: sleep on DVB-T/T2 delivery system switch
[media] anysee: fix CI init
[media] cxd2820r: remove unused parameter from cxd2820r_attach
[media] cxd2820r: fix dvb_frontend_ops
Diffstat (limited to 'drivers/media/dvb/frontends/cxd2820r_core.c')
-rw-r--r-- | drivers/media/dvb/frontends/cxd2820r_core.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/drivers/media/dvb/frontends/cxd2820r_core.c b/drivers/media/dvb/frontends/cxd2820r_core.c index caae7f79c837..5c7c2aaf9bf5 100644 --- a/drivers/media/dvb/frontends/cxd2820r_core.c +++ b/drivers/media/dvb/frontends/cxd2820r_core.c @@ -482,10 +482,19 @@ static enum dvbfe_search cxd2820r_search(struct dvb_frontend *fe) /* switch between DVB-T and DVB-T2 when tune fails */ if (priv->last_tune_failed) { - if (priv->delivery_system == SYS_DVBT) + if (priv->delivery_system == SYS_DVBT) { + ret = cxd2820r_sleep_t(fe); + if (ret) + goto error; + c->delivery_system = SYS_DVBT2; - else if (priv->delivery_system == SYS_DVBT2) + } else if (priv->delivery_system == SYS_DVBT2) { + ret = cxd2820r_sleep_t2(fe); + if (ret) + goto error; + c->delivery_system = SYS_DVBT; + } } /* set frontend */ @@ -562,7 +571,7 @@ static const struct dvb_frontend_ops cxd2820r_ops = { .delsys = { SYS_DVBT, SYS_DVBT2, SYS_DVBC_ANNEX_A }, /* default: DVB-T/T2 */ .info = { - .name = "Sony CXD2820R (DVB-T/T2)", + .name = "Sony CXD2820R", .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | @@ -572,7 +581,9 @@ static const struct dvb_frontend_ops cxd2820r_ops = { FE_CAN_FEC_AUTO | FE_CAN_QPSK | FE_CAN_QAM_16 | + FE_CAN_QAM_32 | FE_CAN_QAM_64 | + FE_CAN_QAM_128 | FE_CAN_QAM_256 | FE_CAN_QAM_AUTO | FE_CAN_TRANSMISSION_MODE_AUTO | @@ -602,8 +613,7 @@ static const struct dvb_frontend_ops cxd2820r_ops = { }; struct dvb_frontend *cxd2820r_attach(const struct cxd2820r_config *cfg, - struct i2c_adapter *i2c, - struct dvb_frontend *fe) + struct i2c_adapter *i2c) { struct cxd2820r_priv *priv = NULL; int ret; |