|
@@ -668,6 +668,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 rolloff=%d\n",
|
|
@@ -702,10 +703,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;
|
|
@@ -750,7 +754,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",
|
|
@@ -834,10 +838,10 @@ static int tda10071_get_frontend(struct dvb_frontend *fe)
|
|
|
|
|
|
switch ((buf[1] >> 0) & 0x01) {
|
|
|
case 0:
|
|
|
- c->inversion = INVERSION_OFF;
|
|
|
+ c->inversion = INVERSION_ON;
|
|
|
break;
|
|
|
case 1:
|
|
|
- c->inversion = INVERSION_ON;
|
|
|
+ c->inversion = INVERSION_OFF;
|
|
|
break;
|
|
|
}
|
|
|
|
|
@@ -856,7 +860,7 @@ static int tda10071_get_frontend(struct dvb_frontend *fe)
|
|
|
if (ret)
|
|
|
goto error;
|
|
|
|
|
|
- c->symbol_rate = (buf[0] << 16) | (buf[1] << 8) | (buf[2] << 0);
|
|
|
+ c->symbol_rate = ((buf[0] << 16) | (buf[1] << 8) | (buf[2] << 0)) * 1000;
|
|
|
|
|
|
return ret;
|
|
|
error:
|