Skip to content

Commit a54b488

Browse files
committed
ucsi_ccg: Disable async suspend in ucsi_ccg_probe()
JIRA: https://issues.redhat.com/browse/RHEL-109251 commit d559335 Author: Jon Hunter <jonathanh@nvidia.com> Date: Mon May 12 15:26:53 2025 +0200 Commit aa7a927 ("PM: sleep: Suspend async parents after suspending children") had triggered a suspend issue on Tegra boards because it had reordered the syspend of devices with async suspend enabled with respect to some other devices. Specifically, the devices with async suspend enabled that have no children are now suspended before any other devices unless there are device links pointing to them as suppliers. The investigation that followed the failure report uncovered that async suspend was enabled for the cypd4226 device that was a Type-C controller with a dependency on USB PHY and it turned out that disabling async suspend for that device made the issue go away. Since async suspend takes dependencies between parents and children into account as well as other dependencies between devices represented by device links, this means that the cypd4226 has a dependency on another device that is not represented in any form in the kernel (a "hidden" dependency), in which case async suspend should not be enabled for it. Accordingly, make ucsi_ccg_probe() disable async suspend for the devices handled by, which covers the cypd4226 device on the Tegra boards as well as other devices likely to have similar "hidden" dependencies. Fixes: aa7a927 ("PM: sleep: Suspend async parents after suspending children") Closes: https://lore.kernel.org/linux-pm/c6cd714b-b0eb-42fc-b9b5-4f5f396fb4ec@nvidia.com/ Reported-by: Jon Hunter <jonathanh@nvidia.com> Tested-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Link: https://patch.msgid.link/6180608.lOV4Wx5bFT@rjwysocki.net Signed-off-by: Mark Langsdorf <mlangsdo@redhat.com>
1 parent e0f69c5 commit a54b488

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

drivers/usb/typec/ucsi/ucsi_ccg.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1488,6 +1488,8 @@ static int ucsi_ccg_probe(struct i2c_client *client,
14881488

14891489
i2c_set_clientdata(client, uc);
14901490

1491+
device_disable_async_suspend(uc->dev);
1492+
14911493
pm_runtime_set_active(uc->dev);
14921494
pm_runtime_enable(uc->dev);
14931495
pm_runtime_use_autosuspend(uc->dev);

0 commit comments

Comments
 (0)