2014-05-04 7:14 GMT+04:00 Axel Lin <axel....@ingics.com>: > Current code sets both irq_ack and irq_mask callbacks to vt8500_irq_mask(). > However, vt8500_irq_mask does not clear interrupt enable bit when the > interrupt > trigger mode is edge trigger. > > This patch moves the code clearing Interrupt Status Register bit to irq_ack(). > Make irq_mask() always clear interrupt enable bit for all interrupt trigger > mode. > > According to the datasheet, the Interrupt Status Register is written one to > clear(Write 0 has no effect). So we don't need a read-modify-write operation > for clearing a bit in interrupt status register. > > Signed-off-by: Axel Lin <axel....@ingics.com> > --- > Resend and also CC: vt8500-wm8505-linux-ker...@googlegroups.com. > I appreciate if someone can test this patch.
Axel, I believe the change makes perfect sense. Current code seems to be based on my original code that was in turn based on very limited understanding of the hardware, and furthermore I don't think that any of the existing drivers use edge-triggered interrupts anyway. The way you've structured it seems more logical, so I would be happy for this to be merged. Just booted a kernel with this patch on my WM8850, and everything seems to work fine. Can't really say 'Tested-by', though, given the above (no existing uses of edge-triggered interrupts that I'm aware of). Thanks a lot, Alexey -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/