aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2007-12-16 20:11:46 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-01-25 19:03:55 -0200
commit8ca4083b50752d588f8b8b1e5e5776fb17d00304 (patch)
tree3a52ef63a3d60b2cddf0d88823fe4da640724abe
parent91c9d4a16710b047781248a38e7000ce9de324af (diff)
V4L/DVB (6842): tda9887: remove dependency on struct tuner
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/video/tda9887.c22
-rw-r--r--drivers/media/video/tda9887.h13
-rw-r--r--drivers/media/video/tuner-core.c2
3 files changed, 21 insertions, 16 deletions
diff --git a/drivers/media/video/tda9887.c b/drivers/media/video/tda9887.c
index 95d974298fe..0b5dc37fea5 100644
--- a/drivers/media/video/tda9887.c
+++ b/drivers/media/video/tda9887.c
@@ -9,6 +9,7 @@
#include <linux/videodev.h>
#include <media/v4l2-common.h>
#include <media/tuner.h>
+#include "tuner-driver.h"
#include "tuner-i2c.h"
#include "tda9887.h"
@@ -665,26 +666,25 @@ static struct analog_tuner_ops tda9887_tuner_ops = {
.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;
priv = kzalloc(sizeof(struct tda9887_priv), GFP_KERNEL);
if (priv == NULL)
- return -ENOMEM;
- t->fe.analog_demod_priv = priv;
+ return NULL;
+ fe->analog_demod_priv = priv;
- priv->i2c_props.addr = t->i2c->addr;
- priv->i2c_props.adap = t->i2c->adapter;
+ priv->i2c_props.addr = i2c_addr;
+ 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,
- t->i2c->driver->driver.name);
+ fe->ops.analog_demod_ops = &tda9887_tuner_ops;
- t->fe.ops.analog_demod_ops = &tda9887_tuner_ops;
-
- return 0;
+ return fe;
}
EXPORT_SYMBOL_GPL(tda9887_attach);
diff --git a/drivers/media/video/tda9887.h b/drivers/media/video/tda9887.h
index b879f0ec285..8f873a8e6ed 100644
--- a/drivers/media/video/tda9887.h
+++ b/drivers/media/video/tda9887.h
@@ -17,16 +17,21 @@
#ifndef __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))
-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
-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__);
- return -EINVAL;
+ return NULL;
}
#endif
diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c
index 695f39ebe77..d51f3afa969 100644
--- a/drivers/media/video/tuner-core.c
+++ b/drivers/media/video/tuner-core.c
@@ -408,7 +408,7 @@ static void set_type(struct i2c_client *c, unsigned int type,
break;
}
case TUNER_TDA9887:
- tda9887_attach(t);
+ tda9887_attach(&t->fe, t->i2c->adapter, t->i2c->addr);
break;
default:
attach_simple_tuner(t);