mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-16 23:45:31 +08:00
usb: core: hub: Remove port_speed_is_ssp()
The get_port_ssp_rate() can replace port_speed_is_ssp(). If the port speed is detected to be in gen2x1, gen1x2, or gen2x2, then the port is operating at SuperSpeed Plus. Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com> Link: https://lore.kernel.org/r/dfd61ae637597bad502d2420b4dbd3774fc76aab.1615432770.git.Thinh.Nguyen@synopsys.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0299809be4
commit
a59918cb61
@ -2744,33 +2744,6 @@ out:
|
||||
return USB_SSP_GEN_UNKNOWN;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return 1 if port speed is SuperSpeedPlus, 0 otherwise
|
||||
* check it from the link protocol field of the current speed ID attribute.
|
||||
* current speed ID is got from ext port status request. Sublink speed attribute
|
||||
* table is returned with the hub BOS SSP device capability descriptor
|
||||
*/
|
||||
static int port_speed_is_ssp(struct usb_device *hdev, int speed_id)
|
||||
{
|
||||
int ssa_count;
|
||||
u32 ss_attr;
|
||||
int i;
|
||||
struct usb_ssp_cap_descriptor *ssp_cap = hdev->bos->ssp_cap;
|
||||
|
||||
if (!ssp_cap)
|
||||
return 0;
|
||||
|
||||
ssa_count = le32_to_cpu(ssp_cap->bmAttributes) &
|
||||
USB_SSP_SUBLINK_SPEED_ATTRIBS;
|
||||
|
||||
for (i = 0; i <= ssa_count; i++) {
|
||||
ss_attr = le32_to_cpu(ssp_cap->bmSublinkSpeedAttr[i]);
|
||||
if (speed_id == (ss_attr & USB_SSP_SUBLINK_SPEED_SSID))
|
||||
return !!(ss_attr & USB_SSP_SUBLINK_SPEED_LP);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Returns 1 if @hub is a WUSB root hub, 0 otherwise */
|
||||
static unsigned hub_is_wusb(struct usb_hub *hub)
|
||||
{
|
||||
@ -2934,9 +2907,7 @@ static int hub_port_wait_reset(struct usb_hub *hub, int port1,
|
||||
}
|
||||
if (hub_is_wusb(hub))
|
||||
udev->speed = USB_SPEED_WIRELESS;
|
||||
else if (hub_is_superspeedplus(hub->hdev) &&
|
||||
port_speed_is_ssp(hub->hdev, ext_portstatus &
|
||||
USB_EXT_PORT_STAT_RX_SPEED_ID))
|
||||
else if (udev->ssp_rate != USB_SSP_GEN_UNKNOWN)
|
||||
udev->speed = USB_SPEED_SUPER_PLUS;
|
||||
else if (hub_is_superspeed(hub->hdev))
|
||||
udev->speed = USB_SPEED_SUPER;
|
||||
|
Loading…
Reference in New Issue
Block a user