> static int xiic_bus_busy(struct xiic_i2c *i2c) > @@ -602,16 +601,21 @@ static void xiic_start_send(struct xiic_i2c *i2c) > static irqreturn_t xiic_isr(int irq, void *dev_id) > { > struct xiic_i2c *i2c = dev_id; > - > - spin_lock(&i2c->lock); > + u32 pend, isr, ier; > + irqreturn_t ret = IRQ_HANDLED; > + /* Do not processes a devices interrupts if the device has no > + * interrupts pending > + */ Shouldn't you init 'ret' to IRQ_NONE then?