On Wed, 2004-01-28 at 15:58, Andrew de Quincey wrote: > Actually on second thoughts, it seems a bit nasty to have the frontend code > split up into several places. Another method might be to modify the FE_INIT > ioctl to take an int parameter describing what kind of frontend configuration > is required for the hardware it is attached to... e.g. FE_CONFIG_TT for for > TechnoTrend style cards and so on.
Defining an id for every single board is a mess IMHO.
> This also means parameters which are hardware specific at runtime can be
> implemented (e.g. for TT TDA10046H, it is necessary to invert the sense of
> the fe_params->inversion setting).
For now you can define the needed bits in your drivers private data
according to the detected combination of demod and pll.
Or how about:
void invert_inversion(struct dvb_frontend_parameters *p)
{
if (p->inversion < INVERSION_AUTO)
p->inversion = !p->inversion;
}
int before(struct dvb_frontend *frontend, unsigned int cmd, void *arg)
{
struct my_frontend_priv *foo = frontend->before_after_data;
switch (cmd) {
case FE_GET_FRONTEND:
case FE_SET_FRONTEND:
if (foo->rev == FOO_REV_1_3)
invert_inversion(arg);
break;
}
return -EOPNOTSUPP;
}
int some_init(void)
{
struct my_frontend_priv *priv = some_alloc(FOO_REV_1_3);
struct dvb_adapter *adap = get_some_adap();
return dvb_add_frontend_ioctls(adap, cb, cb, priv);
}
Regards,
Andreas
signature.asc
Description: This is a digitally signed message part
