Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c22bcb07ad4555fe7ac4ce724c8ad1de889f9477
Commit:     c22bcb07ad4555fe7ac4ce724c8ad1de889f9477
Parent:     7a91a80a0d1a0a83a94e773ec6245b31b7c4ceed
Author:     Michael Krufky <[EMAIL PROTECTED]>
AuthorDate: Wed Jun 6 16:14:18 2007 -0300
Committer:  Mauro Carvalho Chehab <[EMAIL PROTECTED]>
CommitDate: Wed Jul 18 14:24:03 2007 -0300

    V4L/DVB (5754): Mt20xx: store tuning operations in tuner_operations 
structure
    
    Create static struct tuner_operations mt2050_tuner_ops and mt2032_tuner_ops
    for mt20xx tuning function callback pointers
    
    Signed-off-by: Michael Krufky <[EMAIL PROTECTED]>
    Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
---
 drivers/media/video/mt20xx.c |   40 +++++++++++++++++++++++++---------------
 1 files changed, 25 insertions(+), 15 deletions(-)

diff --git a/drivers/media/video/mt20xx.c b/drivers/media/video/mt20xx.c
index 846c623..8a838bd 100644
--- a/drivers/media/video/mt20xx.c
+++ b/drivers/media/video/mt20xx.c
@@ -42,6 +42,14 @@ struct microtune_priv {
        unsigned int radio_if2;
 };
 
+static void microtune_release(struct i2c_client *c)
+{
+       struct tuner *t = i2c_get_clientdata(c);
+
+       kfree(t->priv);
+       t->priv = NULL;
+}
+
 // IsSpurInBand()?
 static int mt2032_spurcheck(struct i2c_client *c,
                            int f1, int f2, int spectrum_from,int spectrum_to)
@@ -308,6 +316,12 @@ static void mt2032_set_radio_freq(struct i2c_client *c, 
unsigned int freq)
                              1085*1000*1000,if2,if2,if2);
 }
 
+static struct tuner_operations mt2032_tuner_ops = {
+       .set_tv_freq    = mt2032_set_tv_freq,
+       .set_radio_freq = mt2032_set_radio_freq,
+       .release        = microtune_release,
+};
+
 // Initalization as described in "MT203x Programming Procedures", Rev 1.2, 
Feb.2001
 static int mt2032_init(struct i2c_client *c)
 {
@@ -361,8 +375,8 @@ static int mt2032_init(struct i2c_client *c)
        } while (xok != 1 );
        priv->xogc=xogc;
 
-       t->ops.set_tv_freq    = mt2032_set_tv_freq;
-       t->ops.set_radio_freq = mt2032_set_radio_freq;
+       memcpy(&t->ops, &mt2032_tuner_ops, sizeof(struct tuner_operations));
+
        return(1);
 }
 
@@ -471,6 +485,12 @@ static void mt2050_set_radio_freq(struct i2c_client *c, 
unsigned int freq)
        mt2050_set_antenna(c, radio_antenna);
 }
 
+static struct tuner_operations mt2050_tuner_ops = {
+       .set_tv_freq    = mt2050_set_tv_freq,
+       .set_radio_freq = mt2050_set_radio_freq,
+       .release        = microtune_release,
+};
+
 static int mt2050_init(struct i2c_client *c)
 {
        struct tuner *t = i2c_get_clientdata(c);
@@ -490,17 +510,10 @@ static int mt2050_init(struct i2c_client *c)
        i2c_master_recv(c,buf,1);
 
        tuner_dbg("mt2050: sro is %x\n",buf[0]);
-       t->ops.set_tv_freq    = mt2050_set_tv_freq;
-       t->ops.set_radio_freq = mt2050_set_radio_freq;
-       return 0;
-}
 
-static void microtune_release(struct i2c_client *c)
-{
-       struct tuner *t = i2c_get_clientdata(c);
+       memcpy(&t->ops, &mt2050_tuner_ops, sizeof(struct tuner_operations));
 
-       kfree(t->priv);
-       t->priv = NULL;
+       return 0;
 }
 
 int microtune_init(struct i2c_client *c)
@@ -519,10 +532,7 @@ int microtune_init(struct i2c_client *c)
        priv->radio_if2 = 10700 * 1000; /* 10.7MHz - FM radio */
 
        memset(buf,0,sizeof(buf));
-       t->ops.set_tv_freq    = NULL;
-       t->ops.set_radio_freq = NULL;
-       t->ops.standby    = NULL;
-       t->ops.release        = microtune_release;
+
        if (t->std & V4L2_STD_525_60) {
                tuner_dbg("pinnacle ntsc\n");
                priv->radio_if2 = 41300 * 1000;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to