|
@@ -144,19 +144,25 @@ static int gp8psk_fe_set_frontend(struct dvb_frontend* fe,
|
|
|
cmd[6] = (freq >> 16) & 0xff;
|
|
|
cmd[7] = (freq >> 24) & 0xff;
|
|
|
|
|
|
+ /* backwards compatibility: DVB-S + 8-PSK were used for Turbo-FEC */
|
|
|
+ if (c->delivery_system == SYS_DVBS && c->modulation == PSK_8)
|
|
|
+ c->delivery_system = SYS_TURBO;
|
|
|
+
|
|
|
switch (c->delivery_system) {
|
|
|
case SYS_DVBS:
|
|
|
- /* Allow QPSK and 8PSK (even for DVB-S) */
|
|
|
- if (c->modulation != QPSK && c->modulation != PSK_8) {
|
|
|
+ if (c->modulation != QPSK) {
|
|
|
deb_fe("%s: unsupported modulation selected (%d)\n",
|
|
|
__func__, c->modulation);
|
|
|
return -EOPNOTSUPP;
|
|
|
}
|
|
|
c->fec_inner = FEC_AUTO;
|
|
|
break;
|
|
|
- case SYS_DVBS2:
|
|
|
+ case SYS_DVBS2: /* kept for backwards compatibility */
|
|
|
deb_fe("%s: DVB-S2 delivery system selected\n", __func__);
|
|
|
break;
|
|
|
+ case SYS_TURBO:
|
|
|
+ deb_fe("%s: Turbo-FEC delivery system selected\n", __func__);
|
|
|
+ break;
|
|
|
|
|
|
default:
|
|
|
deb_fe("%s: unsupported delivery system selected (%d)\n",
|
|
@@ -189,7 +195,10 @@ static int gp8psk_fe_set_frontend(struct dvb_frontend* fe,
|
|
|
default:
|
|
|
cmd[9] = 5; break;
|
|
|
}
|
|
|
- cmd[8] = ADV_MOD_DVB_QPSK;
|
|
|
+ if (c->delivery_system == SYS_TURBO)
|
|
|
+ cmd[8] = ADV_MOD_TURBO_QPSK;
|
|
|
+ else
|
|
|
+ cmd[8] = ADV_MOD_DVB_QPSK;
|
|
|
break;
|
|
|
case PSK_8: /* PSK_8 is for compatibility with DN */
|
|
|
cmd[8] = ADV_MOD_TURBO_8PSK;
|