summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author68.178.99.70 <68.178.99.70>2009-07-23 21:02:57 +0000
committer68.178.99.70 <68.178.99.70>2009-07-23 21:02:57 +0000
commitca9154ef0886a3497da189de1327f1e2a05332e3 (patch)
tree5ccf2e7d7cc7e273585a9f134cf0ce90ba2f2b34
parent1537c1f0225a583089c5f6ac5377a34eb82d3816 (diff)
More background
-rw-r--r--DeviceQuirks.moin24
1 files changed, 23 insertions, 1 deletions
diff --git a/DeviceQuirks.moin b/DeviceQuirks.moin
index 4e8a3ea..859961c 100644
--- a/DeviceQuirks.moin
+++ b/DeviceQuirks.moin
@@ -176,7 +176,29 @@ configuration is set, it turns into the "real" device. On DisplayLink
devices - the core graphics function is always on configuration #1
(even if the default configuration is something else like 2, to hide
the device without in-OS drivers).
-
You can see how libdlo handles this (not smart or graceful, but does
make libdlo work 100% of the time) at
http://cgit.freedesktop.org/libdlo/tree/src/dlo_usb.c around line 319.
+
+Greg has recommended taking this approach, based on a long
+history of dealing with quirks of this type:
+
+1) Actively set configuration 1 in the displaylink kernel framebuffer
+driver (call function
+http://lxr.linux.no/linux+v2.6.30/drivers/usb/core/usb.h#L31)
+2) Because Linux doesn't have the same assumption as Windows for
+matching best driver based on specificity of IDs, it may
+(non-deterministicly?) load a HID or MSC driver instead of the real
+DisplayLink framebuffer driver. To avoid this problem completely, we
+have to add displaylink devices to the proper blacklists, e.g. as
+these examples of adding other devices to the HID blacklist:
+http://www.google.co.uk/search?q=linux+kernel+usb+hid+blacklist
+
+However, as mentioned above, the MSC blacklisting is messy on DisplayLink,
+and there isn't as much of a precedent for non-storage devices to be
+blacklisted in the storage drivers, as would be the case here.
+
+If someone wanted to get wild and crazy, they could also take a look
+at a more comprehensive solution for #2 -- better aligning Linux's
+plug and play assumptions about driver matching based on specificity
+of class/vid/pid/rev, etc. with Windows' assumptions.