瀏覽代碼

[media] DVB: gp8psk-fe: use SYS_TURBO

Signed-off-by: Andreas Oberritter <obi@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Andreas Oberritter 14 年之前
父節點
當前提交
8fc74fdb0f
共有 1 個文件被更改,包括 13 次插入4 次删除
  1. 13 4
      drivers/media/dvb/dvb-usb/gp8psk-fe.c

+ 13 - 4
drivers/media/dvb/dvb-usb/gp8psk-fe.c

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