[media] DVB: gp8psk-fe: use SYS_TURBO
authorAndreas Oberritter <obi@linuxtv.org>
Mon, 8 Aug 2011 14:54:37 +0000 (11:54 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 3 Sep 2011 21:07:20 +0000 (18:07 -0300)
Signed-off-by: Andreas Oberritter <obi@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/dvb-usb/gp8psk-fe.c

index 60d11e57e7d0fc5ee7b132c25eb45e02ef2679fb..5426267980c7567af09ed9646e58533e76e8df12 100644 (file)
@@ -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;