[1/2] Input: omap4-keypad - Configure interrupt as level
diff mbox series

Message ID 20200227020407.17276-1-tony@atomide.com
State New
Headers show
Series
  • [1/2] Input: omap4-keypad - Configure interrupt as level
Related show

Commit Message

Tony Lindgren Feb. 27, 2020, 2:04 a.m. UTC
The interrupt should be level high for SoC internal devices.
Otherwise interrupts may not be seen after a wake-up event.

Cc: Arthur Demchenkov <spinal.by@gmail.com>
Cc: Merlijn Wajer <merlijn@wizzup.org>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 drivers/input/keyboard/omap4-keypad.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Dmitry Torokhov March 6, 2020, 6:58 p.m. UTC | #1
Hi Tony,

On Wed, Feb 26, 2020 at 06:04:06PM -0800, Tony Lindgren wrote:
> The interrupt should be level high for SoC internal devices.
> Otherwise interrupts may not be seen after a wake-up event.
> 
> Cc: Arthur Demchenkov <spinal.by@gmail.com>
> Cc: Merlijn Wajer <merlijn@wizzup.org>
> Cc: Pavel Machek <pavel@ucw.cz>
> Cc: Sebastian Reichel <sre@kernel.org>
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> ---
>  drivers/input/keyboard/omap4-keypad.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/input/keyboard/omap4-keypad.c b/drivers/input/keyboard/omap4-keypad.c
> --- a/drivers/input/keyboard/omap4-keypad.c
> +++ b/drivers/input/keyboard/omap4-keypad.c
> @@ -344,7 +344,8 @@ static int omap4_keypad_probe(struct platform_device *pdev)
>  	}
>  
>  	error = request_threaded_irq(keypad_data->irq, omap4_keypad_irq_handler,
> -				     omap4_keypad_irq_thread_fn, IRQF_ONESHOT,
> +				     omap4_keypad_irq_thread_fn,
> +				     IRQF_TRIGGER_HIGH | IRQF_ONESHOT,

Can't we rely on DT/platform to configure this properly?

Thanks.
Tony Lindgren March 6, 2020, 7:04 p.m. UTC | #2
* Dmitry Torokhov <dmitry.torokhov@gmail.com> [200306 18:58]:
> Hi Tony,
> 
> On Wed, Feb 26, 2020 at 06:04:06PM -0800, Tony Lindgren wrote:
> > The interrupt should be level high for SoC internal devices.
> > Otherwise interrupts may not be seen after a wake-up event.
> > 
> > Cc: Arthur Demchenkov <spinal.by@gmail.com>
> > Cc: Merlijn Wajer <merlijn@wizzup.org>
> > Cc: Pavel Machek <pavel@ucw.cz>
> > Cc: Sebastian Reichel <sre@kernel.org>
> > Signed-off-by: Tony Lindgren <tony@atomide.com>
> > ---
> >  drivers/input/keyboard/omap4-keypad.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/input/keyboard/omap4-keypad.c b/drivers/input/keyboard/omap4-keypad.c
> > --- a/drivers/input/keyboard/omap4-keypad.c
> > +++ b/drivers/input/keyboard/omap4-keypad.c
> > @@ -344,7 +344,8 @@ static int omap4_keypad_probe(struct platform_device *pdev)
> >  	}
> >  
> >  	error = request_threaded_irq(keypad_data->irq, omap4_keypad_irq_handler,
> > -				     omap4_keypad_irq_thread_fn, IRQF_ONESHOT,
> > +				     omap4_keypad_irq_thread_fn,
> > +				     IRQF_TRIGGER_HIGH | IRQF_ONESHOT,
> 
> Can't we rely on DT/platform to configure this properly?

Oops yeah you're right, and we already have that set with
IRQ_TYPE_LEVEL_HIGH in dts.

Sorry I was again diffing against the old v3.0.8 vendor kernel
trying to figure out what they were doing for the lost keys
and spotted this change :)

So this patch can be just ignored.

Regards,

Tony

Patch
diff mbox series

diff --git a/drivers/input/keyboard/omap4-keypad.c b/drivers/input/keyboard/omap4-keypad.c
--- a/drivers/input/keyboard/omap4-keypad.c
+++ b/drivers/input/keyboard/omap4-keypad.c
@@ -344,7 +344,8 @@  static int omap4_keypad_probe(struct platform_device *pdev)
 	}
 
 	error = request_threaded_irq(keypad_data->irq, omap4_keypad_irq_handler,
-				     omap4_keypad_irq_thread_fn, IRQF_ONESHOT,
+				     omap4_keypad_irq_thread_fn,
+				     IRQF_TRIGGER_HIGH | IRQF_ONESHOT,
 				     "omap4-keypad", keypad_data);
 	if (error) {
 		dev_err(&pdev->dev, "failed to register interrupt\n");