rendered paste bodyint dvbfe_sec_set(struct dvbfe_handle *fe,
struct dvbfe_sec_config *sec_config,
struct dvbfe_parameters *params,
int timeout)
{
int tmp;
struct dvbfe_parameters localparams;
struct dvbfe_parameters *topass;
// perform SEC
switch(sec_config->type) {
case DVBFE_SEC_CONFIG_NONE:
break;
case DVBFE_SEC_CONFIG_SIMPLE:
if ((tmp = dvbfe_sec_std_sequence(fe,
sec_config->sec.simple.lo_hi,
sec_config->sec.simple.polarisation,
sec_config->sec.simple.sat_pos)) < 0)
return tmp;
break;
case DVBFE_SEC_CONFIG_ADVANCED:
if ((tmp = dvbfe_sec_command(fe, sec_config->sec.advanced_cmd)) < 0)
return tmp;
break;
}
// frequency adjustment
if (sec_config->lof) {
memcpy(&localparams, params, sizeof(struct dvbfe_parameters));
localparams.frequency -= sec_config->lof;
topass = &localparams;
} else {
topass = params;
}
// set the frontend!
return dvbfe_set(fe, topass, timeout);
}