[PATCH] drivers: core: clear wake irq in device_unbind_cleanup

Peng Fan (OSS) posted 1 patch 1 week, 5 days ago
drivers/base/dd.c | 2 ++
1 file changed, 2 insertions(+)
[PATCH] drivers: core: clear wake irq in device_unbind_cleanup
Posted by Peng Fan (OSS) 1 week, 5 days ago
From: Peng Fan <peng.fan@nxp.com>

With dev_pm_clear_wake_irq in device_unbind_cleanup, there is no need
to invoke dev_pm_clear_wake_irq in driver remove hook explicitly.

Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 drivers/base/dd.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index f0e4b4aba885..ea3a871bdd11 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -26,6 +26,7 @@
 #include <linux/wait.h>
 #include <linux/async.h>
 #include <linux/pm_runtime.h>
+#include <linux/pm_wakeirq.h>
 #include <linux/pinctrl/devinfo.h>
 #include <linux/slab.h>
 
@@ -556,6 +557,7 @@ static void device_unbind_cleanup(struct device *dev)
 		dev->pm_domain->dismiss(dev);
 	pm_runtime_reinit(dev);
 	dev_pm_set_driver_flags(dev, 0);
+	dev_pm_clear_wake_irq(dev);
 }
 
 static void device_remove(struct device *dev)
-- 
2.37.1
Re: [PATCH] drivers: core: clear wake irq in device_unbind_cleanup
Posted by Greg Kroah-Hartman 1 week, 4 days ago
On Mon, Nov 11, 2024 at 05:21:30PM +0800, Peng Fan (OSS) wrote:
> From: Peng Fan <peng.fan@nxp.com>
> 
> With dev_pm_clear_wake_irq in device_unbind_cleanup, there is no need
> to invoke dev_pm_clear_wake_irq in driver remove hook explicitly.
> 
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Ulf Hansson <ulf.hansson@linaro.org>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
>  drivers/base/dd.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/base/dd.c b/drivers/base/dd.c
> index f0e4b4aba885..ea3a871bdd11 100644
> --- a/drivers/base/dd.c
> +++ b/drivers/base/dd.c
> @@ -26,6 +26,7 @@
>  #include <linux/wait.h>
>  #include <linux/async.h>
>  #include <linux/pm_runtime.h>
> +#include <linux/pm_wakeirq.h>
>  #include <linux/pinctrl/devinfo.h>
>  #include <linux/slab.h>
>  
> @@ -556,6 +557,7 @@ static void device_unbind_cleanup(struct device *dev)
>  		dev->pm_domain->dismiss(dev);
>  	pm_runtime_reinit(dev);
>  	dev_pm_set_driver_flags(dev, 0);
> +	dev_pm_clear_wake_irq(dev);

I don't understand, you say you don't need to invoke it, yet you are
calling it here.

What commit id does this fix?  And what bug is this resolving?  What
drivers are broken without this?

thanks,

greg k-h