From: Mauro Carvalho Chehab Date: Sat, 7 Jan 2012 07:38:38 +0000 (-0200) Subject: [media] dvb: remove bogus modulation check X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=b247377ace5d965809d0ba8de158dc2e8d28af77;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git [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 --- diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c index 0e079a1a4f49..a904793e61e2 100644 --- a/drivers/media/dvb/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c @@ -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; }