+Mika @Malani, Prashant @bleung@xxxxxxxxxx This is the patch which fixes the partner issue. Kindly escalate your thoughts. Thanks Rajat -----Original Message----- From: Khandelwal, Rajat <rajat.khandelwal@xxxxxxxxx> Sent: Wednesday, March 23, 2022 3:48 PM To: mika.westerberg@xxxxxxxxxxxxxxx Cc: Khandelwal, Rajat <rajat.khandelwal@xxxxxxxxx>; bleung@xxxxxxxxxx; jthies@xxxxxxxxxx; Malani, Prashant <pmalani@xxxxxxxxxx>; Rao, Abhijeet <abhijeet.rao@xxxxxxxxx>; Regupathy, Rajaram <rajaram.regupathy@xxxxxxxxx>; linux-usb@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx Subject: [PATCH] USB4/TBT device routers should wake up during S0ix when something gets connected/disconnected or a DP monitor gets plugged in Device routers don't wake up during S0ix when something is plugged in/out or if a DP monitor gets connected. This causes the linux device to not wake up during S0ix cycling as the host router didn't wake up because the device router didn't. This patch adds a new functionality to linux. Signed-off-by: Rajat-Khandelwal <rajat.khandelwal@xxxxxxxxx> --- drivers/thunderbolt/switch.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c index d026e305fe5d..4f8056724aa4 100644 --- a/drivers/thunderbolt/switch.c +++ b/drivers/thunderbolt/switch.c @@ -3067,13 +3067,11 @@ void tb_switch_suspend(struct tb_switch *sw, bool runtime) tb_switch_suspend(port->remote->sw, runtime); } - if (runtime) { + if (runtime || device_may_wakeup(&sw->dev)) { /* Trigger wake when something is plugged in/out */ flags |= TB_WAKE_ON_CONNECT | TB_WAKE_ON_DISCONNECT; flags |= TB_WAKE_ON_USB4; flags |= TB_WAKE_ON_USB3 | TB_WAKE_ON_PCIE | TB_WAKE_ON_DP; - } else if (device_may_wakeup(&sw->dev)) { - flags |= TB_WAKE_ON_USB4 | TB_WAKE_ON_USB3 | TB_WAKE_ON_PCIE; } tb_switch_set_wake(sw, flags); -- 2.17.1