Neville H Chandler wrote: > > Gunther, > > I patched bttv-0.7.57/tools/eeprom.c with the patch you sent. Here is > the output of 'detect' > and 'eeprom -x'. > ------------- output of "./detect" > 0xa0: eeprom (Hauppauge boards) Oh, detect doesn't show MSP here neither: 0x30: ??? 0xa0: eeprom (Hauppauge boards) Please apply the patch below, as new i2c code hogs addresses. Now I have: 0x30: ??? <--- this is infrared, afaik 0x80: errno=16 (Device or resource busy) msp34xx/tea6300 sound processor 0xa0: eeprom (Hauppauge boards) 0xc2: errno=16 (Device or resource busy) tuner > ------------- output of "./eeprom -x" ... > Audio: MSP3435 The eeprom output is fine, MSP3435 is documented to have 3 possible i2c addresses : 0x80, 0x84, 0x88. Can you hack bttv to probe the others, too? (Beware of address shifting in i2c layer !) Please re-exercise after warm-boot from windows (after having used WinTV) to linux (to make sure if we miss any "new" hw initialization). Regards, Gunther P.S. Gerd, please apply this patch for your bttv-0.7.58/tools, if you like. --- bttv-0.7.56/tools/detect.c Fri Oct 20 20:06:03 2000 +++ bttv-0.7.57/tools/detect.c Mon Feb 26 20:38:36 2001 @@ -57,10 +57,13 @@ exit(1); } for (i=0; i < 256; i += 2){ - ioctl(f,I2C_SLAVE,i>>1); - fprintf(stderr,"0x%x\r",i); - if (-1 != read(f,b,0)) { + int r,er; + r=ioctl(f,I2C_SLAVE,i>>1); + er=errno; + fprintf(stderr," 0x%x\r",i); + if ( (-1 != read(f,b,0)) || r) { printf("0x%x: ",i); + if (r) printf("errno=%d (%s) ", er, strerror(er)); for (j = 0; known[j].name != NULL; j++) { if (known[j].addr == i) { printf("%s\n",known[j].name);