Re: ASMedia SATA Bridge not enumerating without quirk

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

 



On Wed, 21 Mar 2018, Menion wrote:

> Well, still, my two cents here, is it really that if you have UAS in a
> module and you don't load it but connect an UAS capable device, this
> device is not enumerated rather than downgraded to usb-storage?

Let's be precise.  The device _is_ enumerated, because the kernel can't
tell what driver is appropriate without first reading the device's
descriptors, which happens during enumeration.  Once the enumeration is
over, the kernel tries to bind the device to an appropriate driver; if
the binding fails then the device won't be used.

If a device is UAS-capable and the kernel was built with UAS support, 
then the appropriate driver is uas.  In fact, there is a special check 
inside usb-storage for precisely this situation:

	/* If uas is enabled and this device can do uas then ignore it. */
#if IS_ENABLED(CONFIG_USB_UAS)
	if (uas_use_uas_driver(intf, id, NULL))
		return -ENXIO;
#endif

There are some special cases embedded in the uas_use_uas_driver() 
routine.  For instance, if the US_FL_IGNORE_UAS quirk flag is set then 
uas_use_uas_driver() will return 0, and then usb-storage will bind to 
the device.

But assuming none of the special cases apply, if the uas driver was
built as a module and the module can't be loaded then the binding to
uas will fail.  As a result, the device will not be used.

Alan Stern

--
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