295.53: I2C Bus access returns EIO errors

Problem is fairly simple, I am observing EIO errors when accessing the I2C bus (via i2c_smbus_read_byte_data and i2c_smbus_write_byte_data) shortly (a few seconds) after launching the Xserver. This happens about 10-20% of the time on a fresh powerup, so I am not sure if there are some timing requirements (i.e settling time) or other issues I need to be aware of when accessing the I2C Bus.

The documentation in the following location provides no clues:

Other than launching X with the verbose level set to 6 (-- -logverbose 6), are there any other ways to obtain more debug information from the I2C adapter within the driver? What the conditions under which the driver will return EIO errors?

I’ve got an nvidia bug report log for the case when the bus is functional and another bug report log for when the bus isn’t functional (log created after the EIO errors are observed), hopefully it provides some clues.

Linux localhost #2 SMP PREEMPT Tue Feb 5 14:47:44 EST 2013 i686 i686 i386 GNU/Linux

Nvidia hardware:
Embedded G73, Dev:ven ID = 0x10DE:0x0398

PS, I don’t see any options in the GUI here to upload an attachment for the bug report logs.
nvidia-bug-report.log.failure.bmp (1.3 MB)
nvidia-bug-report.log.good.bmp (954 KB)

Attachments are there now.

In the log files, it is the ioctl accesses with prefix “i2c-adapter i2c-5:” that are of concern.

Any input would be appreciated.

What are you using to access the i2c bus? Can you describe the queries it’s trying to make?

I am using the following API:


It is these functions that issue the ioctl to the nvidia i2c adapter. The queries are a simple byte accesses to registers.