On 01/17/15 00:42, Ray Jui wrote: [...]
+/* + * Can be expanded in the future if more interrupt status bits are utilized + */ +#define ISR_MASK (1<< IS_M_START_BUSY_SHIFT) + +static irqreturn_t bcm_iproc_i2c_isr(int irq, void *data) +{ + struct bcm_iproc_i2c_dev *iproc_i2c = data; + u32 status = readl(iproc_i2c->base + IS_OFFSET); + + status&= ISR_MASK; + + if (!status) + return IRQ_NONE; + + writel(status, iproc_i2c->base + IS_OFFSET); + complete_all(&iproc_i2c->done);
Looking over this code it seems to me there is always a single process waiting for iproc_i2c->done to complete. So using complete() here would suffice.
Regards, Arend
+ + return IRQ_HANDLED; +}
-- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html