Support duo4k.
[vuplus_openvuplus_3.0] / meta-bsp / recipes-kernel / linux / linux-vuplus-4.1.45 / linux_4_1_45_dvbs2x.patch
1 diff --git a/drivers/media/dvb-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c
2 index 3ab8747..78c1b24 100644
3 --- a/drivers/media/dvb-core/dvb_frontend.c
4 +++ b/drivers/media/dvb-core/dvb_frontend.c
5 @@ -170,6 +170,7 @@ static enum dvbv3_emulation_type dvbv3_type(u32 delivery_system)
6                 return DVBV3_QAM;
7         case SYS_DVBS:
8         case SYS_DVBS2:
9 +       case SYS_DVBS2X:
10         case SYS_TURBO:
11         case SYS_ISDBS:
12         case SYS_DSS:
13 @@ -1008,6 +1009,7 @@ static int dvb_frontend_check_parameters(struct dvb_frontend *fe)
14         switch (c->delivery_system) {
15         case SYS_DVBS:
16         case SYS_DVBS2:
17 +       case SYS_DVBS2X:
18         case SYS_TURBO:
19         case SYS_DVBC_ANNEX_A:
20         case SYS_DVBC_ANNEX_C:
21 @@ -1074,6 +1076,7 @@ static int dvb_frontend_clear_cache(struct dvb_frontend *fe)
22         switch (c->delivery_system) {
23         case SYS_DVBS:
24         case SYS_DVBS2:
25 +       case SYS_DVBS2X:
26         case SYS_TURBO:
27                 c->modulation = QPSK;   /* implied for DVB-S in legacy API */
28                 c->rolloff = ROLLOFF_35;/* implied for DVB-S */
29 @@ -2200,6 +2203,7 @@ static int dtv_set_frontend(struct dvb_frontend *fe)
30                 rolloff = 135;
31                 break;
32         case SYS_DVBS2:
33 +       case SYS_DVBS2X:
34                 switch (c->rolloff) {
35                 case ROLLOFF_20:
36                         rolloff = 120;
37 @@ -2240,6 +2244,7 @@ static int dtv_set_frontend(struct dvb_frontend *fe)
38                 switch (c->delivery_system) {
39                 case SYS_DVBS:
40                 case SYS_DVBS2:
41 +               case SYS_DVBS2X:
42                 case SYS_ISDBS:
43                 case SYS_TURBO:
44                 case SYS_DVBC_ANNEX_A:
45 diff --git a/include/uapi/linux/dvb/frontend.h b/include/uapi/linux/dvb/frontend.h
46 index c56d77c..5aebaa9 100644
47 --- a/include/uapi/linux/dvb/frontend.h
48 +++ b/include/uapi/linux/dvb/frontend.h
49 @@ -165,6 +165,24 @@ typedef enum fe_code_rate {
50         FEC_3_5,
51         FEC_9_10,
52         FEC_2_5,
53 +       FEC_13_45=13,
54 +       FEC_9_20=14,
55 +       FEC_11_20=15,
56 +       FEC_23_36=16,
57 +       FEC_25_36=17,
58 +       FEC_13_18=18,
59 +       FEC_26_45=19,
60 +       FEC_28_45=20,
61 +       FEC_7_9=21,
62 +       FEC_77_90=22,
63 +       FEC_32_45=23,
64 +       FEC_11_15=24,
65 +       FEC_1_2_L=25,
66 +       FEC_8_15_L=26,
67 +       FEC_3_5_L=27,
68 +       FEC_2_3_L=28,
69 +       FEC_5_9_L=29,
70 +       FEC_26_45_L=30
71  } fe_code_rate_t;
72  
73  
74 @@ -183,6 +201,7 @@ typedef enum fe_modulation {
75         APSK_32,
76         DQPSK,
77         QAM_4_NR,
78 +       APSK_8,
79  } fe_modulation_t;
80  
81  typedef enum fe_transmit_mode {
82 @@ -410,6 +429,7 @@ typedef enum fe_delivery_system {
83         SYS_DVBT2,
84         SYS_TURBO,
85         SYS_DVBC_ANNEX_C,
86 +       SYS_DVBS2X = 21,
87  } fe_delivery_system_t;
88  
89  /* backward compatibility */