[PATCH 2/2] input: imx_sc_key: add wakeup support

Peng Fan peng.fan at oss.nxp.com
Thu Apr 20 00:54:06 PDT 2023


Dmitry,Ulf

On 4/18/2023 4:32 PM, Ulf Hansson wrote:
> On Wed, 12 Apr 2023 at 17:58, Peng Fan <peng.fan at nxp.com> 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 at nxp.com>
>>>>>
>>>>> Add support for waking up from system wide suspend.
>>>>>
>>>>> Signed-off-by: Peng Fan <peng.fan at nxp.com>
>>>>> ---
>>>>>   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?

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:

Thanks,
Peng.

> 
> Kind regards
> Uffe



More information about the linux-arm-kernel mailing list