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)
 
 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;
 
 
        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;
 
 #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;