Ticket #2762: dvb-hg-tfec.diff
File dvb-hg-tfec.diff, 3.1 KB (added by , 17 years ago) |
---|
-
linux/drivers/media/dvb/dvb-usb/gp8psk-fe.c
old new 41 41 return 0; 42 42 } 43 43 44 static int gp8psk_set_standard(struct dvb_frontend* fe, u32 type) 45 { 46 (void) fe; 47 if (type == FE_DVB_S2 || type == FE_DVB_S) { 48 fe->ops.info.type = type; 49 return 0; 50 } else { 51 fe->ops.info.type = FE_QPSK; 52 return 1; 53 } 54 } 44 55 /* not supported by this Frontend */ 45 56 static int gp8psk_fe_read_ber(struct dvb_frontend* fe, u32 *ber) 46 57 { … … 90 101 return 0; 91 102 } 92 103 93 static int gp8psk_fe_set_frontend (struct dvb_frontend* fe,94 struct dvb_frontend_parameters *fep)104 static int gp8psk_fe_set_frontend2(struct dvb_frontend* fe, 105 struct dvb_frontend_parameters_new *fep) 95 106 { 96 107 struct gp8psk_fe_state *state = fe->demodulator_priv; 97 108 u8 cmd[10]; … … 103 114 cmd[7] = (freq >> 24) & 0xff; 104 115 105 116 switch(fe->ops.info.type) { 117 case FE_DVB_S: 106 118 case FE_QPSK: 107 119 cmd[0] = fep->u.qpsk.symbol_rate & 0xff; 108 120 cmd[1] = (fep->u.qpsk.symbol_rate >> 8) & 0xff; … … 111 123 cmd[8] = ADV_MOD_DVB_QPSK; 112 124 cmd[9] = 0x03; /*ADV_MOD_FEC_XXX*/ 113 125 break; 126 case FE_DVB_S2: 127 cmd[0] = fep->u.qpsk2.symbol_rate & 0xff; 128 cmd[1] = (fep->u.qpsk2.symbol_rate >> 8) & 0xff; 129 cmd[2] = (fep->u.qpsk2.symbol_rate >> 16) & 0xff; 130 cmd[3] = (fep->u.qpsk2.symbol_rate >> 24) & 0xff; 131 if (fep->u.qpsk2.modulation == MOD_8PSK) 132 cmd[8] = ADV_MOD_TURBO_8PSK; 133 else 134 cmd[8] = ADV_MOD_DVB_QPSK; 135 cmd[9] = 0x03; /*ADV_MOD_FEC_XXX*/ 136 break; 114 137 default: 115 138 // other modes are unsuported right now 116 139 cmd[0] = 0; … … 129 152 return 0; 130 153 } 131 154 155 static int gp8psk_fe_set_frontend(struct dvb_frontend* fe, 156 struct dvb_frontend_parameters *fep) 157 { 158 return gp8psk_fe_set_frontend2(fe, 159 (struct dvb_frontend_parameters_new *) fep); 160 } 161 162 132 163 static int gp8psk_fe_get_frontend(struct dvb_frontend* fe, 133 164 struct dvb_frontend_parameters *fep) 134 165 { … … 246 277 .caps = FE_CAN_INVERSION_AUTO | 247 278 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 248 279 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | 249 FE_CAN_QPSK 280 FE_CAN_QPSK | FE_HAS_EXTENDED_INFO 281 }, 282 .extended_info = { 283 .fecs = FEC_1_2 | FEC_2_3 | FEC_3_4 | FEC_5_6 | 284 FEC_7_8 | FEC_AUTO, 285 .modulations = MOD_QPSK | MOD_BPSK | MOD_8PSK, 286 .standards = FE_DVB_S | FE_DVB_S2 250 287 }, 288 .set_standard = gp8psk_set_standard, 251 289 252 290 .release = gp8psk_fe_release, 253 291 … … 256 294 257 295 .set_frontend = gp8psk_fe_set_frontend, 258 296 .get_frontend = gp8psk_fe_get_frontend, 297 298 .set_frontend2 = gp8psk_fe_set_frontend2, 299 .get_frontend2 = NULL, 300 259 301 .get_tune_settings = gp8psk_fe_get_tune_settings, 260 302 261 303 .read_status = gp8psk_fe_read_status,