2020-11-05 22:05:09

by Guillaume Tucker

[permalink] [raw]
Subject: [PATCH] rtc: hym8563: enable wakeup by default

Enable wakeup by default in the hym8563 driver to match the behaviour
implemented by the majority of RTC drivers. As per the description of
device_init_wakeup(), it should be enabled for "devices that everyone
expects to be wakeup sources". One would expect this to be the case
with a real-time clock.

Fixes: dcaf03849352 ("rtc: add hym8563 rtc-driver")
Reported-by: kernelci.org bot <[email protected]>
Signed-off-by: Guillaume Tucker <[email protected]>
---
drivers/rtc/rtc-hym8563.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/rtc/rtc-hym8563.c b/drivers/rtc/rtc-hym8563.c
index 0fb79c4afb46..6fccfe634d57 100644
--- a/drivers/rtc/rtc-hym8563.c
+++ b/drivers/rtc/rtc-hym8563.c
@@ -527,7 +527,7 @@ static int hym8563_probe(struct i2c_client *client,
hym8563->client = client;
i2c_set_clientdata(client, hym8563);

- device_set_wakeup_capable(&client->dev, true);
+ device_init_wakeup(&client->dev, true);

ret = hym8563_init_device(client);
if (ret) {
--
2.20.1


2020-11-05 22:12:37

by Alexandre Belloni

[permalink] [raw]
Subject: Re: [PATCH] rtc: hym8563: enable wakeup by default

On 05/11/2020 22:01:10+0000, Guillaume Tucker wrote:
> Enable wakeup by default in the hym8563 driver to match the behaviour
> implemented by the majority of RTC drivers. As per the description of
> device_init_wakeup(), it should be enabled for "devices that everyone
> expects to be wakeup sources". One would expect this to be the case
> with a real-time clock.
>

Actually, the proper way of doing it for a discrete RTC is to only
enable wakeup if the irq request is successful or when the wakeup-source
property is present on the node.

> Fixes: dcaf03849352 ("rtc: add hym8563 rtc-driver")
> Reported-by: kernelci.org bot <[email protected]>
> Signed-off-by: Guillaume Tucker <[email protected]>
> ---
> drivers/rtc/rtc-hym8563.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/rtc/rtc-hym8563.c b/drivers/rtc/rtc-hym8563.c
> index 0fb79c4afb46..6fccfe634d57 100644
> --- a/drivers/rtc/rtc-hym8563.c
> +++ b/drivers/rtc/rtc-hym8563.c
> @@ -527,7 +527,7 @@ static int hym8563_probe(struct i2c_client *client,
> hym8563->client = client;
> i2c_set_clientdata(client, hym8563);
>
> - device_set_wakeup_capable(&client->dev, true);
> + device_init_wakeup(&client->dev, true);
>
> ret = hym8563_init_device(client);
> if (ret) {
> --
> 2.20.1
>

--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

2020-11-05 22:31:33

by Guillaume Tucker

[permalink] [raw]
Subject: Re: [PATCH] rtc: hym8563: enable wakeup by default

On 05/11/2020 22:09, Alexandre Belloni wrote:
> On 05/11/2020 22:01:10+0000, Guillaume Tucker wrote:
>> Enable wakeup by default in the hym8563 driver to match the behaviour
>> implemented by the majority of RTC drivers. As per the description of
>> device_init_wakeup(), it should be enabled for "devices that everyone
>> expects to be wakeup sources". One would expect this to be the case
>> with a real-time clock.
>>
>
> Actually, the proper way of doing it for a discrete RTC is to only
> enable wakeup if the irq request is successful or when the wakeup-source
> property is present on the node.

Thanks for the quick reply. I see, I'll send a v2 accordingly.

Guillaume

>> Fixes: dcaf03849352 ("rtc: add hym8563 rtc-driver")
>> Reported-by: kernelci.org bot <[email protected]>
>> Signed-off-by: Guillaume Tucker <[email protected]>
>> ---
>> drivers/rtc/rtc-hym8563.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/rtc/rtc-hym8563.c b/drivers/rtc/rtc-hym8563.c
>> index 0fb79c4afb46..6fccfe634d57 100644
>> --- a/drivers/rtc/rtc-hym8563.c
>> +++ b/drivers/rtc/rtc-hym8563.c
>> @@ -527,7 +527,7 @@ static int hym8563_probe(struct i2c_client *client,
>> hym8563->client = client;
>> i2c_set_clientdata(client, hym8563);
>>
>> - device_set_wakeup_capable(&client->dev, true);
>> + device_init_wakeup(&client->dev, true);
>>
>> ret = hym8563_init_device(client);
>> if (ret) {
>> --
>> 2.20.1
>>
>