Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b542dfdc9f6e6eaf3cc2ede27dbaf50425f8b4b5
Commit:     b542dfdc9f6e6eaf3cc2ede27dbaf50425f8b4b5
Parent:     d04aa54a27f7bc6f051e55c47abbc0a1db1718bc
Author:     Mauro Carvalho Chehab <[EMAIL PROTECTED]>
AuthorDate: Sat Nov 24 11:07:12 2007 -0300
Committer:  Mauro Carvalho Chehab <[EMAIL PROTECTED]>
CommitDate: Fri Jan 25 19:02:57 2008 -0200

    V4L/DVB (6675): Allow selecting the proper SCode table for DTV
    
    Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
---
 drivers/media/video/tuner-xc2028.c |   18 ++++++++++++++++++
 drivers/media/video/tuner-xc2028.h |   15 +++++++++++++++
 2 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/drivers/media/video/tuner-xc2028.c 
b/drivers/media/video/tuner-xc2028.c
index 42fb141..9743331 100644
--- a/drivers/media/video/tuner-xc2028.c
+++ b/drivers/media/video/tuner-xc2028.c
@@ -914,6 +914,19 @@ static int xc2028_set_analog_freq(struct dvb_frontend *fe,
                                T_ANALOG_TV, type, p->std);
 }
 
+static unsigned int demod_type [] = {
+       [XC3028_FE_DEFAULT]     = 0,
+       [XC3028_FE_LG60]        = LG60,
+       [XC3028_FE_ATI638]      = ATI638,
+       [XC3028_FE_OREN538]     = OREN538,
+       [XC3028_FE_OREN36]      = OREN36,
+       [XC3028_FE_TOYOTA388]   = TOYOTA388,
+       [XC3028_FE_TOYOTA794]   = TOYOTA794,
+       [XC3028_FE_DIBCOM52]    = DIBCOM52,
+       [XC3028_FE_ZARLINK456]  = ZARLINK456,
+       [XC3028_FE_CHINA]       = CHINA,
+};
+
 static int xc2028_set_params(struct dvb_frontend *fe,
                             struct dvb_frontend_parameters *p)
 {
@@ -965,6 +978,11 @@ static int xc2028_set_params(struct dvb_frontend *fe,
                tuner_err("error: bandwidth not supported.\n");
        };
 
+       if (priv->ctrl.demod < 0 || priv->ctrl.demod > ARRAY_SIZE(demod_type))
+               tuner_err("error: demod type invalid. Assuming default.\n");
+       else
+               type |= demod_type[priv->ctrl.demod];
+
        return generic_set_freq(fe, p->frequency,
                                T_DIGITAL_TV, type, 0);
 }
diff --git a/drivers/media/video/tuner-xc2028.h 
b/drivers/media/video/tuner-xc2028.h
index 02e116b..9b4224e 100644
--- a/drivers/media/video/tuner-xc2028.h
+++ b/drivers/media/video/tuner-xc2028.h
@@ -11,6 +11,20 @@
 
 #define XC2028_DEFAULT_FIRMWARE "xc3028-v27.fw"
 
+enum xc2028_demod_types
+{
+       XC3028_FE_DEFAULT = 0,
+       XC3028_FE_LG60,         /* IF = 6.00 MHz */
+       XC3028_FE_ATI638,       /* IF = 6.38 MHz */
+       XC3028_FE_OREN538,      /* IF = 5.38 MHz */
+       XC3028_FE_OREN36,       /* IF = 3.60 MHz */
+       XC3028_FE_TOYOTA388,    /* IF = 3.88 MHz */
+       XC3028_FE_TOYOTA794,    /* IF = 7.94 MHz */
+       XC3028_FE_DIBCOM52,     /* IF = 5.20 MHz */
+       XC3028_FE_ZARLINK456,   /* IF = 4.56 MHz */
+       XC3028_FE_CHINA,        /* IF = 5.20 MHz */
+};
+
 struct xc2028_ctrl {
        char                    *fname;
        int                     max_len;
@@ -18,6 +32,7 @@ struct xc2028_ctrl {
        unsigned int            mts   :1;
        unsigned int            d2633 :1;
        unsigned int            input1:1;
+       enum xc2028_demod_types demod;
 };
 
 struct xc2028_config {
-
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