提交 b247377a 编写于 作者: M Mauro Carvalho Chehab

[media] dvb: remove bogus modulation check

This code is wrong as I should have coded it as SYS_DVBC, instead of
SYS_DVBS & friends. Anyway, this check has other problems

1) it does some "magic" by assuming that all QAM modulations are below
  QAM_AUTO;

2) it checks modulation parameters only for one delivery system.
   Or the core should check invalid parameters for all delivery
   systems, or it should let the frontend drivers do it;

3) frontend drivers should already be checking for invalid parameters
   (most of them do it, anyway);

4) not all modulations are mapped at fe->ops.info.caps, so it is not
   even possible to check for the valid modulations inside the core
   for some delivery systems;

5) The core check is incomplete anyway: it only checks for a few
   parameters. If moved into the core other parameters like bandwidth
   and fec should also be checked;

6) 2nd gen DVB-C uses OFDM. So, that test would fail for it.
Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
上级 c0fdbd33
......@@ -897,29 +897,6 @@ static int dvb_frontend_check_parameters(struct dvb_frontend *fe)
break;
}
/*
* check for supported modulation
*
* This is currently hacky. Also, it only works for DVB-S & friends,
* and not all modulations has FE_CAN flags
*/
switch (c->delivery_system) {
case SYS_DVBS:
case SYS_DVBS2:
case SYS_TURBO:
if ((c->modulation > QAM_AUTO ||
!((1 << (c->modulation + 10)) & fe->ops.info.caps))) {
printk(KERN_WARNING
"DVB: adapter %i frontend %i modulation %u not supported\n",
fe->dvb->num, fe->id, c->modulation);
return -EINVAL;
}
break;
default:
/* FIXME: it makes sense to validate othere delsys here */
break;
}
return 0;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册