Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4abe9f9d94e60303c30b1a9bbbc8e6532f6138cb
Commit:     4abe9f9d94e60303c30b1a9bbbc8e6532f6138cb
Parent:     77d675047062d514acdc1bbe9f84658b39f99abe
Author:     Michael Krufky <[EMAIL PROTECTED]>
AuthorDate: Sat May 5 12:15:57 2007 -0300
Committer:  Mauro Carvalho Chehab <[EMAIL PROTECTED]>
CommitDate: Wed Jul 18 14:23:14 2007 -0300

    V4L/DVB (5633): Tuv1236d: move rf input switching code into dvb-pll
    
    This patch removes duplicate code from cx88-dvb and saa7134-dvb that handles
    rf input switching for the TUV1236d tuner.
    
    The functionality is added to dvb-pll, where all the other code that
    handles the TUV1236d is kept.
    
    Signed-off-by: Michael Krufky <[EMAIL PROTECTED]>
    Signed-off-by: Trent Piepho <[EMAIL PROTECTED]>
    Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
---
 drivers/media/dvb/frontends/dvb-pll.c     |   14 ++++++++++++++
 drivers/media/dvb/frontends/nxt200x.c     |   22 +++++++---------------
 drivers/media/dvb/frontends/nxt200x.h     |    3 ---
 drivers/media/video/cx88/cx88-dvb.c       |   10 ----------
 drivers/media/video/saa7134/saa7134-dvb.c |   10 ----------
 5 files changed, 21 insertions(+), 38 deletions(-)

diff --git a/drivers/media/dvb/frontends/dvb-pll.c 
b/drivers/media/dvb/frontends/dvb-pll.c
index 0e3195f..1363cc8 100644
--- a/drivers/media/dvb/frontends/dvb-pll.c
+++ b/drivers/media/dvb/frontends/dvb-pll.c
@@ -343,11 +343,25 @@ EXPORT_SYMBOL(dvb_pll_tdhu2);
 /* Philips TUV1236D
  * used in ATI HDTV Wonder
  */
+static void tuv1236d_rf(u8 *buf, const struct dvb_frontend_parameters *params)
+{
+       switch (params->u.vsb.modulation) {
+               case QAM_64:
+               case QAM_256:
+                       buf[3] |= 0x08;
+                       break;
+               case VSB_8:
+               default:
+                       buf[3] &= ~0x08;
+       }
+}
+
 struct dvb_pll_desc dvb_pll_tuv1236d = {
        .name  = "Philips TUV1236D",
        .min   =  54000000,
        .max   = 864000000,
        .iffreq= 44000000,
+       .set   = tuv1236d_rf,
        .count = 3,
        .entries = {
                { 157250000, 62500, 0xc6, 0x41 },
diff --git a/drivers/media/dvb/frontends/nxt200x.c 
b/drivers/media/dvb/frontends/nxt200x.c
index b809f83..b96f8e8 100644
--- a/drivers/media/dvb/frontends/nxt200x.c
+++ b/drivers/media/dvb/frontends/nxt200x.c
@@ -546,11 +546,6 @@ static int nxt200x_setup_frontend_parameters (struct 
dvb_frontend* fe,
                nxt200x_writebytes(state, 0x17, buf, 1);
        }
 
-       /* get tuning information */
-       if (fe->ops.tuner_ops.calc_regs) {
-               fe->ops.tuner_ops.calc_regs(fe, p, buf, 5);
-       }
-
        /* set additional params */
        switch (p->u.vsb.modulation) {
                case QAM_64:
@@ -559,27 +554,24 @@ static int nxt200x_setup_frontend_parameters (struct 
dvb_frontend* fe,
                        /* This is just a guess since I am unable to test it */
                        if (state->config->set_ts_params)
                                state->config->set_ts_params(fe, 1);
-
-                       /* set input */
-                       if (state->config->set_pll_input)
-                               state->config->set_pll_input(buf+1, 1);
                        break;
                case VSB_8:
                        /* Set non-punctured clock for VSB */
                        if (state->config->set_ts_params)
                                state->config->set_ts_params(fe, 0);
-
-                       /* set input */
-                       if (state->config->set_pll_input)
-                               state->config->set_pll_input(buf+1, 0);
                        break;
                default:
                        return -EINVAL;
                        break;
        }
 
-       /* write frequency information */
-       nxt200x_writetuner(state, buf);
+       if (fe->ops.tuner_ops.calc_regs) {
+               /* get tuning information */
+               fe->ops.tuner_ops.calc_regs(fe, p, buf, 5);
+
+               /* write frequency information */
+               nxt200x_writetuner(state, buf);
+       }
 
        /* reset the agc now that tuning has been completed */
        nxt200x_agc_reset(state);
diff --git a/drivers/media/dvb/frontends/nxt200x.h 
b/drivers/media/dvb/frontends/nxt200x.h
index 28bc559..bb0ef58 100644
--- a/drivers/media/dvb/frontends/nxt200x.h
+++ b/drivers/media/dvb/frontends/nxt200x.h
@@ -38,9 +38,6 @@ struct nxt200x_config
        /* the demodulator's i2c address */
        u8 demod_address;
 
-       /* used to set pll input */
-       int (*set_pll_input)(u8* buf, int input);
-
        /* need to set device param for start_dma */
        int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured);
 };
diff --git a/drivers/media/video/cx88/cx88-dvb.c 
b/drivers/media/video/cx88/cx88-dvb.c
index 770ea64..420c25f 100644
--- a/drivers/media/video/cx88/cx88-dvb.c
+++ b/drivers/media/video/cx88/cx88-dvb.c
@@ -366,18 +366,8 @@ static int nxt200x_set_ts_param(struct dvb_frontend* fe, 
int is_punctured)
        return 0;
 }
 
-static int nxt200x_set_pll_input(u8* buf, int input)
-{
-       if (input)
-               buf[3] |= 0x08;
-       else
-               buf[3] &= ~0x08;
-       return 0;
-}
-
 static struct nxt200x_config ati_hdtvwonder = {
        .demod_address = 0x0a,
-       .set_pll_input = nxt200x_set_pll_input,
        .set_ts_params = nxt200x_set_ts_param,
 };
 
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c 
b/drivers/media/video/saa7134/saa7134-dvb.c
index d6dd6d5..1f50a48 100644
--- a/drivers/media/video/saa7134/saa7134-dvb.c
+++ b/drivers/media/video/saa7134/saa7134-dvb.c
@@ -956,18 +956,8 @@ static struct nxt200x_config avertvhda180 = {
        .demod_address    = 0x0a,
 };
 
-static int nxt200x_set_pll_input(u8 *buf, int input)
-{
-       if (input)
-               buf[3] |= 0x08;
-       else
-               buf[3] &= ~0x08;
-       return 0;
-}
-
 static struct nxt200x_config kworldatsc110 = {
        .demod_address    = 0x0a,
-       .set_pll_input    = nxt200x_set_pll_input,
 };
 
 /* ==================================================================
-
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