From 08e377cb2bf20bb08f25118b0066be3bd869b704 Mon Sep 17 00:00:00 2001
From: vanhofen <vanhofen@gmx.de>
Date: Tue, 31 Dec 2019 00:28:24 +0100
Subject: [PATCH] - hd51 series: add dvbs2x.patch

---
 make/linux-kernel.mk                      |  1 +
 patches/kernel/gfutures/4_10_dvbs2x.patch | 89 +++++++++++++++++++++++
 2 files changed, 90 insertions(+)
 create mode 100644 patches/kernel/gfutures/4_10_dvbs2x.patch

diff --git a/make/linux-kernel.mk b/make/linux-kernel.mk
index 11d47fc3..c9463de0 100644
--- a/make/linux-kernel.mk
+++ b/make/linux-kernel.mk
@@ -16,6 +16,7 @@ GFUTURES_4_10_PATCH = \
 	gfutures/4_10_add-more-devices-rtl8xxxu.patch \
 	gfutures/4_10_bitsperlong.patch \
 	gfutures/4_10_blacklist_mmc0.patch \
+	gfutures/4_10_dvbs2x.patch \
 	gfutures/4_10_reserve_dvb_adapter_0.patch \
 	gfutures/4_10_t230c2.patch
 
diff --git a/patches/kernel/gfutures/4_10_dvbs2x.patch b/patches/kernel/gfutures/4_10_dvbs2x.patch
new file mode 100644
index 00000000..6c9d303d
--- /dev/null
+++ b/patches/kernel/gfutures/4_10_dvbs2x.patch
@@ -0,0 +1,89 @@
+diff --git a/drivers/media/dvb-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c
+index 3ab8747..78c1b24 100644
+--- a/drivers/media/dvb-core/dvb_frontend.c
++++ b/drivers/media/dvb-core/dvb_frontend.c
+@@ -202,6 +202,7 @@
+ 		return DVBV3_QAM;
+ 	case SYS_DVBS:
+ 	case SYS_DVBS2:
++	case SYS_DVBS2X:
+ 	case SYS_TURBO:
+ 	case SYS_ISDBS:
+ 	case SYS_DSS:
+@@ -907,6 +908,7 @@
+ 	switch (c->delivery_system) {
+ 	case SYS_DVBS:
+ 	case SYS_DVBS2:
++	case SYS_DVBS2X:
+ 	case SYS_TURBO:
+ 	case SYS_DVBC_ANNEX_A:
+ 	case SYS_DVBC_ANNEX_C:
+@@ -973,6 +975,7 @@
+ 	switch (c->delivery_system) {
+ 	case SYS_DVBS:
+ 	case SYS_DVBS2:
++	case SYS_DVBS2X:
+ 	case SYS_TURBO:
+ 		c->modulation = QPSK;   /* implied for DVB-S in legacy API */
+ 		c->rolloff = ROLLOFF_35;/* implied for DVB-S */
+@@ -2091,6 +2094,7 @@
+ 		rolloff = 135;
+ 		break;
+ 	case SYS_DVBS2:
++	case SYS_DVBS2X:
+ 		switch (c->rolloff) {
+ 		case ROLLOFF_20:
+ 			rolloff = 120;
+@@ -2131,6 +2135,7 @@
+ 		switch (c->delivery_system) {
+ 		case SYS_DVBS:
+ 		case SYS_DVBS2:
++		case SYS_DVBS2X:
+ 		case SYS_ISDBS:
+ 		case SYS_TURBO:
+ 		case SYS_DVBC_ANNEX_A:
+diff --git a/include/uapi/linux/dvb/frontend.h b/include/uapi/linux/dvb/frontend.h
+index c56d77c..5aebaa9 100644
+--- a/include/uapi/linux/dvb/frontend.h
++++ b/include/uapi/linux/dvb/frontend.h
+@@ -156,6 +156,24 @@
+ 	FEC_3_5,
+ 	FEC_9_10,
+ 	FEC_2_5,
++	FEC_13_45=13,
++	FEC_9_20=14,
++	FEC_11_20=15,
++	FEC_23_36=16,
++	FEC_25_36=17,
++	FEC_13_18=18,
++	FEC_26_45=19,
++	FEC_28_45=20,
++	FEC_7_9=21,
++	FEC_77_90=22,
++	FEC_32_45=23,
++	FEC_11_15=24,
++	FEC_1_2_L=25,
++	FEC_8_15_L=26,
++	FEC_3_5_L=27,
++	FEC_2_3_L=28,
++	FEC_5_9_L=29,
++	FEC_26_45_L=30
+ };
+ 
+ enum fe_modulation {
+@@ -173,6 +191,7 @@
+ 	APSK_32,
+ 	DQPSK,
+ 	QAM_4_NR,
++	APSK_8,
+ };
+ 
+ enum fe_transmit_mode {
+@@ -342,6 +361,7 @@
+ 	SYS_DVBT2,
+ 	SYS_TURBO,
+ 	SYS_DVBC_ANNEX_C,
++	SYS_DVBS2X = 21,
+ };
+ 
+ /* backward compatibility */