diff options
author | Mika Westerberg <mika.westerberg@linux.intel.com> | 2019-12-06 18:36:07 +0200 |
---|---|---|
committer | Mika Westerberg <mika.westerberg@linux.intel.com> | 2020-09-03 12:06:42 +0300 |
commit | b2911a593a705e54adde6d06d4657c1ff2f16583 (patch) | |
tree | 41b38ef2522fa43490f3ddaaaf7ee73cda916268 /drivers/thunderbolt/domain.c | |
parent | 341d45188a7800ae3bc18558d62020787b78397e (diff) | |
download | lwn-b2911a593a705e54adde6d06d4657c1ff2f16583.tar.gz lwn-b2911a593a705e54adde6d06d4657c1ff2f16583.zip |
thunderbolt: Enable wakes from system suspend
In order for the router and the whole domain to wake up from system
suspend states we need to enable wakes for the connected routers. For
device routers we enable wakes from PCIe and USB 3.x. This allows
devices such as keyboards connected to USB 3.x hub that is tunneled to
wake the system up as expected. For all routers we enabled wake on USB4
for each connected ports. This is used to propagate the wake from router
to another.
Do the same for legacy routers through link controller vendor specific
registers as documented in USB4 spec chapter 13.
While there correct kernel-doc of usb4_switch_set_sleep() -- it does not
enable wakes instead there is a separate function (usb4_switch_set_wake())
that does.
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Diffstat (limited to 'drivers/thunderbolt/domain.c')
-rw-r--r-- | drivers/thunderbolt/domain.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/thunderbolt/domain.c b/drivers/thunderbolt/domain.c index 7a192b7ea85e..fa7fa3ce5426 100644 --- a/drivers/thunderbolt/domain.c +++ b/drivers/thunderbolt/domain.c @@ -455,6 +455,8 @@ int tb_domain_add(struct tb *tb) /* This starts event processing */ mutex_unlock(&tb->lock); + device_init_wakeup(&tb->dev, true); + pm_runtime_no_callbacks(&tb->dev); pm_runtime_set_active(&tb->dev); pm_runtime_enable(&tb->dev); |