V4L/DVB (7127): tuner: remove dependency of tuner-core on tuner-types
authorMichael Krufky <mkrufky@linuxtv.org>
Tue, 22 Apr 2008 17:41:51 +0000 (14:41 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Thu, 24 Apr 2008 16:42:24 +0000 (13:42 -0300)
This patch fully removes the dependency of tuner-core on
tuner-types.

There is no longer any need to pass struct tunertype in attach-time
config structure - instead pass the tuner type ID.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/tuner-core.c
drivers/media/video/tuner-simple.c
drivers/media/video/tuner-simple.h

index 4d791766ce11feb93e5f4019c150c98e5f682d4f..d6b64e9178ebb7b600cd5c70e068796f6ec80deb 100644 (file)
@@ -313,18 +313,13 @@ static void tuner_i2c_address_check(struct tuner *t)
        tuner_warn("output to v4l-dvb-maintainer@linuxtv.org\n");
        tuner_warn("Please use subject line: \"obsolete tuner i2c address.\"\n");
        tuner_warn("driver: %s, addr: 0x%02x, type: %d (%s)\n",
-                  t->i2c->adapter->name, t->i2c->addr, t->type,
-                  tuners[t->type].name);
+                  t->i2c->adapter->name, t->i2c->addr, t->type, t->i2c->name);
        tuner_warn("====================== WARNING! ======================\n");
 }
 
-static void attach_simple_tuner(struct tuner *t)
+static inline void attach_simple_tuner(struct tuner *t)
 {
-       struct simple_tuner_config cfg = {
-               .type = t->type,
-               .tun  = &tuners[t->type]
-       };
-       simple_tuner_attach(&t->fe, t->i2c->adapter, t->i2c->addr, &cfg);
+       simple_tuner_attach(&t->fe, t->i2c->adapter, t->i2c->addr, t->type);
 }
 
 static void attach_tda829x(struct tuner *t)
index d3362703e2582a7515e7d0f93bd0f0bf04e1fea4..de0b291459f78f26b30c20288620f208bd4e6ae3 100644 (file)
@@ -684,7 +684,7 @@ static struct dvb_tuner_ops simple_tuner_ops = {
 struct dvb_frontend *simple_tuner_attach(struct dvb_frontend *fe,
                                         struct i2c_adapter *i2c_adap,
                                         u8 i2c_addr,
-                                        struct simple_tuner_config *cfg)
+                                        unsigned int type)
 {
        struct tuner_simple_priv *priv = NULL;
 
@@ -701,15 +701,15 @@ struct dvb_frontend *simple_tuner_attach(struct dvb_frontend *fe,
 
        priv->i2c_props.addr = i2c_addr;
        priv->i2c_props.adap = i2c_adap;
-       priv->type = cfg->type;
-       priv->tun  = cfg->tun;
+       priv->type = type;
+       priv->tun  = &tuners[type];
 
        memcpy(&fe->ops.tuner_ops, &simple_tuner_ops,
               sizeof(struct dvb_tuner_ops));
 
-       tuner_info("type set to %d (%s)\n", cfg->type, cfg->tun->name);
+       tuner_info("type set to %d (%s)\n", priv->type, priv->tun->name);
 
-       strlcpy(fe->ops.tuner_ops.info.name, cfg->tun->name,
+       strlcpy(fe->ops.tuner_ops.info.name, priv->tun->name,
                sizeof(fe->ops.tuner_ops.info.name));
 
        return fe;
index 9089939a8c0214e9b71c177f7880936efd14edb5..bf425f325f87b7dd9a1d37bad5d17ecd13bd4011 100644 (file)
 #include <linux/i2c.h>
 #include "dvb_frontend.h"
 
-struct simple_tuner_config
-{
-       /* chip type */
-       unsigned int type;
-       struct tunertype *tun;
-};
-
 #if defined(CONFIG_TUNER_SIMPLE) || (defined(CONFIG_TUNER_SIMPLE_MODULE) && defined(MODULE))
 extern struct dvb_frontend *simple_tuner_attach(struct dvb_frontend *fe,
                                                struct i2c_adapter *i2c_adap,
                                                u8 i2c_addr,
-                                               struct simple_tuner_config *cfg);
+                                               unsigned int type);
 #else
 static inline struct dvb_frontend *simple_tuner_attach(struct dvb_frontend *fe,
                                                       struct i2c_adapter *i2c_adap,
                                                       u8 i2c_addr,
-                                                      struct simple_tuner_config *cfg)
+                                                      unsigned int type)
 {
        printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
        return NULL;