This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Bug: soft lock up during I2C write using i2c-dev driver.

Other Parts Discussed in Thread: AM3517

Hi,

I am using 2.6.32 on AM3517 platform. The kernel goes into a soft lock up during a I2c write using the i2c-dev driver.

The userspace application does an i2c access every 1s, most of the i2c access are successful but a few results in lock up condition.

The same i2c bus is shared by another Master device which sends a i2c brodcast message every 2s.

###############################################################

Here is the log i get on the debug terminal.

BUG: soft lockup - CPU#0 stuck for 61s! [I2cTsk:434]
Modules linked in: cDio

Pid: 434, comm:              I2cTsk
CPU: 0    Not tainted  (2.6.32-ts-armv7l #31)
PC is at omap_i2c_isr+0x2ac/0x384
LR is at omap_i2c_isr+0x5c/0x384
pc : [<c0210bcc>]    lr : [<c021097c>]    psr: 40000113
sp : c1d51ce0  ip : 0000003c  fp : 00008601
r10: 00008601  r9 : 00000000  r8 : 00000000
r7 : 0000601f  r6 : 00000001  r5 : 00005000  r4 : c78e5200
r3 : 00000003  r2 : fa060000  r1 : 00000002  r0 : 00000012
Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 10c5387d  Table: 81a88019  DAC: 00000015

 Note: After seeing the above log i suspect kernel gets stuck at the ISR, but could'nt figure out which interrupt is getting triggerred.

Following are the interrupts enabled for I2cAdapter during a write operation

/* Enable interrupts */

dev->iestate = (OMAP_I2C_IE_XRDY | OMAP_I2C_IE_RRDY |

                        OMAP_I2C_IE_ARDY | OMAP_I2C_IE_NACK |

                        OMAP_I2C_IE_AL)  | ((dev->fifo_size) ?

                                (OMAP_I2C_IE_RDR | OMAP_I2C_IE_XDR) : 0);

        omap_i2c_write_reg(dev, OMAP_I2C_IE_REG, dev->iestate);

Please share your thoughts if you have faced similar problems.

Please confirm whether Linux 2.6.32 supports multi master i2c bus configurations ?

- Murali K V