Commit 8ca4083b authored by Michael Krufky's avatar Michael Krufky Committed by Mauro Carvalho Chehab

V4L/DVB (6842): tda9887: remove dependency on struct tuner

Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 91c9d4a1
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <linux/videodev.h> #include <linux/videodev.h>
#include <media/v4l2-common.h> #include <media/v4l2-common.h>
#include <media/tuner.h> #include <media/tuner.h>
#include "tuner-driver.h"
#include "tuner-i2c.h" #include "tuner-i2c.h"
#include "tda9887.h" #include "tda9887.h"
...@@ -665,26 +666,25 @@ static struct analog_tuner_ops tda9887_tuner_ops = { ...@@ -665,26 +666,25 @@ static struct analog_tuner_ops tda9887_tuner_ops = {
.set_config = tda9887_set_config, .set_config = tda9887_set_config,
}; };
int tda9887_attach(struct tuner *t) struct dvb_frontend *tda9887_attach(struct dvb_frontend *fe,
struct i2c_adapter *i2c_adap,
u8 i2c_addr)
{ {
struct tda9887_priv *priv = NULL; struct tda9887_priv *priv = NULL;
priv = kzalloc(sizeof(struct tda9887_priv), GFP_KERNEL); priv = kzalloc(sizeof(struct tda9887_priv), GFP_KERNEL);
if (priv == NULL) if (priv == NULL)
return -ENOMEM; return NULL;
t->fe.analog_demod_priv = priv; fe->analog_demod_priv = priv;
priv->i2c_props.addr = t->i2c->addr; priv->i2c_props.addr = i2c_addr;
priv->i2c_props.adap = t->i2c->adapter; priv->i2c_props.adap = i2c_adap;
strlcpy(t->i2c->name, "tda9887", sizeof(t->i2c->name)); tda9887_info("tda988[5/6/7] found\n");
tda9887_info("tda988[5/6/7] found @ 0x%x (%s)\n", t->i2c->addr, fe->ops.analog_demod_ops = &tda9887_tuner_ops;
t->i2c->driver->driver.name);
t->fe.ops.analog_demod_ops = &tda9887_tuner_ops; return fe;
return 0;
} }
EXPORT_SYMBOL_GPL(tda9887_attach); EXPORT_SYMBOL_GPL(tda9887_attach);
......
...@@ -17,16 +17,21 @@ ...@@ -17,16 +17,21 @@
#ifndef __TDA9887_H__ #ifndef __TDA9887_H__
#define __TDA9887_H__ #define __TDA9887_H__
#include "tuner-driver.h" #include <linux/i2c.h>
#include "dvb_frontend.h"
/* ------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------ */
#if defined(CONFIG_TUNER_TDA9887) || (defined(CONFIG_TUNER_TDA9887_MODULE) && defined(MODULE)) #if defined(CONFIG_TUNER_TDA9887) || (defined(CONFIG_TUNER_TDA9887_MODULE) && defined(MODULE))
extern int tda9887_attach(struct tuner *t); extern struct dvb_frontend *tda9887_attach(struct dvb_frontend *fe,
struct i2c_adapter *i2c_adap,
u8 i2c_addr);
#else #else
static inline int tda9887_attach(struct tuner *t) static inline struct dvb_frontend *tda9887_attach(struct dvb_frontend *fe,
struct i2c_adapter *i2c_adap,
u8 i2c_addr)
{ {
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
return -EINVAL; return NULL;
} }
#endif #endif
......
...@@ -408,7 +408,7 @@ static void set_type(struct i2c_client *c, unsigned int type, ...@@ -408,7 +408,7 @@ static void set_type(struct i2c_client *c, unsigned int type,
break; break;
} }
case TUNER_TDA9887: case TUNER_TDA9887:
tda9887_attach(t); tda9887_attach(&t->fe, t->i2c->adapter, t->i2c->addr);
break; break;
default: default:
attach_simple_tuner(t); attach_simple_tuner(t);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment