--- /dev/null
+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 */