Hi Hans, [...] > --- a/drivers/i2c/busses/i2c-viai2c-common.c > +++ b/drivers/i2c/busses/i2c-viai2c-common.c > @@ -5,7 +5,7 @@ > #define VIAI2C_TIMEOUT (msecs_to_jiffies(1000)) > #define VIAI2C_STRETCHING_TIMEOUT 200 > > -static int viai2c_wait_bus_ready(struct viai2c *i2c) > +int viai2c_wait_bus_ready(struct viai2c *i2c) no, please, choose the rigth prototype at the beginning, don't double change things in the same series. > { > unsigned long timeout; > void __iomem *base = i2c->base; > @@ -23,7 +23,7 @@ static int viai2c_wait_bus_ready(struct viai2c *i2c) > return 0; > } > > -static int viai2c_wait_status(struct viai2c *i2c) > +int viai2c_wait_status(struct viai2c *i2c) > { > int ret = 0; > unsigned long time_left; > @@ -71,6 +71,9 @@ static irqreturn_t viai2c_isr(int irq, void *data) > > /* save the status and write-clear it */ > i2c->cmd_status = readw(i2c->base + VIAI2C_REG_ISR); > + if (!i2c->cmd_status) > + return IRQ_NONE; > + is this change related to this patch? can you put this at the beginning? Andi