tree 9dd4c78e9b616577ff99a475a2f50af392f8b923
parent 7f5fee57812c99c95edf6794a50413c75e99fd4d
author Patrick Boettcher <[EMAIL PROTECTED]> Fri, 08 Jul 2005 07:58:09 -0700
committer Linus Torvalds <[EMAIL PROTECTED]> Fri, 08 Jul 2005 08:23:59 -0700

[PATCH] dvb: frontend: add FMD1216ME PLL

o change dvb-pll desc to take the frequency as parameter for setbw-callback
  into consideration
o added dvb-pll desc for Philips FMD1216ME (needed for cxusb)

Signed-off-by: Johannes Stezenbach <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 drivers/media/dvb/frontends/dvb-pll.c |   35 ++++++++++++++++++++++++++++++----
 drivers/media/dvb/frontends/dvb-pll.h |    3 +-
 2 files changed, 33 insertions(+), 5 deletions(-)

diff --git a/drivers/media/dvb/frontends/dvb-pll.c 
b/drivers/media/dvb/frontends/dvb-pll.c
--- a/drivers/media/dvb/frontends/dvb-pll.c
+++ b/drivers/media/dvb/frontends/dvb-pll.c
@@ -55,7 +55,7 @@ struct dvb_pll_desc dvb_pll_thomson_dtt7
 };
 EXPORT_SYMBOL(dvb_pll_thomson_dtt7610);
 
-static void thomson_dtt759x_bw(u8 *buf, int bandwidth)
+static void thomson_dtt759x_bw(u8 *buf, u32 freq, int bandwidth)
 {
        if (BANDWIDTH_7_MHZ == bandwidth)
                buf[3] |= 0x10;
@@ -146,7 +146,7 @@ EXPORT_SYMBOL(dvb_pll_env57h1xd5);
 /* Philips TDA6650/TDA6651
  * used in Panasonic ENV77H11D5
  */
-static void tda665x_bw(u8 *buf, int bandwidth)
+static void tda665x_bw(u8 *buf, u32 freq, int bandwidth)
 {
        if (bandwidth == BANDWIDTH_8_MHZ)
                buf[3] |= 0x08;
@@ -178,7 +178,7 @@ EXPORT_SYMBOL(dvb_pll_tda665x);
 /* Infineon TUA6034
  * used in LG TDTP E102P
  */
-static void tua6034_bw(u8 *buf, int bandwidth)
+static void tua6034_bw(u8 *buf, u32 freq, int bandwidth)
 {
        if (BANDWIDTH_7_MHZ != bandwidth)
                buf[3] |= 0x08;
@@ -198,6 +198,33 @@ struct dvb_pll_desc dvb_pll_tua6034 = {
 };
 EXPORT_SYMBOL(dvb_pll_tua6034);
 
+/* Philips FMD1216ME
+ * used in Medion Hybrid PCMCIA card and USB Box
+ */
+static void fmd1216me_bw(u8 *buf, u32 freq, int bandwidth)
+{
+       if (bandwidth == BANDWIDTH_8_MHZ && freq >= 158870000)
+               buf[3] |= 0x08;
+}
+
+struct dvb_pll_desc dvb_pll_fmd1216me = {
+       .name = "placeholder",
+       .min = 50870000,
+       .max = 858000000,
+       .setbw = fmd1216me_bw,
+       .count = 7,
+       .entries = {
+               { 143870000, 36213333, 166667, 0xbc, 0x41 },
+               { 158870000, 36213333, 166667, 0xf4, 0x41 },
+               { 329870000, 36213333, 166667, 0xbc, 0x42 },
+               { 441870000, 36213333, 166667, 0xf4, 0x42 },
+               { 625870000, 36213333, 166667, 0xbc, 0x44 },
+               { 803870000, 36213333, 166667, 0xf4, 0x44 },
+               { 999999999, 36213333, 166667, 0xfc, 0x44 },
+       }
+};
+EXPORT_SYMBOL(dvb_pll_fmd1216me);
+
 /* ----------------------------------------------------------- */
 /* code                                                        */
 
@@ -231,7 +258,7 @@ int dvb_pll_configure(struct dvb_pll_des
        buf[3] = desc->entries[i].cb2;
 
        if (desc->setbw)
-               desc->setbw(buf, bandwidth);
+               desc->setbw(buf, freq, bandwidth);
 
        if (debug)
                printk("pll: %s: div=%d | buf=0x%02x,0x%02x,0x%02x,0x%02x\n",
diff --git a/drivers/media/dvb/frontends/dvb-pll.h 
b/drivers/media/dvb/frontends/dvb-pll.h
--- a/drivers/media/dvb/frontends/dvb-pll.h
+++ b/drivers/media/dvb/frontends/dvb-pll.h
@@ -9,7 +9,7 @@ struct dvb_pll_desc {
        char *name;
        u32  min;
        u32  max;
-       void (*setbw)(u8 *buf, int bandwidth);
+       void (*setbw)(u8 *buf, u32 freq, int bandwidth);
        int  count;
        struct {
                u32 limit;
@@ -30,6 +30,7 @@ extern struct dvb_pll_desc dvb_pll_tua60
 extern struct dvb_pll_desc dvb_pll_env57h1xd5;
 extern struct dvb_pll_desc dvb_pll_tua6034;
 extern struct dvb_pll_desc dvb_pll_tda665x;
+extern struct dvb_pll_desc dvb_pll_fmd1216me;
 
 int dvb_pll_configure(struct dvb_pll_desc *desc, u8 *buf,
                      u32 freq, int bandwidth);
-
To unsubscribe from this list: send the line "unsubscribe bk-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