Message ID | 20200227020407.17276-1-tony@atomide.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] Input: omap4-keypad - Configure interrupt as level | expand |
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.
* 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
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");
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(-)