USB: storage: Define a new macro for USB storage match rules
1. Define a new macro for USB storage match rules: matching with Vendor ID and interface descriptors. Signed-off-by: fangxiaozhi <huananhu@huawei.com> Cc: stable <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0ba3b2ccc7
commit
07c7be3d87
|
@ -120,6 +120,17 @@ MODULE_PARM_DESC(quirks, "supplemental list of device IDs and their quirks");
|
||||||
.useTransport = use_transport, \
|
.useTransport = use_transport, \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define UNUSUAL_VENDOR_INTF(idVendor, cl, sc, pr, \
|
||||||
|
vendor_name, product_name, use_protocol, use_transport, \
|
||||||
|
init_function, Flags) \
|
||||||
|
{ \
|
||||||
|
.vendorName = vendor_name, \
|
||||||
|
.productName = product_name, \
|
||||||
|
.useProtocol = use_protocol, \
|
||||||
|
.useTransport = use_transport, \
|
||||||
|
.initFunction = init_function, \
|
||||||
|
}
|
||||||
|
|
||||||
static struct us_unusual_dev us_unusual_dev_list[] = {
|
static struct us_unusual_dev us_unusual_dev_list[] = {
|
||||||
# include "unusual_devs.h"
|
# include "unusual_devs.h"
|
||||||
{ } /* Terminating entry */
|
{ } /* Terminating entry */
|
||||||
|
@ -131,6 +142,7 @@ static struct us_unusual_dev for_dynamic_ids =
|
||||||
#undef UNUSUAL_DEV
|
#undef UNUSUAL_DEV
|
||||||
#undef COMPLIANT_DEV
|
#undef COMPLIANT_DEV
|
||||||
#undef USUAL_DEV
|
#undef USUAL_DEV
|
||||||
|
#undef UNUSUAL_VENDOR_INTF
|
||||||
|
|
||||||
#ifdef CONFIG_LOCKDEP
|
#ifdef CONFIG_LOCKDEP
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,20 @@
|
||||||
#define USUAL_DEV(useProto, useTrans) \
|
#define USUAL_DEV(useProto, useTrans) \
|
||||||
{ USB_INTERFACE_INFO(USB_CLASS_MASS_STORAGE, useProto, useTrans) }
|
{ USB_INTERFACE_INFO(USB_CLASS_MASS_STORAGE, useProto, useTrans) }
|
||||||
|
|
||||||
|
/* Define the device is matched with Vendor ID and interface descriptors */
|
||||||
|
#define UNUSUAL_VENDOR_INTF(id_vendor, cl, sc, pr, \
|
||||||
|
vendorName, productName, useProtocol, useTransport, \
|
||||||
|
initFunction, flags) \
|
||||||
|
{ \
|
||||||
|
.match_flags = USB_DEVICE_ID_MATCH_INT_INFO \
|
||||||
|
| USB_DEVICE_ID_MATCH_VENDOR, \
|
||||||
|
.idVendor = (id_vendor), \
|
||||||
|
.bInterfaceClass = (cl), \
|
||||||
|
.bInterfaceSubClass = (sc), \
|
||||||
|
.bInterfaceProtocol = (pr), \
|
||||||
|
.driver_info = (flags) \
|
||||||
|
}
|
||||||
|
|
||||||
struct usb_device_id usb_storage_usb_ids[] = {
|
struct usb_device_id usb_storage_usb_ids[] = {
|
||||||
# include "unusual_devs.h"
|
# include "unusual_devs.h"
|
||||||
{ } /* Terminating entry */
|
{ } /* Terminating entry */
|
||||||
|
@ -50,6 +64,7 @@ MODULE_DEVICE_TABLE(usb, usb_storage_usb_ids);
|
||||||
#undef UNUSUAL_DEV
|
#undef UNUSUAL_DEV
|
||||||
#undef COMPLIANT_DEV
|
#undef COMPLIANT_DEV
|
||||||
#undef USUAL_DEV
|
#undef USUAL_DEV
|
||||||
|
#undef UNUSUAL_VENDOR_INTF
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The table of devices to ignore
|
* The table of devices to ignore
|
||||||
|
|
Reference in New Issue