in drivers/i2c/busses/i2c-mxs.c, mxs_i2c_xfer_msg() function:
below codes are not correct:
err = wait_for_completion_interruptible_timeout(&dev->cmd_complete,
msecs_to_jiffies(1000)
);
if (err <= 0) {
mxs_i2c_reset(dev);
dev_dbg(dev->dev, "controller is timed out\n");
return -ETIMEDOUT;
}
It should be changed as belows:
err = wait_for_completion_interruptible_timeout(&dev->cmd_complete, msecs_to_jiffies(1000));
if (err == 0) {
mxs_i2c_reset(dev);
printk("I2C timeout\n");
return -ETIMEDOUT;
}
else if (err==(-ERESTARTSYS)) {
printk("I2C ERESTARTSYS\n");
for (i = 0; i < _NSIG_WORDS ; i++) printk("I2C signal:%d\n",current->pending.signal.sig[i]);
return -ETIMEDOUT;
}
else if (err<0){
printk("I2C unknown err:%d\n",err);
return -ETIMEDOUT;
}
Hi Jacky,
Have you got a last version of "i2c-mxs.c" I could use to solve my two issues :
Regards,
Sam.
Sam,
> Have you got a last version of "i2c-mxs.c"
I also have issues with I2C - where can I get this latest version? I've got all patches applied. Thanks in advance!
Arty
Hi Artem,
there is no last version of "i2c-mxs.c" for the kernel 2.6.35, but there is a new version with kernel 3.7. That's what we are doing now, passing to 3.7 in order to benefit from the new kernel.
Samuel
Thanks, I look forward for the update!