> @@ -837,6 +839,57 @@ static int mtk_i2c_set_speed(struct mtk_i2c *i2c, unsigned int parent_clk) > return 0; > } > +static void i2c_dump_register(struct mtk_i2c *i2c) > +{ > + dev_err(i2c->dev, "SLAVE_ADDR: 0x%x, INTR_MASK: 0x%x\n", > + mtk_i2c_readw(i2c, OFFSET_SLAVE_ADDR), > + mtk_i2c_readw(i2c, OFFSET_INTR_MASK)); I think this is too verbose and should be a debugging only patch not really suited for upstream. But if you like it this way, then keep the verbosity. However, dev_err is too strong, this really needs to be dev_dbg. Timeouts can happen on an I2C bus, think about an EEPROM in a long erase cycle while you want to read it. Perfectly normal. > if (ret == 0) { > - dev_dbg(i2c->dev, "addr: %x, transfer timeout\n", msgs->addr); > + dev_err(i2c->dev, "addr: %x, transfer timeout\n", msgs->addr); > + i2c_dump_register(i2c); Needs to stay dev_dbg as well.