summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/udl/udl_drv.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-06-17 01:44:41 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2012-06-17 01:44:41 -0700
commitfb09185a88cad9c59e22e84f8c0594303595e9af (patch)
treea7287193506fe491cff1ac84b72e1865906991d7 /drivers/gpu/drm/udl/udl_drv.c
parent41a328b95c00fa00ed5832c2876aee7186222438 (diff)
parentc4af5c4597a7a5d64e058703e1328f315a59794e (diff)
Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
Pull drm fixes from Dave Airlie: "Radeon is most of the work, one regression, one BUG fix in the new prime code, some fixes to init code to make streamout not lock up the hardware, and just some code to enable users to test HDMI audio on later hw (its off by default). Intel adds edp edid caching for some strange Dell Vostros that black screen on startup if keep reading their EDID, and a fix for a DP regression. Otherwise fix for via/sis and one to stop udl binding to multiple non-video usb." * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/i915: cache the EDID for eDP panels Revert "drm/i915/dp: Use auxch precharge value of 5 everywhere" drm/i915: eDP aux needs vdd drm/i915: don't enumerate HDMID if an eDP panel is already active on the port drm/radeon: add support for STRMOUT_BASE_UPDATE on 7xx drm/radeon: add some additional 6xx/7xx/EG register init drm/radeon: enable HDMI on DCE5 (AKA NI excluding Aruba) drm sis: initialize object_idr drm via: initialize object_idr drm/radeon/prime: reserve/unreserve around pin drm/radeon: fix regression in dynpm due to multi-ring rework vga_switcheroo.h: fix pci_dev warning drm/udl: only bind to the video devices on the hub.
Diffstat (limited to 'drivers/gpu/drm/udl/udl_drv.c')
-rw-r--r--drivers/gpu/drm/udl/udl_drv.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c
index 4d02c46a9420..6e52069894b3 100644
--- a/drivers/gpu/drm/udl/udl_drv.c
+++ b/drivers/gpu/drm/udl/udl_drv.c
@@ -13,8 +13,21 @@
static struct drm_driver driver;
+/*
+ * There are many DisplayLink-based graphics products, all with unique PIDs.
+ * So we match on DisplayLink's VID + Vendor-Defined Interface Class (0xff)
+ * We also require a match on SubClass (0x00) and Protocol (0x00),
+ * which is compatible with all known USB 2.0 era graphics chips and firmware,
+ * but allows DisplayLink to increment those for any future incompatible chips
+ */
static struct usb_device_id id_table[] = {
- {.idVendor = 0x17e9, .match_flags = USB_DEVICE_ID_MATCH_VENDOR,},
+ {.idVendor = 0x17e9, .bInterfaceClass = 0xff,
+ .bInterfaceSubClass = 0x00,
+ .bInterfaceProtocol = 0x00,
+ .match_flags = USB_DEVICE_ID_MATCH_VENDOR |
+ USB_DEVICE_ID_MATCH_INT_CLASS |
+ USB_DEVICE_ID_MATCH_INT_SUBCLASS |
+ USB_DEVICE_ID_MATCH_INT_PROTOCOL,},
{},
};
MODULE_DEVICE_TABLE(usb, id_table);