Loading drivers/usb/gadget/dummy_hcd.c +23 −10 Original line number Diff line number Diff line Loading @@ -816,15 +816,14 @@ usb_gadget_register_driver (struct usb_gadget_driver *driver) dum->gadget.dev.driver = &driver->driver; dev_dbg (udc_dev(dum), "binding gadget driver '%s'\n", driver->driver.name); if ((retval = driver->bind (&dum->gadget)) != 0) { dum->driver = NULL; dum->gadget.dev.driver = NULL; return retval; } if ((retval = driver->bind (&dum->gadget)) != 0) goto err_bind_gadget; driver->driver.bus = dum->gadget.dev.parent->bus; driver_register (&driver->driver); device_bind_driver (&dum->gadget.dev); if ((retval = driver_register (&driver->driver)) != 0) goto err_register; if ((retval = device_bind_driver (&dum->gadget.dev)) != 0) goto err_bind_driver; /* khubd will enumerate this in a while */ spin_lock_irq (&dum->lock); Loading @@ -834,6 +833,19 @@ usb_gadget_register_driver (struct usb_gadget_driver *driver) usb_hcd_poll_rh_status (dummy_to_hcd (dum)); return 0; err_bind_driver: driver_unregister (&driver->driver); err_register: driver->unbind (&dum->gadget); spin_lock_irq (&dum->lock); dum->pullup = 0; set_link_state (dum); spin_unlock_irq (&dum->lock); err_bind_gadget: dum->driver = NULL; dum->gadget.dev.driver = NULL; return retval; } EXPORT_SYMBOL (usb_gadget_register_driver); Loading Loading @@ -916,7 +928,9 @@ static int dummy_udc_probe (struct platform_device *pdev) usb_get_hcd (dummy_to_hcd (dum)); platform_set_drvdata (pdev, dum); device_create_file (&dum->gadget.dev, &dev_attr_function); rc = device_create_file (&dum->gadget.dev, &dev_attr_function); if (rc < 0) device_unregister (&dum->gadget.dev); return rc; } Loading Loading @@ -1864,8 +1878,7 @@ static int dummy_start (struct usb_hcd *hcd) #endif /* FIXME 'urbs' should be a per-device thing, maybe in usbcore */ device_create_file (dummy_dev(dum), &dev_attr_urbs); return 0; return device_create_file (dummy_dev(dum), &dev_attr_urbs); } static void dummy_stop (struct usb_hcd *hcd) Loading Loading
drivers/usb/gadget/dummy_hcd.c +23 −10 Original line number Diff line number Diff line Loading @@ -816,15 +816,14 @@ usb_gadget_register_driver (struct usb_gadget_driver *driver) dum->gadget.dev.driver = &driver->driver; dev_dbg (udc_dev(dum), "binding gadget driver '%s'\n", driver->driver.name); if ((retval = driver->bind (&dum->gadget)) != 0) { dum->driver = NULL; dum->gadget.dev.driver = NULL; return retval; } if ((retval = driver->bind (&dum->gadget)) != 0) goto err_bind_gadget; driver->driver.bus = dum->gadget.dev.parent->bus; driver_register (&driver->driver); device_bind_driver (&dum->gadget.dev); if ((retval = driver_register (&driver->driver)) != 0) goto err_register; if ((retval = device_bind_driver (&dum->gadget.dev)) != 0) goto err_bind_driver; /* khubd will enumerate this in a while */ spin_lock_irq (&dum->lock); Loading @@ -834,6 +833,19 @@ usb_gadget_register_driver (struct usb_gadget_driver *driver) usb_hcd_poll_rh_status (dummy_to_hcd (dum)); return 0; err_bind_driver: driver_unregister (&driver->driver); err_register: driver->unbind (&dum->gadget); spin_lock_irq (&dum->lock); dum->pullup = 0; set_link_state (dum); spin_unlock_irq (&dum->lock); err_bind_gadget: dum->driver = NULL; dum->gadget.dev.driver = NULL; return retval; } EXPORT_SYMBOL (usb_gadget_register_driver); Loading Loading @@ -916,7 +928,9 @@ static int dummy_udc_probe (struct platform_device *pdev) usb_get_hcd (dummy_to_hcd (dum)); platform_set_drvdata (pdev, dum); device_create_file (&dum->gadget.dev, &dev_attr_function); rc = device_create_file (&dum->gadget.dev, &dev_attr_function); if (rc < 0) device_unregister (&dum->gadget.dev); return rc; } Loading Loading @@ -1864,8 +1878,7 @@ static int dummy_start (struct usb_hcd *hcd) #endif /* FIXME 'urbs' should be a per-device thing, maybe in usbcore */ device_create_file (dummy_dev(dum), &dev_attr_urbs); return 0; return device_create_file (dummy_dev(dum), &dev_attr_urbs); } static void dummy_stop (struct usb_hcd *hcd) Loading