ACK/Cmnt: [SRU][B][PATCH 1/1] usb: handle warm-reset port requests on hub resume

Matthew Ruffell matthew.ruffell at canonical.com
Mon Jul 27 21:56:45 UTC 2020


> 
> Ack for Bionic. For Eoan, the question is whether this would be useful. Eoan is
> EOL since Jul-17. The won't be a generic update there. We still have a few
> special projects that are on 5.3 but quickly being replaced and not sure whether
> those are using hw which benefits from the change.
> 
> -Stefan
> 
Roger that. Eoan is unnecessary then, and I have changed the Launchpad bug to
Wontfix for Eoan. I was just thinking Eoan would end up a lot like Disco, which
got upstream stable patches and generic releases past its EOL date.

Patching Bionic only is perfectly okay.

Thanks,
Matthew

>>  drivers/usb/core/hub.c | 7 +++++++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
>> index b99602789ca2..7a27237f6b67 100644
>> --- a/drivers/usb/core/hub.c
>> +++ b/drivers/usb/core/hub.c
>> @@ -107,6 +107,8 @@ EXPORT_SYMBOL_GPL(ehci_cf_port_reset_rwsem);
>>  static void hub_release(struct kref *kref);
>>  static int usb_reset_and_verify_device(struct usb_device *udev);
>>  static int hub_port_disable(struct usb_hub *hub, int port1, int set_state);
>> +static bool hub_port_warm_reset_required(struct usb_hub *hub, int port1,
>> +		u16 portstatus);
>>  
>>  static inline char *portspeed(struct usb_hub *hub, int portstatus)
>>  {
>> @@ -1117,6 +1119,11 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type)
>>  						   USB_PORT_FEAT_ENABLE);
>>  		}
>>  
>> +		/* Make sure a warm-reset request is handled by port_event */
>> +		if (type == HUB_RESUME &&
>> +		    hub_port_warm_reset_required(hub, port1, portstatus))
>> +			set_bit(port1, hub->event_bits);
>> +
>>  		/*
>>  		 * Add debounce if USB3 link is in polling/link training state.
>>  		 * Link will automatically transition to Enabled state after
>>
> 
> 



More information about the kernel-team mailing list