Support DVB-S2X for uno4k, ultimo4k, uno4kse.
[vuplus_openvuplus_3.0] / meta-bsp / recipes-kernel / linux-libc-headers / files / linux_3_1x_dvbs2x.patch
diff --git a/meta-bsp/recipes-kernel/linux-libc-headers/files/linux_3_1x_dvbs2x.patch b/meta-bsp/recipes-kernel/linux-libc-headers/files/linux_3_1x_dvbs2x.patch
new file mode 100644 (file)
index 0000000..0933dc6
--- /dev/null
@@ -0,0 +1,81 @@
+diff --git a/drivers/media/dvb-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c
+index 1f925e8..57ed889 100644
+--- a/drivers/media/dvb-core/dvb_frontend.c
++++ b/drivers/media/dvb-core/dvb_frontend.c
+@@ -170,6 +170,7 @@ static enum dvbv3_emulation_type dvbv3_type(u32 delivery_system)
+               return DVBV3_QAM;
+       case SYS_DVBS:
+       case SYS_DVBS2:
++      case SYS_DVBS2X:
+       case SYS_TURBO:
+       case SYS_ISDBS:
+       case SYS_DSS:
+@@ -893,6 +894,7 @@ static int dvb_frontend_check_parameters(struct dvb_frontend *fe)
+       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:
+@@ -959,6 +961,7 @@ static int dvb_frontend_clear_cache(struct dvb_frontend *fe)
+       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 */
+@@ -2102,6 +2105,7 @@ static int dtv_set_frontend(struct dvb_frontend *fe)
+               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
+@@ -165,6 +165,24 @@ typedef enum fe_code_rate {
+       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
+ } fe_code_rate_t;
+@@ -183,6 +201,7 @@ typedef enum fe_modulation {
+       APSK_32,
+       DQPSK,
+       QAM_4_NR,
++      APSK_8,
+ } fe_modulation_t;
+ typedef enum fe_transmit_mode {
+@@ -410,6 +429,7 @@ typedef enum fe_delivery_system {
+       SYS_DVBT2,
+       SYS_TURBO,
+       SYS_DVBC_ANNEX_C,
++      SYS_DVBS2X = 21,
+ } fe_delivery_system_t;
+ /* backward compatibility */