Re: [PATCH] USB4/TBT device routers should wake up during S0ix when something gets connected/disconnected or a DP monitor gets plugged in

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

If you want it to be woken up when something is plugged to the USB4 port
then I suggest to add this to the "wakeup" capability of the usb4_port
itself (see drivers/thunderbolt/usb4_port.c). And make it disabled by
default too.

On Wed, Mar 23, 2022 at 10:26:37AM +0000, Khandelwal, Rajat wrote:
> +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



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux