- default:
- case eDVBFrontendParametersSatellite::FEC::fNone:
- eDebug("no fec set.. assume auto");
- case eDVBFrontendParametersSatellite::FEC::fAuto:
- parm_u_qpsk_fec_inner = FEC_AUTO;
- break;
- case eDVBFrontendParametersSatellite::FEC::f1_2:
- parm_u_qpsk_fec_inner = FEC_1_2;
- break;
- case eDVBFrontendParametersSatellite::FEC::f2_3:
- parm_u_qpsk_fec_inner = FEC_2_3;
- break;
- case eDVBFrontendParametersSatellite::FEC::f3_4:
- parm_u_qpsk_fec_inner = FEC_3_4;
- break;
- case eDVBFrontendParametersSatellite::FEC::f5_6:
- parm_u_qpsk_fec_inner = FEC_5_6;
- break;
- case eDVBFrontendParametersSatellite::FEC::f7_8:
- parm_u_qpsk_fec_inner = FEC_7_8;
- break;
+ switch (feparm.fec)
+ {
+ case eDVBFrontendParametersSatellite::FEC::f1_2:
+ parm_u_qpsk_fec_inner = FEC_S2_QPSK_1_2;
+ break;
+ case eDVBFrontendParametersSatellite::FEC::f2_3:
+ parm_u_qpsk_fec_inner = FEC_S2_QPSK_2_3;
+ break;
+ case eDVBFrontendParametersSatellite::FEC::f3_4:
+ parm_u_qpsk_fec_inner = FEC_S2_QPSK_3_4;
+ break;
+ case eDVBFrontendParametersSatellite::FEC::f3_5:
+ parm_u_qpsk_fec_inner = FEC_S2_QPSK_3_5;
+ break;
+ case eDVBFrontendParametersSatellite::FEC::f4_5:
+ parm_u_qpsk_fec_inner = FEC_S2_QPSK_4_5;
+ break;
+ case eDVBFrontendParametersSatellite::FEC::f5_6:
+ parm_u_qpsk_fec_inner = FEC_S2_QPSK_5_6;
+ break;
+ case eDVBFrontendParametersSatellite::FEC::f7_8:
+ parm_u_qpsk_fec_inner = FEC_S2_QPSK_7_8;
+ break;
+ case eDVBFrontendParametersSatellite::FEC::f8_9:
+ parm_u_qpsk_fec_inner = FEC_S2_QPSK_8_9;
+ break;
+ case eDVBFrontendParametersSatellite::FEC::f9_10:
+ parm_u_qpsk_fec_inner = FEC_S2_QPSK_9_10;
+ break;
+ default:
+ eDebug("no valid fec for DVB-S2 set.. abort !!");
+ return -EINVAL;
+ }
+ if (feparm.modulation == eDVBFrontendParametersSatellite::Modulation::M8PSK)
+ parm_u_qpsk_fec_inner = (fe_code_rate_t)((int)parm_u_qpsk_fec_inner+9);
+ // 8PSK fec driver values are decimal 9 bigger
+ }
+#endif
+ // FIXME !!! get frequency range from tuner
+ if ( parm_frequency < 900000 || parm_frequency > 2200000 )
+ {
+ eDebug("%d mhz out of tuner range.. dont tune", parm_frequency/1000);
+ return -EINVAL;