On Wed, 23 May 2007, Manu Abraham wrote: > Johannes Stezenbach wrote: > > On Sun, May 20, 2007, e9hack wrote: > >> With the attached patch, it works for the stv0297 functions. It > >> doesn't solve the problem, why I've wrote the initial patch. I need a > >> dump from the registers of the stv0297. I've attach a second patch. > >> stv0297_attach() inserts a wrapper between i2ctransfer() and the > >> transfer function of the saa7146. The add/del functions for the > >> wrapper are a little bit > >> dirty. I didn't find a clean way for the add/del function. > > > > Hm, I was trying to tell you that the problem is in i2cdump, > > not in saa7146 or stv0297. > > > > i2cdump is simply limited to simple SMBUS-like transfers, > > but I think it wouldn't be difficult to extend it or > > write a new utility which uses the I2C_RDWR ioctl to > > perform the transfer as required by stv0297. > > I have been looking at the STV0297D/E datasheets specifically to check > this issue (and i don't see any differences than how it is "potentially' > differently from other devices): > > HTH > > > The STV0297D/E datasheet defines the transaction thus .. > > I2C Read: > > START > SLAVE ADDRESS > R/W > ACK (STV0297) > BASE ADDRESS > ACK (STV0297) > STOP <------ this is different > START > SLAVE ADDRESS > R/W > ACK (STV0297) > DATA BYTE 1 > ACK (Host) > DATA BYTE n > ACK (Host) > STOP The emulated smbus commands that i2cdump uses don't have a stop between writing the base address and reading the data bytes. Check Documentation/i2c/smbus-protocol: SMBus Read Byte Data S Addr Wr [A] Comm [A] S Addr Rd [A] [Data] NA P What the stv0297 wants is: S Addr Wr [A] Comm [A] P S Addr Rd [A] [Data] NA P _______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb