On 02/24/2016 07:55 PM, Paul Wise wrote: > On Wed, 2016-02-24 at 16:41 -0600, Mario Limonciello wrote: > >> Although technically this is an internal device, I don't believe that >> any of those USB attributes can identify this information about the >> physical location of the bus. Please correct me if I'm wrong. > This info from the lsusb output would appear to indicate this: > > iFunction 4 Integrated Camera > Unfortunately this is not indicative of an internally located device.
The USB video spec [1] indicates iFunction is only an index to a string descriptor. This is the relevant snippet from the spec: Index of a string descriptor that describes this interface. This must be used for the device (function) name and be implemented in US English (LANGID = 0x0409) at the minimum. Analysing a string to guess if a device is internal is not a reliable method. What if I had a USB device that filled in that string descriptor with "Wireless keyboard with integrated touchpad"? Looking for the word integrated is obviously going to falsely trigger this item. Looking for the full phrase integrated camera will match the source of the camera in your machine, but that's all that is guaranteed. Upstream is not going to track a full list of strings just to indicate a device is internally wired or externally wired via the USB bus, and I won't carry a patch doing that in Debian either. [1] http://www.usb.org/developers/docs/devclass_docs/USB_Video_Class_1_1_090711.zip