2020-07-06 08:56:36

by Dariusz Marcinkiewicz

[permalink] [raw]
Subject: [PATCH] media: cros-ec-cec: disable the device wakeup on remove

The device is enabled for wake up while the driver is loaded.
For symmetry, disable wakeup when it is removed.

Signed-off-by: Dariusz Marcinkiewicz <[email protected]>
---
drivers/media/cec/platform/cros-ec/cros-ec-cec.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/media/cec/platform/cros-ec/cros-ec-cec.c b/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
index 2d95e16cd248..3881ed7bc3d9 100644
--- a/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
+++ b/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
@@ -277,8 +277,6 @@ static int cros_ec_cec_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, cros_ec_cec);
cros_ec_cec->cros_ec = cros_ec;

- device_init_wakeup(&pdev->dev, 1);
-
cros_ec_cec->adap = cec_allocate_adapter(&cros_ec_cec_ops, cros_ec_cec,
DRV_NAME,
CEC_CAP_DEFAULTS |
@@ -306,6 +304,8 @@ static int cros_ec_cec_probe(struct platform_device *pdev)
if (ret < 0)
goto out_probe_notify;

+ device_init_wakeup(&pdev->dev, 1);
+
return 0;

out_probe_notify:
@@ -335,6 +335,8 @@ static int cros_ec_cec_remove(struct platform_device *pdev)
cros_ec_cec->adap);
cec_unregister_adapter(cros_ec_cec->adap);

+ device_init_wakeup(&pdev->dev, 0);
+
return 0;
}

--
2.27.0.212.ge8ba1cc988-goog


2020-07-06 09:03:43

by Alexandre Belloni

[permalink] [raw]
Subject: Re: [PATCH] media: cros-ec-cec: disable the device wakeup on remove

On 06/07/2020 10:52:38+0200, Dariusz Marcinkiewicz wrote:
> The device is enabled for wake up while the driver is loaded.
> For symmetry, disable wakeup when it is removed.
>

This is not necessary as it is handled by the core properly. There are
currently 73 calls to device_init_wakeup that are not necessary, this
would add one more.

> Signed-off-by: Dariusz Marcinkiewicz <[email protected]>
> ---
> drivers/media/cec/platform/cros-ec/cros-ec-cec.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/cec/platform/cros-ec/cros-ec-cec.c b/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
> index 2d95e16cd248..3881ed7bc3d9 100644
> --- a/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
> +++ b/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
> @@ -277,8 +277,6 @@ static int cros_ec_cec_probe(struct platform_device *pdev)
> platform_set_drvdata(pdev, cros_ec_cec);
> cros_ec_cec->cros_ec = cros_ec;
>
> - device_init_wakeup(&pdev->dev, 1);
> -
> cros_ec_cec->adap = cec_allocate_adapter(&cros_ec_cec_ops, cros_ec_cec,
> DRV_NAME,
> CEC_CAP_DEFAULTS |
> @@ -306,6 +304,8 @@ static int cros_ec_cec_probe(struct platform_device *pdev)
> if (ret < 0)
> goto out_probe_notify;
>
> + device_init_wakeup(&pdev->dev, 1);
> +
> return 0;
>
> out_probe_notify:
> @@ -335,6 +335,8 @@ static int cros_ec_cec_remove(struct platform_device *pdev)
> cros_ec_cec->adap);
> cec_unregister_adapter(cros_ec_cec->adap);
>
> + device_init_wakeup(&pdev->dev, 0);
> +
> return 0;
> }
>
> --
> 2.27.0.212.ge8ba1cc988-goog
>

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

2020-07-07 08:06:42

by Dariusz Marcinkiewicz

[permalink] [raw]
Subject: Re: [PATCH] media: cros-ec-cec: disable the device wakeup on remove

On Mon, Jul 6, 2020 at 11:00 AM Alexandre Belloni
<[email protected]> wrote:
>
> On 06/07/2020 10:52:38+0200, Dariusz Marcinkiewicz wrote:
> > The device is enabled for wake up while the driver is loaded.
> > For symmetry, disable wakeup when it is removed.
> >
>
> This is not necessary as it is handled by the core properly. There are
> currently 73 calls to device_init_wakeup that are not necessary, this
> would add one more.
>
Thank you.

To make sure - your comment applies even if the device node in
question is not actually removed, as it is the case here? This is a
platform dev, which won't be freed when the driver is unloaded.

Regards.



> > Signed-off-by: Dariusz Marcinkiewicz <[email protected]>
> > ---
> > drivers/media/cec/platform/cros-ec/cros-ec-cec.c | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/media/cec/platform/cros-ec/cros-ec-cec.c b/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
> > index 2d95e16cd248..3881ed7bc3d9 100644
> > --- a/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
> > +++ b/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
> > @@ -277,8 +277,6 @@ static int cros_ec_cec_probe(struct platform_device *pdev)
> > platform_set_drvdata(pdev, cros_ec_cec);
> > cros_ec_cec->cros_ec = cros_ec;
> >
> > - device_init_wakeup(&pdev->dev, 1);
> > -
> > cros_ec_cec->adap = cec_allocate_adapter(&cros_ec_cec_ops, cros_ec_cec,
> > DRV_NAME,
> > CEC_CAP_DEFAULTS |
> > @@ -306,6 +304,8 @@ static int cros_ec_cec_probe(struct platform_device *pdev)
> > if (ret < 0)
> > goto out_probe_notify;
> >
> > + device_init_wakeup(&pdev->dev, 1);
> > +
> > return 0;
> >
> > out_probe_notify:
> > @@ -335,6 +335,8 @@ static int cros_ec_cec_remove(struct platform_device *pdev)
> > cros_ec_cec->adap);
> > cec_unregister_adapter(cros_ec_cec->adap);
> >
> > + device_init_wakeup(&pdev->dev, 0);
> > +
> > return 0;
> > }
> >
> > --
> > 2.27.0.212.ge8ba1cc988-goog
> >
>
> --
> Alexandre Belloni, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com