Re: [PATCH RESEND v2] gpio: omap: Add omap_gpio_disable/enable_irq calls
From: Kevin Hilman
Date: Tue Nov 05 2024 - 19:06:56 EST
Bin Liu <b-liu@xxxxxx> writes:
> On Tue, Nov 05, 2024 at 12:47:58PM -0600, Judith Mendez wrote:
>> Hi Kevin,
>>
>> On 11/1/24 9:29 AM, Kevin Hilman wrote:
>> > Hi Judith,
>> >
>> > Judith Mendez <jm@xxxxxx> writes:
>> >
>> > > From: Bin Liu <b-liu@xxxxxx>
>> > >
>> > > Add omap_gpio_disable_irq and omap_gpio_enable_irq
>> > > calls in gpio-omap.
>> > >
>> > > Currently, kernel cannot disable gpio interrupts in
>> > > case of a irq storm, so add omap_gpio_disable/enable_irq
>> > > so that interrupts can be disabled/enabled.
>> > >
>> > > Signed-off-by: Bin Liu <b-liu@xxxxxx>
>> > > [Judith: Add commit message]
>> > > Signed-off-by: Judith Mendez <jm@xxxxxx>
>> >
>> > Thanks for this patch. Can you give a bit more context on the
>> > problem(s) this solves and on which SoCs/platforms it was
>> > developed/validated?
>>
>> Sorry for the late response. Patch was tested/developed on am335x
>> device BBB, If you feed a PWM signal at 200KHz frequency to
>> GPIO, and execute gpiomon 0 12 &, Linux will be unresponsive
>> even after CTRL+C without these 2 functions in this patch. Once
>> this patch is applied, you can get console back after hitting
>> CTRL+C and then proceed to kill gpiomon.
>
> In addtion to Judith's explanation, when the PWM is applied to a GPIO
> pin, kernel detects the interrupt storm and disables the irq, however,
> without these callbacks, this gpio platform driver doesn't really
> disable the interrupt in the gpio controller, so the interrupt storm is
> still happening and handled by this gpio controller driver then causes
> Linux unresponsive.
Excellent! Thank you both for the detailed explanations.
Kevin