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.
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