[media] dvb: remove bogus modulation check
authorMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 7 Jan 2012 07:38:38 +0000 (05:38 -0200)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 7 Jan 2012 13:47:32 +0000 (11:47 -0200)
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>
drivers/media/dvb/dvb-core/dvb_frontend.c

index 0e079a1a4f4944c673fa54e0a552b5eafecc41fa..a904793e61e20381de08108754d619df709bae8c 100644 (file)
@@ -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;
 }