From: "Johannes Stezenbach" <[EMAIL PROTECTED]> > That means the double PSR read method you mentioned above is tested > and works on Windows? I'm sure MiHu will apply this to the Linux > saa7146 driver then.
Whoops, sorry, it reads the IICSTA register twice, of course, not the PSR. And yes, it works on Windows with the two cards I have, using the 275kHz bus clock (IIRC, I checked the data sheets on all components on the cards, and the lowest I2C clock for one component was 400kHz, so the 412.5kHz clock was out, and 275kHz appeared reasonably safe). FWIW, my code: - writes to IICTRF, IICSTA and then to MC2 (UPLD_IIC) - reads IICSTA once (ignoring the result) - reads IICSTA and loops while (IICSTA & (IICSTA_ERR | IICSTA_BUSY)) == IICSTA_BUSY, up to 100,000 times (the number is so high, so that you can also use the slowest I2C bus clock, in which it can take a couple thousand reads to finish; with 275kHz clock, IIRC it only reads about 100 times or so) These are all the SAA7146A register accesses my code makes during an I2C bus transfer. Again: I get _zero_ I2C errors with this code, it is working perfectly fine, and delivering the full I2C bus speed at the same time :) Regards, -- Robert Schlabbach e-mail: [EMAIL PROTECTED] Berlin, Germany -- Info: To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe linux-dvb" as subject.
