Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b247377a authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

[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: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent c0fdbd33
Loading
Loading
Loading
Loading
+0 −23
Original line number Diff line number Diff line
@@ -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;
}