media: tda10071: force modulation to QPSK on DVB-S
commit db4175ae20
upstream.
Only supported modulation for DVB-S is QPSK. Modulation parameter
contains invalid value for DVB-S on some cases, which leads driver
refusing tuning attempt. Due to that, hard code modulation to QPSK
in case of DVB-S.
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
282cb9a232
commit
2bd7b4309a
|
@ -667,6 +667,7 @@ static int tda10071_set_frontend(struct dvb_frontend *fe)
|
|||
struct dtv_frontend_properties *c = &fe->dtv_property_cache;
|
||||
int ret, i;
|
||||
u8 mode, rolloff, pilot, inversion, div;
|
||||
fe_modulation_t modulation;
|
||||
|
||||
dev_dbg(&priv->i2c->dev, "%s: delivery_system=%d modulation=%d " \
|
||||
"frequency=%d symbol_rate=%d inversion=%d pilot=%d " \
|
||||
|
@ -701,10 +702,13 @@ static int tda10071_set_frontend(struct dvb_frontend *fe)
|
|||
|
||||
switch (c->delivery_system) {
|
||||
case SYS_DVBS:
|
||||
modulation = QPSK;
|
||||
rolloff = 0;
|
||||
pilot = 2;
|
||||
break;
|
||||
case SYS_DVBS2:
|
||||
modulation = c->modulation;
|
||||
|
||||
switch (c->rolloff) {
|
||||
case ROLLOFF_20:
|
||||
rolloff = 2;
|
||||
|
@ -749,7 +753,7 @@ static int tda10071_set_frontend(struct dvb_frontend *fe)
|
|||
|
||||
for (i = 0, mode = 0xff; i < ARRAY_SIZE(TDA10071_MODCOD); i++) {
|
||||
if (c->delivery_system == TDA10071_MODCOD[i].delivery_system &&
|
||||
c->modulation == TDA10071_MODCOD[i].modulation &&
|
||||
modulation == TDA10071_MODCOD[i].modulation &&
|
||||
c->fec_inner == TDA10071_MODCOD[i].fec) {
|
||||
mode = TDA10071_MODCOD[i].val;
|
||||
dev_dbg(&priv->i2c->dev, "%s: mode found=%02x\n",
|
||||
|
|
Loading…
Reference in New Issue