[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <lki3zjq7qmnmo3n445jbgxlijs5v7pqg5ngyvqkee625bfbx5u@3y56kxhocgu4>
Date: Tue, 2 Sep 2025 16:54:18 +0800
From: Xu Yang <xu.yang_2@....com>
To: Peng Fan <peng.fan@....com>
Cc: Ulf Hansson <ulf.hansson@...aro.org>,
"Rafael J. Wysocki" <rafael@...nel.org>, Len Brown <lenb@...nel.org>, Pavel Machek <pavel@...nel.org>,
Peter Chen <peter.chen@...nel.org>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Shawn Guo <shawnguo@...nel.org>, Sascha Hauer <s.hauer@...gutronix.de>,
Pengutronix Kernel Team <kernel@...gutronix.de>, Fabio Estevam <festevam@...il.com>,
Thinh Nguyen <Thinh.Nguyen@...opsys.com>, Vincent Guittot <vincent.guittot@...aro.org>,
linux-pm@...r.kernel.org, linux-kernel@...r.kernel.org, linux-usb@...r.kernel.org,
imx@...ts.linux.dev, arm-scmi@...r.kernel.org, linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH v3 2/4] usb: chipidea: core: detach power domain for
ci_hdrc platform device
On Tue, Sep 02, 2025 at 11:33:01AM +0800, Peng Fan wrote:
> From: Xu Yang <xu.yang_2@....com>
>
> When add a platform device by calling ci_hdrc_add_device(), this device
> will reuse OF node of its parent device. If power-domains property is
> provided in the OF node, both two platform devices will be attached to
> the same power domain. This should be unnecessary and may bring other
> inconsistent behavior. For example, to support wakeup capability, these
> two platform device need different power domain state. The parent device
> need NOT power domain on for out-band interrupt, but the ci_hdrc device
> need power domain on for in-band interrupt. The i.MX95 Soc support
> out-band wakeup interrupt, the user need to enable wakeup for the parent
> device, but if the user also enable wakeup for ci_hdrc device, the power
> domain will keep at on state finally. To exclude such inconsistent
> behavior and simplify the power management, detach power domain for ci_hdrc
> platform device.
>
> Signed-off-by: Xu Yang <xu.yang_2@....com>
Tested-by: Xu Yang <xu.yang_2@....com>
> ---
> drivers/usb/chipidea/core.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
> index 694b4a8e4e1d8583dcbf4a42f8c2dfd785d5745c..70597f40b9997a9766934c67bbbed38e96c210f8 100644
> --- a/drivers/usb/chipidea/core.c
> +++ b/drivers/usb/chipidea/core.c
> @@ -27,6 +27,7 @@
> #include <linux/kernel.h>
> #include <linux/slab.h>
> #include <linux/pm_runtime.h>
> +#include <linux/pm_domain.h>
> #include <linux/pinctrl/consumer.h>
> #include <linux/usb/ch9.h>
> #include <linux/usb/gadget.h>
> @@ -915,6 +916,8 @@ struct platform_device *ci_hdrc_add_device(struct device *dev,
> if (ret)
> goto err;
>
> + dev_pm_domain_detach(&pdev->dev, false);
> +
> return pdev;
>
> err:
>
> --
> 2.37.1
>
Powered by blists - more mailing lists