Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

usb: chipidea: core: detach power domain for ci_hdrc platform device

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.

Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
Acked-by: Peter Chen <peter.chen@kernel.org>
Tested-by: Xu Yang <xu.yang_2@nxp.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

authored by

Xu Yang and committed by
Ulf Hansson
dfdcfc19 3b7685da

+3
+3
drivers/usb/chipidea/core.c
··· 27 27 #include <linux/kernel.h> 28 28 #include <linux/slab.h> 29 29 #include <linux/pm_runtime.h> 30 + #include <linux/pm_domain.h> 30 31 #include <linux/pinctrl/consumer.h> 31 32 #include <linux/usb/ch9.h> 32 33 #include <linux/usb/gadget.h> ··· 915 914 ret = platform_device_add(pdev); 916 915 if (ret) 917 916 goto err; 917 + 918 + dev_pm_domain_detach(&pdev->dev, false); 918 919 919 920 return pdev; 920 921