[BUG] hid-cp2112 sda stuck low, doesn't clear

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi David,

I found a problem with the driver.  In this situation, the SDA line is
stuck low, but never clears, until cold rebooted.

I am using the CP2112 as a USB-to-I2C adapter with two slave devices.
Kernel version is 4.9.88.  CP2112 silicon revision is F03.

>From userspace, if I ctrl+c (^c) the output of the device file of one
of the slaves, this occurs:

[  110.877415] cp2112 0003:10C4:EA90.0001: Transfer timed out, cancelling.
[  111.909193] cp2112 0003:10C4:EA90.0001: Transfer timed out, cancelling.
[  112.941004] cp2112 0003:10C4:EA90.0001: Transfer timed out, cancelling.
[  113.973812] cp2112 0003:10C4:EA90.0001: Transfer timed out, cancelling.
[  115.005627] cp2112 0003:10C4:EA90.0001: Transfer timed out, cancelling.
[  116.037474] cp2112 0003:10C4:EA90.0001: Transfer timed out, cancelling.
[  117.068261] cp2112 0003:10C4:EA90.0001: Transfer timed out, cancelling.
[  118.100093] cp2112 0003:10C4:EA90.0001: Transfer timed out, cancelling.


The log message continues indefinitely; the clock is stuck high and
the data line is stuck low.

When we swap to a different I2C adapter in hardware, the bus lockup no
longer occurs.

Is there a modification I can make to the driver so that it can clear
the bus, or recover the CP2112?  I can forward some I2C traces if
needed.

Andrew



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux