All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bastien Nocera <hadess@hadess.net>
To: linux-usb@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Benjamin Tissoires <benjamin.tissoires@redhat.com>,
	Bastien Nocera <hadess@hadess.net>,
	Alan Stern <stern@rowland.harvard.edu>
Subject: [PATCH v3 3/6] USB: Implement usb_device_match_id()
Date: Wed, 16 Oct 2019 11:39:30 +0200	[thread overview]
Message-ID: <20191016093933.693-4-hadess@hadess.net> (raw)
In-Reply-To: <20191016093933.693-1-hadess@hadess.net>

Match a usb_device with a table of IDs.

Signed-off-by: Bastien Nocera <hadess@hadess.net>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
---
 drivers/usb/core/driver.c | 14 ++++++++++++++
 drivers/usb/core/usb.h    |  2 ++
 2 files changed, 16 insertions(+)

diff --git drivers/usb/core/driver.c drivers/usb/core/driver.c
index d3787d084937..697898327b44 100644
--- drivers/usb/core/driver.c
+++ drivers/usb/core/driver.c
@@ -800,6 +800,20 @@ const struct usb_device_id *usb_match_id(struct usb_interface *interface,
 }
 EXPORT_SYMBOL_GPL(usb_match_id);
 
+const struct usb_device_id *usb_device_match_id(struct usb_device *udev,
+				const struct usb_device_id *id)
+{
+	if (!id)
+		return NULL;
+
+	for (; id->idVendor || id->idProduct ; id++) {
+		if (usb_match_device(udev, id))
+			return id;
+	}
+
+	return NULL;
+}
+
 static int usb_device_match(struct device *dev, struct device_driver *drv)
 {
 	/* devices and interfaces are handled separately */
diff --git drivers/usb/core/usb.h drivers/usb/core/usb.h
index bbe24817315e..f1dc63848219 100644
--- drivers/usb/core/usb.h
+++ drivers/usb/core/usb.h
@@ -69,6 +69,8 @@ extern int usb_match_one_id_intf(struct usb_device *dev,
 				 const struct usb_device_id *id);
 extern int usb_match_device(struct usb_device *dev,
 			    const struct usb_device_id *id);
+extern const struct usb_device_id *usb_device_match_id(struct usb_device *udev,
+				const struct usb_device_id *id);
 extern void usb_forced_unbind_intf(struct usb_interface *intf);
 extern void usb_unbind_and_rebind_marked_interfaces(struct usb_device *udev);
 
-- 
2.21.0


  parent reply	other threads:[~2019-10-16  9:39 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-16  9:39 [PATCH v3 0/6] Add Apple MFi fastcharge USB device driver Bastien Nocera
2019-10-16  9:39 ` [PATCH v3 1/6] USB: Export generic USB device driver functions Bastien Nocera
2019-10-16  9:39 ` [PATCH v3 2/6] USB: Make it possible to "subclass" usb_device_driver Bastien Nocera
2019-10-16  9:39 ` Bastien Nocera [this message]
2019-10-16  9:39 ` [PATCH v3 4/6] USB: Select better matching USB drivers when available Bastien Nocera
2019-10-16  9:39 ` [PATCH v3 5/6] USB: Fallback to generic driver when specific driver fails Bastien Nocera
2019-10-16  9:39 ` [PATCH v3 6/6] USB: Add driver to control USB fast charge for iOS devices Bastien Nocera
2019-11-21 15:20 ` [PATCH v3 0/6] Add Apple MFi fastcharge USB device driver Bastien Nocera
2020-01-07  8:46   ` Bastien Nocera
2020-01-07  9:35     ` Greg Kroah-Hartman
2020-01-07  9:48       ` Bastien Nocera
2020-02-11  0:21       ` Bastien Nocera
2020-02-12 17:52         ` Greg Kroah-Hartman
2020-02-12 19:06 ` Greg Kroah-Hartman
2020-02-12 23:05   ` Bastien Nocera
2020-02-12 23:17     ` Greg Kroah-Hartman
2020-02-12 23:24       ` Bastien Nocera

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191016093933.693-4-hadess@hadess.net \
    --to=hadess@hadess.net \
    --cc=benjamin.tissoires@redhat.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=stern@rowland.harvard.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.