[media] Don't test for ops->info.type inside drivers
authorMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 5 Jan 2012 01:10:19 +0000 (23:10 -0200)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 5 Jan 2012 01:10:19 +0000 (23:10 -0200)
Now, ops->info.type is handled inside the dvb_frontend
core, only for DVBv3 calls, and according with the
delivery system. So, drivers should not care or use it,
otherwise, it may have issues with DVBv5 calls.

The drivers that were still using it were detected via
this small temporary hack:

--- a/include/linux/dvb/frontend.h
+++ b/include/linux/dvb/frontend.h
@@ -29,13 +29,16 @@
 #include <linux/types.h>

 typedef enum fe_type {
+#if defined(__DVB_CORE__) || !defined (__KERNEL__)
        FE_QPSK,
        FE_QAM,
        FE_OFDM,
        FE_ATSC
+#else
+FE_FOOO
+#endif
 } fe_type_t;

-
 typedef enum fe_caps {
        FE_IS_STUPID                    = 0,
        FE_CAN_INVERSION_AUTO           = 0x1,

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/common/tuners/tda827x.c
drivers/media/dvb/firewire/firedtv-fe.c
drivers/staging/media/as102/as102_fe.c

index e180def0a657e7267f68c49586f263d681c0293f..a0d17626747096b081d81add3ed5e072d964fd60 100644 (file)
@@ -540,9 +540,14 @@ static int tda827xa_set_params(struct dvb_frontend *fe)
        }
        tuner_freq = c->frequency;
 
-       if (fe->ops.info.type == FE_QAM) {
+       switch (c->delivery_system) {
+       case SYS_DVBC_ANNEX_A:
+       case SYS_DVBC_ANNEX_C:
                dprintk("%s select tda827xa_dvbc\n", __func__);
                frequency_map = tda827xa_dvbc;
+               break;
+       default:
+               break;
        }
 
        i = 0;
index 39f5caafd2be744c706a5e4c26b908b8a8f63da0..6fe9793b98b3cfe19dfc22f664c3696ad78d71f3 100644 (file)
@@ -173,7 +173,6 @@ void fdtv_frontend_init(struct firedtv *fdtv, const char *name)
        switch (fdtv->type) {
        case FIREDTV_DVB_S:
                ops->delsys[0]          = SYS_DVBS;
-               fi->type                = FE_QPSK;
 
                fi->frequency_min       = 950000;
                fi->frequency_max       = 2150000;
@@ -193,8 +192,7 @@ void fdtv_frontend_init(struct firedtv *fdtv, const char *name)
 
        case FIREDTV_DVB_S2:
                ops->delsys[0]          = SYS_DVBS;
-               ops->delsys[1]          = SYS_DVBS;
-               fi->type                = FE_QPSK;
+               ops->delsys[1]          = SYS_DVBS2;
 
                fi->frequency_min       = 950000;
                fi->frequency_max       = 2150000;
@@ -215,7 +213,6 @@ void fdtv_frontend_init(struct firedtv *fdtv, const char *name)
 
        case FIREDTV_DVB_C:
                ops->delsys[0]          = SYS_DVBC_ANNEX_A;
-               fi->type                = FE_QAM;
 
                fi->frequency_min       = 47000000;
                fi->frequency_max       = 866000000;
@@ -234,7 +231,6 @@ void fdtv_frontend_init(struct firedtv *fdtv, const char *name)
 
        case FIREDTV_DVB_T:
                ops->delsys[0]          = SYS_DVBT;
-               fi->type                = FE_OFDM;
 
                fi->frequency_min       = 49000000;
                fi->frequency_max       = 861000000;
index 06bfe84aeb276791338ff732ff3b03bec549d939..bdc5a38cddf7d3668c25a9e7a6e9683c18829957 100644 (file)
@@ -282,7 +282,6 @@ static struct dvb_frontend_ops as102_fe_ops = {
        .delsys = { SYS_DVBT },
        .info = {
                .name                   = "Unknown AS102 device",
-               .type                   = FE_OFDM,
                .frequency_min          = 174000000,
                .frequency_max          = 862000000,
                .frequency_stepsize     = 166667,