From: Bjørn Mork Date: Wed, 31 Oct 2012 05:08:39 +0000 (+0100) Subject: USB: add USB_DEVICE_INTERFACE_CLASS macro X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=17b72feb2be14e6d37023267dc0e199e8e0e3fdc;p=linux-beck.git 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 Signed-off-by: Greg Kroah-Hartman --- diff --git a/include/linux/usb.h b/include/linux/usb.h index f51f9981de1e..689b14b26c8d 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h @@ -807,6 +807,22 @@ static inline int usb_make_path(struct usb_device *dev, char *buf, size_t size) .bcdDevice_lo = (lo), \ .bcdDevice_hi = (hi) +/** + * USB_DEVICE_INTERFACE_CLASS - describe a usb device with a specific interface class + * @vend: the 16 bit USB Vendor ID + * @prod: the 16 bit USB Product ID + * @cl: bInterfaceClass value + * + * This macro is used to create a struct usb_device_id that matches a + * specific interface class of devices. + */ +#define USB_DEVICE_INTERFACE_CLASS(vend, prod, cl) \ + .match_flags = USB_DEVICE_ID_MATCH_DEVICE | \ + USB_DEVICE_ID_MATCH_INT_CLASS, \ + .idVendor = (vend), \ + .idProduct = (prod), \ + .bInterfaceClass = (cl) + /** * USB_DEVICE_INTERFACE_PROTOCOL - describe a usb device with a specific interface protocol * @vend: the 16 bit USB Vendor ID