[PATCH] DVB: lgdt330x frontend: some bug fixes & add lgdt3303 support

2005-08-09 Thread Linux Kernel Mailing List
tree 1978eafdc5a50528652bf5b8e950afe03af5d5d2
parent e179d8b0552e2fdb45c6022c589af945f8cbecbe
author Michael Krufky <[EMAIL PROTECTED]> Wed, 10 Aug 2005 07:48:54 -0700
committer Linus Torvalds <[EMAIL PROTECTED]> Wed, 10 Aug 2005 07:59:52 -0700

[PATCH] DVB: lgdt330x frontend: some bug fixes & add lgdt3303 support

This patch removes the tda9887 stuff from lgdt330x.c.  It's experimental code
which wasn't supposed to leak out and we don't want it in 2.6.13.

Signed-off-by: Michael Krufky <[EMAIL PROTECTED]>
Acked-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 drivers/media/dvb/frontends/lgdt330x.c |   35 -
 1 files changed, 35 deletions(-)

diff --git a/drivers/media/dvb/frontends/lgdt330x.c 
b/drivers/media/dvb/frontends/lgdt330x.c
--- a/drivers/media/dvb/frontends/lgdt330x.c
+++ b/drivers/media/dvb/frontends/lgdt330x.c
@@ -172,38 +172,6 @@ static int lgdt330x_SwReset(struct lgdt3
}
 }
 
