diff options
Diffstat (limited to 'drivers/gpu/drm/udl/udl_drv.c')
| -rw-r--r-- | drivers/gpu/drm/udl/udl_drv.c | 15 |
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 @@ | |||
| 13 | 13 | ||
| 14 | static struct drm_driver driver; | 14 | static struct drm_driver driver; |
| 15 | 15 | ||
| 16 | /* | ||
| 17 | * There are many DisplayLink-based graphics products, all with unique PIDs. | ||
| 18 | * So we match on DisplayLink's VID + Vendor-Defined Interface Class (0xff) | ||
| 19 | * We also require a match on SubClass (0x00) and Protocol (0x00), | ||
| 20 | * which is compatible with all known USB 2.0 era graphics chips and firmware, | ||
| 21 | * but allows DisplayLink to increment those for any future incompatible chips | ||
| 22 | */ | ||
| 16 | static struct usb_device_id id_table[] = { | 23 | static struct usb_device_id id_table[] = { |
| 17 | {.idVendor = 0x17e9, .match_flags = USB_DEVICE_ID_MATCH_VENDOR,}, | 24 | {.idVendor = 0x17e9, .bInterfaceClass = 0xff, |
| 25 | .bInterfaceSubClass = 0x00, | ||
| 26 | .bInterfaceProtocol = 0x00, | ||
| 27 | .match_flags = USB_DEVICE_ID_MATCH_VENDOR | | ||
| 28 | USB_DEVICE_ID_MATCH_INT_CLASS | | ||
| 29 | USB_DEVICE_ID_MATCH_INT_SUBCLASS | | ||
| 30 | USB_DEVICE_ID_MATCH_INT_PROTOCOL,}, | ||
| 18 | {}, | 31 | {}, |
| 19 | }; | 32 | }; |
| 20 | MODULE_DEVICE_TABLE(usb, id_table); | 33 | MODULE_DEVICE_TABLE(usb, id_table); |
