Re: [RFC v3] USB: Warn about USB3 devices plugged into USB2 hub.

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

 



On 02/22/2012 01:46 AM, Sarah Sharp wrote:
@@ -3230,6 +3235,15 @@ check_highspeed (struct usb_hub *hub, struct usb_device *udev, int port1)
  	kfree(qual);
  }

+static void check_superspeed(struct usb_hub *hub, struct usb_device *udev,
+		int port1)
+{
+	if (udev->bos&&  udev->bos->ss_cap) {

&& udev->bos->ss_cap->wSpeedSupported & cpu_to_le16(USB_5GBPS_OPERATION)

This is probably over protective as I don't know how realistic it is to
make a device without this bit set.

+		dev_info(&udev->dev, "not running at top speed; "
+			"connect to a SuperSpeed port\n");
+	}
+}
+
  static unsigned
  hub_power_remaining (struct usb_hub *hub)

@@ -3449,6 +3463,10 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
  				&&  udev->speed == USB_SPEED_FULL
  				&&  highspeed_hubs != 0)
  			check_highspeed (hub, udev, port1);
+		if (le16_to_cpu(udev->descriptor.bcdUSB)>= 0x0201&&

I think you could drop this bcdUSB check because the same one is done
before fetching the BOS descriptor and setting ss_cap a few lines up
via hub_port_init(). Other than that, it looks good :)

+				udev->speed<  USB_SPEED_SUPER&&
+				superspeed_hubs != 0)
+			check_superspeed(hub, udev, port1);

Sebastian
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

  Powered by Linux