<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:DejaVu Serif">
<p>On 2008 May 7 Wednesday 20:23:37 you wrote:</p>
<p>> Hi, what I2C addresses are you using for each device?</p>
<p></p>
<p>Hi, Rod:</p>
<p></p>
<p>Sorry for late replying...</p>
<p></p>
<p>Following is my patch to v4l-dvb (v4l-dvb-4c4fd6b8755c)</p>
<p>The patch is mainly adapted from Newbigin's patch, but the case in saa7134_board_init2 is talltolly a nonsense guessing... lol</p>
<p></p>
<p>Ask a newbie question... lol</p>
<p>What's the role of I2C plays in between these chips?</p>
<p></p>
<p>linleno</p>
<p>---</p>
<p></p>
<p>diff -ru v4l-dvb-4c4fd6b8755c-ori/linux/drivers/media/video/saa7134/saa7134-cards.c v4l-dvb-4c4fd6b8755c/linux/drivers/media/video/saa7134/saa7134-cards.c</p>
<p>--- v4l-dvb-4c4fd6b8755c-ori/linux/drivers/media/video/saa7134/saa7134-cards.c 2008-05-02 18:51:27.000000000 +0800</p>
<p>+++ v4l-dvb-4c4fd6b8755c/linux/drivers/media/video/saa7134/saa7134-cards.c 2008-05-08 22:42:06.000000000 +0800</p>
<p>@@ -5936,6 +5936,7 @@</p>
<p> case SAA7134_BOARD_AVERMEDIA_SUPER_007:</p>
<p> case SAA7134_BOARD_TWINHAN_DTV_DVB_3056:</p>
<p> case SAA7134_BOARD_CREATIX_CTX953:</p>
<p>+ case SAA7134_BOARD_VIDEOMATE_T750:</p>
<p> {</p>
<p> /* this is a hybrid board, initialize to analog mode</p>
<p> * and configure firmware eeprom address</p>
<p>diff -ru v4l-dvb-4c4fd6b8755c-ori/linux/drivers/media/video/saa7134/saa7134-dvb.c v4l-dvb-4c4fd6b8755c/linux/drivers/media/video/saa7134/saa7134-dvb.c</p>
<p>--- v4l-dvb-4c4fd6b8755c-ori/linux/drivers/media/video/saa7134/saa7134-dvb.c 2008-05-02 18:51:27.000000000 +0800</p>
<p>+++ v4l-dvb-4c4fd6b8755c/linux/drivers/media/video/saa7134/saa7134-dvb.c 2008-05-08 22:42:54.000000000 +0800</p>
<p>@@ -40,6 +40,8 @@</p>
<p> #include "tda1004x.h"</p>
<p> #include "nxt200x.h"</p>
<p> #include "tuner-xc2028.h"</p>
<p>+#include "zl10353.h"</p>
<p>+#include "qt1010.h"</p>
<p></p>
<p> #include "tda10086.h"</p>
<p> #include "tda826x.h"</p>
<p>@@ -937,6 +939,17 @@</p>
<p> .demod_address = 0x0a,</p>
<p> };</p>
<p></p>
<p>+static struct zl10353_config videomate_t750_zl10353_config = {</p>
<p>+ .demod_address = 0x0f,</p>
<p>+ .no_tuner = 0,</p>
<p>+ .parallel_ts = 1,</p>
<p>+};</p>
<p>+</p>
<p>+static struct qt1010_config videomate_t750_qt1010_config = {</p>
<p>+ .i2c_address = 0x62</p>
<p>+};</p>
<p>+</p>
<p>+</p>
<p> /* ==================================================================</p>
<p> * Core code</p>
<p> */</p>
<p>@@ -1263,15 +1276,33 @@</p>
<p> goto dettach_frontend;</p>
<p> break;</p>
<p> case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:</p>
<p>-#if 0</p>
<p>- /*FIXME: What frontend does Videomate T750 use? */</p>
<p>- case SAA7134_BOARD_VIDEOMATE_T750:</p>
<p>-#endif</p>
<p> dev->dvb.frontend = dvb_attach(mt352_attach,</p>
<p> &avermedia_e506r_mt352_dev,</p>
<p> &dev->i2c_adap);</p>
<p> attach_xc3028 = 1;</p>
<p> break;</p>
<p>+#if 1</p>
<p>+ /*FIXME: What frontend does Videomate T750 use? */</p>
<p>+ case SAA7134_BOARD_VIDEOMATE_T750:</p>
<p>+ printk("Compro VideoMate T750 DVB setup\n");</p>
<p>+ dev->dvb.frontend = dvb_attach(zl10353_attach,</p>
<p>+ &videomate_t750_zl10353_config,</p>
<p>+ &dev->i2c_adap);</p>
<p>+ if (dev->dvb.frontend != NULL) {</p>
<p>+ printk("Attaching pll\n");</p>
<p>+ // if there is a gate function then the i2c bus breaks.....!</p>
<p>+ dev->dvb.frontend->ops.i2c_gate_ctrl = 0;</p>
<p>+</p>
<p>+ if (dvb_attach(qt1010_attach,</p>
<p>+ dev->dvb.frontend,</p>
<p>+ &dev->i2c_adap,</p>
<p>+ &videomate_t750_qt1010_config) == NULL)</p>
<p>+ {</p>
<p>+ wprintk("error attaching QT1010\n");</p>
<p>+ }</p>
<p>+ }</p>
<p>+ break;</p>
<p>+#endif</p>
<p> case SAA7134_BOARD_MD7134_BRIDGE_2:</p>
<p> dev->dvb.frontend = dvb_attach(tda10086_attach,</p>
<p> &sd1878_4m, &dev->i2c_adap);</p>
<p></p>
</body></html>