[linux-dvb] Pinnacle PCTV (Dazzle) 300i maybe i2c problems with newer code?

Tim Small tim at buttersideup.com
Tue Jan 10 22:37:00 CET 2006


Hartmut Hackmann wrote:

> I know the I2C bus and have saa7134 documentation. But i have no 
> experience
> with the MT352. The errata sheet does not mention a I2C bug. But the lost
> arbitration is interesting. Assuming there is only one master on the bus,

I have had a quick look at the 7134 I2C driver - I might not have time 
to do more work on it soon, so I thought I'd better share a couple of 
possible problems that I've noticed:

I haven't checked this against the 7134 datasheet, but:

Line 258 :                  if (!(msgs[i].flags & I2C_M_NOSTART) || 0 == 
i) {

Seems to say that "START", "ADDRESS" should only be sent on the first 
message of an i2c transaction (0 == i), this would seem to disagree with 
Documentation/i2c/i2c_protocol (maybe the 7134 does something clever 
automatically, I didn't check).

Also, the transfer is not restarted in a lost arbitration condition (not 
sure if this is a bug or not - maybe it's the job of the client driver 
to do this - I'm not sure)

The first problem might possibly cause trouble if the 352 driver 
switched to using multi-message i2c transactions, rather than single 
message

> this indicates that there either is wild oscillation or a protocol 
> problem
> with the MT352 resp. the card. Did somebody try to slow down the bus?

The 7134 only seems to support 100kHz, or 400kHz operation.  I haven't 
yet verified that the driver is always using 100kHz mode at the moment 
tho', or seen if there is a way to to force the i2c hardware to wait 
around.  I'll try and do some more on this in the next couple of days.

Cheers,

Tim.



More information about the linux-dvb mailing list