Messages in this thread | | | Date | Tue, 10 Nov 2020 15:28:13 -0600 | From | Bjorn Andersson <> | Subject | Re: [PATCH] pinctrl: qcom: Move clearing pending IRQ to .irq_request_resources callback |
| |
On Tue 10 Nov 07:31 CST 2020, Linus Walleij wrote:
> On Thu, Nov 5, 2020 at 8:38 AM Maulik Shah <mkshah@codeaurora.org> wrote: > > > When GPIOs that are routed to PDC are used as output they can still latch > > the IRQ pending at GIC. As a result the spurious IRQ was handled when the > > client driver change the direction to input to starts using it as IRQ. > > > > Currently such erroneous latched IRQ are cleared with .irq_enable callback > > however if the driver continue to use GPIO as interrupt and invokes > > disable_irq() followed by enable_irq() then everytime during enable_irq() > > previously latched interrupt gets cleared. > > > > This can make edge IRQs not seen after enable_irq() if they had arrived > > after the driver has invoked disable_irq() and were pending at GIC. > > > > Move clearing erroneous IRQ to .irq_request_resources callback as this is > > the place where GPIO direction is changed as input and its locked as IRQ. > > > > While at this add a missing check to invoke msm_gpio_irq_clear_unmask() > > from .irq_enable callback only when GPIO is not routed to PDC. > > > > Fixes: e35a6ae0eb3a ("pinctrl/msm: Setup GPIO chip in hierarchy") > > Signed-off-by: Maulik Shah <mkshah@codeaurora.org> > > This looks critical so I applied it for fixes so we get some > rotation in linux-next. > > If Bjorn has other opinions he will tell us :) >
No objections, the patch looks reasonable to me.
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Regards, Bjorn
| |