瑞芯微Rockchip开发者社区
直播中

陈秀珍

7年用户 897经验值
私信 关注
[问答]

请问I2C总线被挂起导致无法重启怎么解决?

请问I2C总线被挂起导致无法重启怎么解决?

回帖(1)

吴萍

2022-3-4 14:15:00
Platform: Rockchip
OS: Android 7.1.2
Kernel: 3.10

解决方案:直接去掉I2C通信同步锁

kerneldriversi2cbussesi2c-rockchip.c

static int rockchip_i2c_xfer(struct i2c_adapter *adap,
                        struct i2c_msg *msgs, int num)
{
        int ret;
        struct rockchip_i2c *i2c = i2c_get_adapdata(adap);
        unsigned long scl_rate = i2c->scl_rate;
        int can_sleep = !(in_atomic() || irqs_disabled());

        /*if (can_sleep) {
                mutex_lock(&i2c->suspend_lock);
                if (i2c->suspended) {
                        dev_err(i2c->dev, "i2c is suspendedn");
                        mutex_unlock(&i2c->suspend_lock);
                        return -EIO;
                }
        }*/
举报

更多回帖

发帖
×
20
完善资料,
赚取积分