-#ifdef MUTE_TDA9887
-static int i2c_write_ntsc_demod (struct lgdt330x_state* state, u8 buf[2])
-{
-   struct i2c_msg msg =
-   { .addr = 0x43,
- .flags = 0,
- .buf = buf,
- .len = 2 };
-   int err;
-
-   if ((err = i2c_transfer(state->i2c, &msg, 1)) != 1) {
-   printk(KERN_WARNING "lgdt330x: %s error (addr %02x <- 
%02x, err = %i)\n", __FUNCTION__, msg.buf[0], msg.buf[1], err);
-   if (err < 0)
-   return err;
-   else
-   return -EREMOTEIO;
-   }
-   return 0;
-}
-
-static void fiddle_with_ntsc_if_demod(struct lgdt330x_state* state)
-{
-   // Experimental code
-   u8 buf0[] = {0x00, 0x20};
-   u8 buf1[] = {0x01, 0x00};
-   u8 buf2[] = {0x02, 0x00};
-
-   i2c_write_ntsc_demod(state, buf0);
-   i2c_write_ntsc_demod(state, buf1);
-   i2c_write_ntsc_demod(state, buf2);
-}
-#endif
 
 static int lgdt330x_init(struct dvb_frontend* fe)
 {
@@ -267,9 +235,6 @@ static int lgdt330x_init(struct dvb_fron
chip_name = "LGDT3303";
err = i2c_write_demod_bytes(state, lgdt3303_init_data,

sizeof(lgdt3303_init_data));
-#ifdef MUTE_TDA9887
-   fiddle_with_ntsc_if_demod(state);
-#endif
break;
default:
chip_name = "undefined";
-
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


[PATCH] dvb: lgdt330x frontend: some bug fixes & add lgdt3303 support

2005-08-08 Thread Linux Kernel Mailing List
tree 71410cd2ad9f4bdab2f2466a6621ba2930f16b5f
parent 66aea23ff84ca81bfaeaf7d63e248b873f5c2616
author Michael Krufky <[EMAIL PROTECTED]> Mon, 08 Aug 2005 23:22:43 -0700
committer Linus Torvalds <[EMAIL PROTECTED]> Tue, 09 Aug 2005 01:49:57 -0700

[PATCH] dvb: lgdt330x frontend: some bug fixes & add lgdt3303 support

- Structural changes within lgdt330x driver, framework now supports
  both chips... tested OK on lgdt3302 and lgdt3303.
- Add LG/TUA6034 dvb_pll_desc for ATSC with LG TDVS-H062F & DViCO FusionHDTV5.
- Fixed LGDT330X signal strength: For now, always set it to 0.
- Corrected LGDT330X boundary condition error in read_snr: dB calculation.

Signed-off-by: Mac Michaels <[EMAIL PROTECTED]>
Signed-off-by: Michael Krufky <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 drivers/media/dvb/frontends/dvb-pll.c   |   16 
 drivers/media/dvb/frontends/dvb-pll.h   |1 
 drivers/media/dvb/frontends/lgdt330x.c  |  549 +++-
 drivers/media/dvb/frontends/lgdt330x.h  |   16 
 drivers/media/dvb/frontends/lgdt330x_priv.h |8 
 drivers/media/video/cx88/cx88-dvb.c |   26 +
 6 files changed, 443 insertions(+), 173 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
@@ -225,6 +225,22 @@ struct dvb_pll_desc dvb_pll_tua6034 = {
 };
 EXPORT_SYMBOL(dvb_pll_tua6034);
 
+/* Infineon TUA6034
+ * used in LG Innotek TDVS-H062F
+ */
+struct dvb_pll_desc dvb_pll_tdvs_tua6034 = {
+   .name  = "LG/Infineon TUA6034",
+   .min   =  5400,
+   .max   = 86300,
+   .count = 3,
+   .entries = {
+   {  16000, 4400, 62500, 0xce, 0x01 },
+   {  45500, 4400, 62500, 0xce, 0x02 },
+   {  9, 4400, 62500, 0xce, 0x04 },
+   },
+};
+EXPORT_SYMBOL(dvb_pll_tdvs_tua6034);
+
 /* Philips FMD1216ME
  * used in Medion Hybrid PCMCIA card and USB Box
  */
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
@@ -31,6 +31,7 @@ extern struct dvb_pll_desc dvb_pll_unkno
 extern struct dvb_pll_desc dvb_pll_tua6010xs;
 extern struct dvb_pll_desc dvb_pll_env57h1xd5;
 extern struct dvb_pll_desc dvb_pll_tua6034;
+extern struct dvb_pll_desc dvb_pll_tdvs_tua6034;
 extern struct dvb_pll_desc dvb_pll_tda665x;
 extern struct dvb_pll_desc dvb_pll_fmd1216me;
 extern struct dvb_pll_desc dvb_pll_tded4;
diff --git a/drivers/media/dvb/frontends/lgdt330x.c 
b/drivers/media/dvb/frontends/lgdt330x.c
--- a/drivers/media/dvb/frontends/lgdt330x.c
+++ b/drivers/media/dvb/frontends/lgdt330x.c
@@ -1,11 +1,8 @@
 /*
- *Support for LGDT3302 & LGDT3303 (DViCO FusionHDTV Gold) - VSB/QAM
+ *Support for LGDT3302 and LGDT3303 - VSB/QAM
  *
  *Copyright (C) 2005 Wilson Michaels <[EMAIL PROTECTED]>
  *
- *Based on code from  Kirk Lapray <[EMAIL PROTECTED]>
- *   Copyright (C) 2005
- *
  *This program is free software; you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by
  *the Free Software Foundation; either version 2 of the License, or
@@ -25,11 +22,13 @@
 /*
  *  NOTES ABOUT THIS DRIVER
  *
- * This driver supports DViCO FusionHDTV Gold under Linux.
+ * This Linux driver supports:
+ *   DViCO FusionHDTV 3 Gold-Q
+ *   DViCO FusionHDTV 3 Gold-T
+ *   DViCO FusionHDTV 5 Gold
  *
  * TODO:
- * BER and signal strength always return 0.
- * Include support for LGDT3303
+ * signal strength always returns 0.
  *
  */
 
@@ -41,7 +40,6 @@
 #include 
 
 #include "dvb_frontend.h"
-#include "dvb-pll.h"
 #include "lgdt330x_priv.h"
 #include "lgdt330x.h"
 
@@ -70,55 +68,37 @@ struct lgdt330x_state
u32 current_frequency;
 };
 
-static int i2c_writebytes (struct lgdt330x_state* state,
-  u8 addr, /* demod_address or pll_address */
+static int i2c_write_demod_bytes (struct lgdt330x_state* state,
   u8 *buf, /* data bytes to send */
   int len  /* number of bytes to send */ )
 {
-   u8 tmp[] = { buf[0], buf[1] };
struct i2c_msg msg =
-   { .addr = addr, .flags = 0, .buf = tmp,  .len = 2 };
-   int err;
+   { .addr = state->config->demod_address,
+ .flags = 0,
+ .buf = buf,
+ .len = 2 };
int i;
+   int err;
 
-   for (i=1; ii2c, &msg, 1)) != 1) {
-   printk(KERN_WARNING "lgdt330x: %s error (addr %02x <- 
%02x, err == %i)\n", __FUNCTION__, addr, buf[0], err);
+