Re: [PATCH 2/3] Input: axp20x-pek - Respect userspace wakeup configuration
From: Dmitry Torokhov
Date: Mon Jan 13 2020 - 16:39:21 EST
On Mon, Jan 13, 2020 at 11:48:35AM +0100, Hans de Goede wrote:
> Hi,
>
> On 13-01-2020 04:20, Samuel Holland wrote:
> > Unlike most other power button drivers, this driver unconditionally
> > enables its wakeup IRQ. It should be using device_may_wakeup() to
> > respect the userspace configuration of wakeup sources.
> >
> > Because the AXP20x MFD device uses regmap-irq, the AXP20x PEK IRQs are
> > nested off of regmap-irq's threaded interrupt handler. The device core
> > ignores such interrupts, so to actually disable wakeup, we must
> > explicitly disable all non-wakeup interrupts during suspend.
> >
> > Signed-off-by: Samuel Holland <samuel@xxxxxxxxxxxx>
> > ---
> > drivers/input/misc/axp20x-pek.c | 42 ++++++++++++++++++++++++++++++++-
> > 1 file changed, 41 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/input/misc/axp20x-pek.c b/drivers/input/misc/axp20x-pek.c
> > index 7d0ee5bececb..38cd4a4aeb65 100644
> > --- a/drivers/input/misc/axp20x-pek.c
> > +++ b/drivers/input/misc/axp20x-pek.c
> > @@ -280,7 +280,7 @@ static int axp20x_pek_probe_input_device(struct axp20x_pek *axp20x_pek,
> > }
> > if (axp20x_pek->axp20x->variant == AXP288_ID)
> > - enable_irq_wake(axp20x_pek->irq_dbr);
> > + device_init_wakeup(&pdev->dev, true);
> > return 0;
> > }
> > @@ -352,6 +352,45 @@ static int axp20x_pek_probe(struct platform_device *pdev)
> > return 0;
> > }
> > +#if CONFIG_PM_SLEEP
>
> As the kbuild test robot pointed out, you need to use #ifdef here.
I prefer __maybe_unused as this gives more compile coverage.
Thanks.
--
Dmitry