Loading drivers/i2c/busses/i2c-msm-geni.c +12 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,8 @@ static void geni_i2c_err(struct geni_i2c_dev *gi2c, int err) static int geni_i2c_prepare(struct geni_i2c_dev *gi2c) { u32 geni_ios = 0; if (gi2c->se_mode == UNINITIALIZED) { int proto = get_se_proto(gi2c->base); u32 se_mode; Loading @@ -254,6 +256,16 @@ static int geni_i2c_prepare(struct geni_i2c_dev *gi2c) return -ENXIO; } geni_ios = geni_read_reg_nolog(gi2c->base, SE_GENI_IOS); if ((geni_ios & 0x3) != 0x3) { //SCL:b'1, SDA:b'0 GENI_SE_DBG(gi2c->ipcl, true, gi2c->dev, "IO lines not in good state, Check power to slave\n"); if (!gi2c->is_le_vm) se_geni_resources_off(&gi2c->i2c_rsc); return -ENXIO; } se_mode = readl_relaxed(gi2c->base + GENI_IF_FIFO_DISABLE_RO); if (se_mode) { Loading Loading
drivers/i2c/busses/i2c-msm-geni.c +12 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,8 @@ static void geni_i2c_err(struct geni_i2c_dev *gi2c, int err) static int geni_i2c_prepare(struct geni_i2c_dev *gi2c) { u32 geni_ios = 0; if (gi2c->se_mode == UNINITIALIZED) { int proto = get_se_proto(gi2c->base); u32 se_mode; Loading @@ -254,6 +256,16 @@ static int geni_i2c_prepare(struct geni_i2c_dev *gi2c) return -ENXIO; } geni_ios = geni_read_reg_nolog(gi2c->base, SE_GENI_IOS); if ((geni_ios & 0x3) != 0x3) { //SCL:b'1, SDA:b'0 GENI_SE_DBG(gi2c->ipcl, true, gi2c->dev, "IO lines not in good state, Check power to slave\n"); if (!gi2c->is_le_vm) se_geni_resources_off(&gi2c->i2c_rsc); return -ENXIO; } se_mode = readl_relaxed(gi2c->base + GENI_IF_FIFO_DISABLE_RO); if (se_mode) { Loading