On Mon, Jun 17, 2019 at 11:35 AM Neeraj Upadhyay <neeraju@xxxxxxxxxxxxxx> wrote: > From: Srinivas Ramana <sramana@xxxxxxxxxxxxxx> > > Introduce the irq_enable callback which will be same as irq_unmask > except that it will also clear the status bit before unmask. > > This will help in clearing any erroneous interrupts that would > have got latched when the interrupt is not in use. > > There may be devices like UART which can use the same gpio line > for data rx as well as a wakeup gpio when in suspend. The data that > was flowing on the line may latch the interrupt and when we enable > the interrupt before going to suspend, this would trigger the > unexpected interrupt. This change helps clearing the interrupt > so that these unexpected interrupts gets cleared. > > Signed-off-by: Srinivas Ramana <sramana@xxxxxxxxxxxxxx> > Signed-off-by: Neeraj Upadhyay <neeraju@xxxxxxxxxxxxxx> Overall this looks good to me, waiting for Bjorn's review. > Changes since v1: > - Extracted common code into __msm_gpio_irq_unmask(). Please don't name functions __like __that. > -static void msm_gpio_irq_unmask(struct irq_data *d) > +static void __msm_gpio_irq_unmask(struct irq_data *d, bool status_clear) Instead of __unclear __underscore __semantic use something really descriptive like static void msm_gpio_irq_clear_irq() That is what it does, right? Other than that it looks fine. Yours, Linus Walleij