Re: [PATCH] gpio: gpio-omap: fix level interrupt idling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 01.03.19 21:02, Tony Lindgren wrote:
> From: Russell King <rmk+kernel@xxxxxxxxxxxxxxx>
> 
> Tony notes that the GPIO module does not idle when level interrupts are
> in use, as the wakeup appears to get stuck.
> 
> After extensive investigation, it appears that the wakeup will only be
> cleared if the interrupt status register is cleared while the interrupt
> is enabled. However, we are currently clearing it with the interrupt
> disabled for level-based interrupts.
> 
> It is acknowledged that this observed behaviour conflicts with a
> statement in the TRM:
> 
> CAUTION
>   After servicing the interrupt, the status bit in the interrupt status
>   register (GPIOi.GPIO_IRQSTATUS_0 or GPIOi.GPIO_IRQSTATUS_1) must be
>   reset and the interrupt line released (by setting the corresponding
>   bit of the interrupt status register to 1) before enabling an
>   interrupt for the GPIO channel in the interrupt-enable register
>   (GPIOi.GPIO_IRQSTATUS_SET_0 or GPIOi.GPIO_IRQSTATUS_SET_1) to prevent
>   the occurrence of unexpected interrupts when enabling an interrupt
>   for the GPIO channel.
> 
> However, this does not appear to be a practical problem.
> 
> Further, as reported by Grygorii Strashko <grygorii.strashko@xxxxxx>,
> the TI Android kernel tree has an earlier similar patch as "GPIO: OMAP:
> Fix the sequence to clear the IRQ status" saying:
> 
>  if the status is cleared after disabling the IRQ then sWAKEUP will not
>  be cleared and gates the module transition
> 
> When we unmask the level interrupt after the interrupt has been handled,
> enable the interrupt and only then clear the interrupt. If the interrupt
> is still pending, the hardware will re-assert the interrupt status.
> 
> Should the caution note in the TRM prove to be a problem, we could
> use a clear-enable-clear sequence instead.
> 
> Cc: Aaro Koskinen <aaro.koskinen@xxxxxx>
> Cc: Grygorii Strashko <grygorii.strashko@xxxxxx>
> Cc: Keerthy <j-keerthy@xxxxxx>
> Cc: Peter Ujfalusi <peter.ujfalusi@xxxxxx>
> Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxx>
> [tony@xxxxxxxxxxx: updated comments based on an earlier TI patch]
> Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
> ---
> 
> Obviously no rush to get this into v5.0-rc cycle, but this should be
> tagged with Cc stable after people have reviewed and tested this.
> 
> ---
>  drivers/gpio/gpio-omap.c | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
> 

Thank you.
Acked-by: Grygorii Strashko <grygorii.strashko@xxxxxx>

-- 
Best regards,
grygorii



[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux