Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 07c7be3d authored by fangxiaozhi's avatar fangxiaozhi Committed by Greg Kroah-Hartman
Browse files

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: default avatarfangxiaozhi <huananhu@huawei.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0ba3b2cc
Loading
Loading
Loading
Loading
+12 −0
Original line number Original line Diff line number Diff line
@@ -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


+15 −0
Original line number Original line Diff line number Diff line
@@ -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