summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2007-10-21 14:22:25 -0400
committerMichael Krufky <mkrufky@linuxtv.org>2007-10-21 14:22:25 -0400
commit7546de2f97f5d0ce1c30c79aa289f39ae014681b (patch)
tree521478530f37adbc5748c892ed5751d755f282f0
parentaf382f57965a976afc138a6d59f64a7ee1ae4485 (diff)
downloadmediapointer-dvb-s2-7546de2f97f5d0ce1c30c79aa289f39ae014681b.tar.gz
mediapointer-dvb-s2-7546de2f97f5d0ce1c30c79aa289f39ae014681b.tar.bz2
tuner: move analog_demod_priv into struct dvb_frontend
From: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Reviewed-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> --- linux/drivers/media/dvb/dvb-core/dvb_frontend.h | 1 linux/drivers/media/video/tda8290.c | 40 ++++++++++++------------ linux/drivers/media/video/tda9887.c | 14 ++++---- linux/drivers/media/video/tuner-core.c | 11 ------ linux/drivers/media/video/tuner-driver.h | 1 5 files changed, 29 insertions(+), 38 deletions(-)
-rw-r--r--linux/drivers/media/dvb/dvb-core/dvb_frontend.h1
-rw-r--r--linux/drivers/media/video/tda8290.c40
-rw-r--r--linux/drivers/media/video/tda9887.c14
-rw-r--r--linux/drivers/media/video/tuner-core.c11
-rw-r--r--linux/drivers/media/video/tuner-driver.h1
5 files changed, 29 insertions, 38 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dvb_frontend.h b/linux/drivers/media/dvb/dvb-core/dvb_frontend.h
index 86ca54413..204994a60 100644
--- a/linux/drivers/media/dvb/dvb-core/dvb_frontend.h
+++ b/linux/drivers/media/dvb/dvb-core/dvb_frontend.h
@@ -175,6 +175,7 @@ struct dvb_frontend {
void* tuner_priv;
void* frontend_priv;
void* sec_priv;
+ void* analog_demod_priv;
};
extern int dvb_register_frontend(struct dvb_adapter* dvb,
diff --git a/linux/drivers/media/video/tda8290.c b/linux/drivers/media/video/tda8290.c
index 6bc67eebd..2d6b55ead 100644
--- a/linux/drivers/media/video/tda8290.c
+++ b/linux/drivers/media/video/tda8290.c
@@ -59,7 +59,7 @@ struct tda8290_priv {
static void tda8290_i2c_bridge(struct tuner *t, int close)
{
- struct tda8290_priv *priv = t->priv;
+ struct tda8290_priv *priv = t->fe.analog_demod_priv;
unsigned char enable[2] = { 0x21, 0xC0 };
unsigned char disable[2] = { 0x21, 0x00 };
@@ -78,7 +78,7 @@ static void tda8290_i2c_bridge(struct tuner *t, int close)
#if 1
static void tda8295_i2c_bridge(struct tuner *t, int close)
{
- struct tda8290_priv *priv = t->priv;
+ struct tda8290_priv *priv = t->fe.analog_demod_priv;
unsigned char enable[2] = { 0x45, 0xc1 };
unsigned char disable[2] = { 0x46, 0x00 };
@@ -127,7 +127,7 @@ static void tda8295_i2c_bridge(struct tuner *t, int close)
static void set_audio(struct tuner *t)
{
- struct tda8290_priv *priv = t->priv;
+ struct tda8290_priv *priv = t->fe.analog_demod_priv;
char* mode;
priv->cfg.tda827x_lpsel = 0;
@@ -174,7 +174,7 @@ static void set_audio(struct tuner *t)
static void tda8290_set_freq(struct tuner *t, unsigned int freq)
{
- struct tda8290_priv *priv = t->priv;
+ struct tda8290_priv *priv = t->fe.analog_demod_priv;
unsigned char soft_reset[] = { 0x00, 0x00 };
unsigned char easy_mode[] = { 0x01, priv->tda8290_easy_mode };
unsigned char expert_mode[] = { 0x01, 0x80 };
@@ -293,7 +293,7 @@ static void tda8290_set_freq(struct tuner *t, unsigned int freq)
static void tda8295_power(struct tuner *t, int enable)
{
- struct tda8290_priv *priv = t->priv;
+ struct tda8290_priv *priv = t->fe.analog_demod_priv;
unsigned char buf[] = { 0x30, 0x00 }; /* clb_stdbt */
tuner_i2c_xfer_send(&priv->i2c_props, &buf[0], 1);
@@ -309,7 +309,7 @@ static void tda8295_power(struct tuner *t, int enable)
static void tda8295_set_easy_mode(struct tuner *t, int enable)
{
- struct tda8290_priv *priv = t->priv;
+ struct tda8290_priv *priv = t->fe.analog_demod_priv;
unsigned char buf[] = { 0x01, 0x00 };
tuner_i2c_xfer_send(&priv->i2c_props, &buf[0], 1);
@@ -325,7 +325,7 @@ static void tda8295_set_easy_mode(struct tuner *t, int enable)
static void tda8295_set_video_std(struct tuner *t)
{
- struct tda8290_priv *priv = t->priv;
+ struct tda8290_priv *priv = t->fe.analog_demod_priv;
unsigned char buf[] = { 0x00, priv->tda8290_easy_mode };
tuner_i2c_xfer_send(&priv->i2c_props, buf, 2);
@@ -339,7 +339,7 @@ static void tda8295_set_video_std(struct tuner *t)
static void tda8295_agc1_out(struct tuner *t, int enable)
{
- struct tda8290_priv *priv = t->priv;
+ struct tda8290_priv *priv = t->fe.analog_demod_priv;
unsigned char buf[] = { 0x02, 0x00 }; /* DIV_FUNC */
tuner_i2c_xfer_send(&priv->i2c_props, &buf[0], 1);
@@ -355,7 +355,7 @@ static void tda8295_agc1_out(struct tuner *t, int enable)
static void tda8295_agc2_out(struct tuner *t, int enable)
{
- struct tda8290_priv *priv = t->priv;
+ struct tda8290_priv *priv = t->fe.analog_demod_priv;
unsigned char set_gpio_cf[] = { 0x44, 0x00 };
unsigned char set_gpio_val[] = { 0x46, 0x00 };
@@ -376,7 +376,7 @@ static void tda8295_agc2_out(struct tuner *t, int enable)
static int tda8295_has_signal(struct tuner *t)
{
- struct tda8290_priv *priv = t->priv;
+ struct tda8290_priv *priv = t->fe.analog_demod_priv;
unsigned char hvpll_stat = 0x26;
unsigned char ret;
@@ -390,7 +390,7 @@ static int tda8295_has_signal(struct tuner *t)
static void tda8295_set_freq(struct tuner *t, unsigned int freq)
{
- struct tda8290_priv *priv = t->priv;
+ struct tda8290_priv *priv = t->fe.analog_demod_priv;
u16 ifc;
unsigned char blanking_mode[] = { 0x1d, 0x00 };
@@ -440,7 +440,7 @@ static void tda8295_set_freq(struct tuner *t, unsigned int freq)
static int tda8290_has_signal(struct tuner *t)
{
- struct tda8290_priv *priv = t->priv;
+ struct tda8290_priv *priv = t->fe.analog_demod_priv;
unsigned char i2c_get_afc[1] = { 0x1B };
unsigned char afc = 0;
@@ -454,7 +454,7 @@ static int tda8290_has_signal(struct tuner *t)
static void tda8290_standby(struct tuner *t)
{
- struct tda8290_priv *priv = t->priv;
+ struct tda8290_priv *priv = t->fe.analog_demod_priv;
unsigned char cb1[] = { 0x30, 0xD0 };
unsigned char tda8290_standby[] = { 0x00, 0x02 };
unsigned char tda8290_agc_tri[] = { 0x02, 0x20 };
@@ -478,7 +478,7 @@ static void tda8295_standby(struct tuner *t)
static void tda8290_init_if(struct tuner *t)
{
- struct tda8290_priv *priv = t->priv;
+ struct tda8290_priv *priv = t->fe.analog_demod_priv;
unsigned char set_VS[] = { 0x30, 0x6F };
unsigned char set_GP00_CF[] = { 0x20, 0x01 };
@@ -493,7 +493,7 @@ static void tda8290_init_if(struct tuner *t)
static void tda8295_init_if(struct tuner *t)
{
- struct tda8290_priv *priv = t->priv;
+ struct tda8290_priv *priv = t->fe.analog_demod_priv;
static unsigned char set_adc_ctl[] = { 0x33, 0x14 };
static unsigned char set_adc_ctl2[] = { 0x34, 0x00 };
@@ -522,7 +522,7 @@ static void tda8295_init_if(struct tuner *t)
static void tda8290_init_tuner(struct tuner *t)
{
- struct tda8290_priv *priv = t->priv;
+ struct tda8290_priv *priv = t->fe.analog_demod_priv;
unsigned char tda8275_init[] = { 0x00, 0x00, 0x00, 0x40, 0xdC, 0x04, 0xAf,
0x3F, 0x2A, 0x04, 0xFF, 0x00, 0x00, 0x40 };
unsigned char tda8275a_init[] = { 0x00, 0x00, 0x00, 0x00, 0xdC, 0x05, 0x8b,
@@ -544,8 +544,8 @@ static void tda829x_release(struct tuner *t)
if (t->fe.ops.tuner_ops.release)
t->fe.ops.tuner_ops.release(&t->fe);
- kfree(t->priv);
- t->priv = NULL;
+ kfree(t->fe.analog_demod_priv);
+ t->fe.analog_demod_priv = NULL;
}
static struct analog_tuner_ops tda8290_tuner_ops = {
@@ -575,7 +575,7 @@ int tda8290_attach(struct tuner *t)
priv = kzalloc(sizeof(struct tda8290_priv), GFP_KERNEL);
if (priv == NULL)
return -ENOMEM;
- t->priv = priv;
+ t->fe.analog_demod_priv = priv;
priv->i2c_props.addr = t->i2c.addr;
priv->i2c_props.adap = t->i2c.adapter;
@@ -665,7 +665,7 @@ int tda8295_attach(struct tuner *t)
priv = kzalloc(sizeof(struct tda8290_priv), GFP_KERNEL);
if (priv == NULL)
return -ENOMEM;
- t->priv = priv;
+ t->fe.analog_demod_priv = priv;
priv->i2c_props.addr = t->i2c.addr;
priv->i2c_props.adap = t->i2c.adapter;
diff --git a/linux/drivers/media/video/tda9887.c b/linux/drivers/media/video/tda9887.c
index 41488e4f4..394e13504 100644
--- a/linux/drivers/media/video/tda9887.c
+++ b/linux/drivers/media/video/tda9887.c
@@ -523,7 +523,7 @@ static int tda9887_set_config(struct tuner *t, char *buf)
static int tda9887_status(struct tuner *t)
{
- struct tda9887_priv *priv = t->priv;
+ struct tda9887_priv *priv = t->fe.analog_demod_priv;
unsigned char buf[1];
int rc;
@@ -536,7 +536,7 @@ static int tda9887_status(struct tuner *t)
static void tda9887_configure(struct tuner *t)
{
- struct tda9887_priv *priv = t->priv;
+ struct tda9887_priv *priv = t->fe.analog_demod_priv;
int rc;
memset(priv->data,0,sizeof(priv->data));
@@ -583,13 +583,13 @@ static void tda9887_configure(struct tuner *t)
static void tda9887_tuner_status(struct tuner *t)
{
- struct tda9887_priv *priv = t->priv;
+ struct tda9887_priv *priv = t->fe.analog_demod_priv;
tda9887_info("Data bytes: b=0x%02x c=0x%02x e=0x%02x\n", priv->data[1], priv->data[2], priv->data[3]);
}
static int tda9887_get_afc(struct tuner *t)
{
- struct tda9887_priv *priv = t->priv;
+ struct tda9887_priv *priv = t->fe.analog_demod_priv;
static int AFC_BITS_2_kHz[] = {
-12500, -37500, -62500, -97500,
-112500, -137500, -162500, -187500,
@@ -617,8 +617,8 @@ static void tda9887_set_freq(struct tuner *t, unsigned int freq)
static void tda9887_release(struct tuner *t)
{
- kfree(t->priv);
- t->priv = NULL;
+ kfree(t->fe.analog_demod_priv);
+ t->fe.analog_demod_priv = NULL;
}
static struct analog_tuner_ops tda9887_tuner_ops = {
@@ -637,7 +637,7 @@ int tda9887_tuner_init(struct tuner *t)
priv = kzalloc(sizeof(struct tda9887_priv), GFP_KERNEL);
if (priv == NULL)
return -ENOMEM;
- t->priv = priv;
+ t->fe.analog_demod_priv = priv;
priv->i2c_props.addr = t->i2c.addr;
priv->i2c_props.adap = t->i2c.adapter;
diff --git a/linux/drivers/media/video/tuner-core.c b/linux/drivers/media/video/tuner-core.c
index b6de9fecb..d743581bf 100644
--- a/linux/drivers/media/video/tuner-core.c
+++ b/linux/drivers/media/video/tuner-core.c
@@ -307,10 +307,6 @@ static void set_type(struct i2c_client *c, unsigned int type,
/* discard private data, in case set_type() was previously called */
if ((ops) && (ops->release))
ops->release(t);
- else {
- kfree(t->priv);
- t->priv = NULL;
- }
switch (t->type) {
case TUNER_MT2032:
@@ -780,12 +776,7 @@ MOD_DEC_USE_COUNT;
#endif
if ((ops) && (ops->release))
ops->release(t);
- else {
- kfree(t->priv);
-#if 0
- t->priv = NULL;
-#endif
- }
+
kfree(t);
return 0;
}
diff --git a/linux/drivers/media/video/tuner-driver.h b/linux/drivers/media/video/tuner-driver.h
index 430141337..db6be5d52 100644
--- a/linux/drivers/media/video/tuner-driver.h
+++ b/linux/drivers/media/video/tuner-driver.h
@@ -57,7 +57,6 @@ struct tuner {
v4l2_std_id std;
int using_v4l2;
- void *priv;
struct dvb_frontend fe;