[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: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
c0fdbd3367
commit
b247377ace
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user