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>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
91c9d4a167
commit
8ca4083b50
@@ -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 = {
|
|||||||
.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 @@
|
|||||||
#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,
|
|||||||
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);
|
||||||
|
Reference in New Issue
Block a user