On Thu, 20 Apr 2023 at 09:54, Peng Fan <peng.fan@xxxxxxxxxxx> wrote: > > Dmitry,Ulf > > On 4/18/2023 4:32 PM, Ulf Hansson wrote: > > On Wed, 12 Apr 2023 at 17:58, Peng Fan <peng.fan@xxxxxxx> wrote: > >> > >> +Ulf > >> > >>> Subject: RE: [PATCH 2/2] input: imx_sc_key: add wakeup support > >>> > >>>> Subject: Re: [PATCH 2/2] input: imx_sc_key: add wakeup support > >>>> > >>>> On Thu, Mar 23, 2023 at 05:31:41PM +0800, Peng Fan (OSS) wrote: > >>>>> From: Peng Fan <peng.fan@xxxxxxx> > >>>>> > >>>>> Add support for waking up from system wide suspend. > >>>>> > >>>>> Signed-off-by: Peng Fan <peng.fan@xxxxxxx> > >>>>> --- > >>>>> drivers/input/keyboard/imx_sc_key.c | 2 ++ > >>>>> 1 file changed, 2 insertions(+) > >>>>> > >>>>> diff --git a/drivers/input/keyboard/imx_sc_key.c > >>>> b/drivers/input/keyboard/imx_sc_key.c > >>>>> index d18839f1f4f6..234f23cf9990 100644 > >>>>> --- a/drivers/input/keyboard/imx_sc_key.c > >>>>> +++ b/drivers/input/keyboard/imx_sc_key.c > >>>>> @@ -151,6 +151,8 @@ static int imx_sc_key_probe(struct > >>>> platform_device *pdev) > >>>>> priv->input = input; > >>>>> platform_set_drvdata(pdev, priv); > >>>>> > >>>>> + device_init_wakeup(&pdev->dev, > >>>> device_property_read_bool(&pdev->dev, "wakeup-source")); > >>>>> + > >>>> > >>>> I wonder - could we move this to the device core? > >>> > >>> I see lots device drivers parse wakeup-source, so I also follow That. Not sure > >>> whether could move this feature to device core, but anyway I could give a > >>> try. > >> > >> Do you think it is feasible to move device_init_wakeup into device core > >> part? > > > > Not sure it would really improve things that much. Subsystems/drivers > > need to make additional configurations based upon whether this DT > > property is set anyway. > > > > Perhaps an option is to make this a part of the common input subsystem > > helper functions instead? Other subsystems do this, but I am not sure > > how feasible that would be in the input case. > > How do you think of below patch? Seems reasonable to me, but I can't really tell if this makes sense for all input drivers. Dmitry? > > diff --git a/drivers/input/input.c b/drivers/input/input.c > index 37e876d45eb9..a98a9f37e1f5 100644 > --- a/drivers/input/input.c > +++ b/drivers/input/input.c > @@ -2402,6 +2402,10 @@ int input_register_device(struct input_dev *dev) > __func__, dev_name(&dev->dev)); > devres_add(dev->dev.parent, devres); > } > + > + if (device_property_read_bool(input->dev.parent, "wakeup-source")) > + device_init_wakeup(&pdev->dev, true); > + > return 0; > > err_device_del: > Kind regards Uffe