1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-27 20:29:41 +02:00

[generic/3.7]: fix 820-usb_add_usb_find_device_by_name.patch

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34254 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
kaloz 2012-11-19 10:56:09 +00:00
parent 4318f32f11
commit 15d41bfc9b

View File

@ -8,6 +8,7 @@
+ const char *name) + const char *name)
+{ +{
+ struct usb_device *ret_dev = NULL; + struct usb_device *ret_dev = NULL;
+ struct usb_device *childdev = NULL;
+ int child; + int child;
+ +
+ dev_dbg(&dev->dev, "check for name %s ...\n", name); + dev_dbg(&dev->dev, "check for name %s ...\n", name);
@ -18,13 +19,12 @@
+ ret_dev = usb_get_dev(dev); + ret_dev = usb_get_dev(dev);
+ goto exit; + goto exit;
+ } + }
+
+ /* look through all of the children of this device */ + /* look through all of the children of this device */
+ for (child = 0; child < dev->maxchild; ++child) { + usb_hub_for_each_child(dev, child, childdev) {
+ if (dev->children[child]) { + if (childdev) {
+ usb_lock_device(dev->children[child]); + usb_lock_device(childdev);
+ ret_dev = match_device_name(dev->children[child], name); + ret_dev = match_device_name(childdev, name);
+ usb_unlock_device(dev->children[child]); + usb_unlock_device(childdev);
+ if (ret_dev) + if (ret_dev)
+ goto exit; + goto exit;
+ } + }