Import the USB_INTERFACE_INFO() macro from Linux to make it less verbose
to describe a class of USB interfaces.

Signed-off-by: Jonas Karlman <[email protected]>
---
This macro existed in the initial Linux v2.6.12-rc2 git build.
---
 include/usb.h | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/include/usb.h b/include/usb.h
index 3a509d535e45..44c5d1cc5999 100644
--- a/include/usb.h
+++ b/include/usb.h
@@ -513,6 +513,10 @@ struct usb_driver_entry {
                (USB_DEVICE_ID_MATCH_DEV_LO | USB_DEVICE_ID_MATCH_DEV_HI)
 #define USB_DEVICE_ID_MATCH_DEVICE_AND_VERSION \
                (USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_DEV_RANGE)
+#define USB_DEVICE_ID_MATCH_INT_INFO \
+               (USB_DEVICE_ID_MATCH_INT_CLASS | \
+               USB_DEVICE_ID_MATCH_INT_SUBCLASS | \
+               USB_DEVICE_ID_MATCH_INT_PROTOCOL)
 
 /**
  * USB_DEVICE - macro used to describe a specific usb device
@@ -542,6 +546,20 @@ struct usb_driver_entry {
        .idProduct = (prod), \
        .bcdDevice_lo = (lo), \
        .bcdDevice_hi = (hi)
+/**
+ * USB_INTERFACE_INFO - macro used to describe a class of usb interfaces
+ * @cl: bInterfaceClass value
+ * @sc: bInterfaceSubClass value
+ * @pr: bInterfaceProtocol value
+ *
+ * This macro is used to create a struct usb_device_id that matches a
+ * specific class of interfaces.
+ */
+#define USB_INTERFACE_INFO(cl, sc, pr) \
+       .match_flags = USB_DEVICE_ID_MATCH_INT_INFO, \
+       .bInterfaceClass = (cl), \
+       .bInterfaceSubClass = (sc), \
+       .bInterfaceProtocol = (pr)
 
 #define U_BOOT_USB_DEVICE(__name, __match) \
        ll_entry_declare(struct usb_driver_entry, __name, usb_driver_entry) = {\
-- 
2.54.0

Reply via email to