fix 820-usb_add_usb_find_device_by_name.patch

SVN-Revision: 34254
lede-17.01
Imre Kaloz 2012-11-19 10:56:09 +00:00
parent 4fa5781a95
commit 4c043300fc
1 changed files with 6 additions and 6 deletions

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;
+ } + }