Commit 17b72feb2be14e6d37023267dc0e199e8e0e3fdc

Authored by Bjørn Mork
Committed by Greg Kroah-Hartman
1 parent 1b95bee563

USB: add USB_DEVICE_INTERFACE_CLASS macro

Matching on device and interface class with with unspecified
subclass and protocol is sometimes useful.  This is slightly
different from USB_DEVICE_AND_INTERFACE_INFO which requires
the full interface class/subclass/protocol triplet.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Showing 1 changed file with 16 additions and 0 deletions Side-by-side Diff

... ... @@ -808,6 +808,22 @@
808 808 .bcdDevice_hi = (hi)
809 809  
810 810 /**
  811 + * USB_DEVICE_INTERFACE_CLASS - describe a usb device with a specific interface class
  812 + * @vend: the 16 bit USB Vendor ID
  813 + * @prod: the 16 bit USB Product ID
  814 + * @cl: bInterfaceClass value
  815 + *
  816 + * This macro is used to create a struct usb_device_id that matches a
  817 + * specific interface class of devices.
  818 + */
  819 +#define USB_DEVICE_INTERFACE_CLASS(vend, prod, cl) \
  820 + .match_flags = USB_DEVICE_ID_MATCH_DEVICE | \
  821 + USB_DEVICE_ID_MATCH_INT_CLASS, \
  822 + .idVendor = (vend), \
  823 + .idProduct = (prod), \
  824 + .bInterfaceClass = (cl)
  825 +
  826 +/**
811 827 * USB_DEVICE_INTERFACE_PROTOCOL - describe a usb device with a specific interface protocol
812 828 * @vend: the 16 bit USB Vendor ID
813 829 * @prod: the 16 bit USB Product ID