Revert: d7022078269b93dc6ee613a0a8519ce2ebe4a726
Accidentally merged without proper testing.
Change-Id: Iea6c3f7cd383357ac657fd15fde08cbab86bf809
Signed-off-by: David Brown <davidb@codeaurora.org>
diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c
index cbcb4c7..d3dcabc 100644
--- a/drivers/usb/gadget/dummy_hcd.c
+++ b/drivers/usb/gadget/dummy_hcd.c
@@ -425,18 +425,10 @@
(desc->bEndpointAddress & USB_DIR_IN) ? "in" : "out",
({ char *val;
switch (desc->bmAttributes & 0x03) {
- case USB_ENDPOINT_XFER_BULK:
- val = "bulk";
- break;
- case USB_ENDPOINT_XFER_ISOC:
- val = "iso";
- break;
- case USB_ENDPOINT_XFER_INT:
- val = "intr";
- break;
- default:
- val = "ctrl";
- break;
+ case USB_ENDPOINT_XFER_BULK: val = "bulk"; break;
+ case USB_ENDPOINT_XFER_ISOC: val = "iso"; break;
+ case USB_ENDPOINT_XFER_INT: val = "intr"; break;
+ default: val = "ctrl"; break;
}; val; }),
max);
@@ -718,17 +710,11 @@
return 0;
}
-static int dummy_udc_start(struct usb_gadget_driver *driver,
- int (*bind)(struct usb_gadget *));
-static int dummy_udc_stop(struct usb_gadget_driver *driver);
-
static const struct usb_gadget_ops dummy_ops = {
.get_frame = dummy_g_get_frame,
.wakeup = dummy_wakeup,
.set_selfpowered = dummy_set_selfpowered,
.pullup = dummy_pullup,
- .start = dummy_udc_start,
- .stop = dummy_udc_stop,
};
/*-------------------------------------------------------------------------*/
@@ -761,7 +747,8 @@
* for each driver that registers: just add to a big root hub.
*/
-static int dummy_udc_start(struct usb_gadget_driver *driver,
+int
+usb_gadget_probe_driver(struct usb_gadget_driver *driver,
int (*bind)(struct usb_gadget *))
{
struct dummy *dum = the_controller;
@@ -825,8 +812,10 @@
usb_hcd_poll_rh_status (dummy_to_hcd (dum));
return 0;
}
+EXPORT_SYMBOL(usb_gadget_probe_driver);
-static int dummy_udc_stop(struct usb_gadget_driver *driver)
+int
+usb_gadget_unregister_driver (struct usb_gadget_driver *driver)
{
struct dummy *dum = the_controller;
unsigned long flags;
@@ -856,6 +845,7 @@
usb_hcd_poll_rh_status (dummy_to_hcd (dum));
return 0;
}
+EXPORT_SYMBOL (usb_gadget_unregister_driver);
#undef is_enabled
@@ -902,20 +892,11 @@
return rc;
}
- rc = usb_add_gadget_udc(&pdev->dev, &dum->gadget);
- if (rc < 0)
- goto err_udc;
-
rc = device_create_file (&dum->gadget.dev, &dev_attr_function);
if (rc < 0)
- goto err_dev;
- platform_set_drvdata(pdev, dum);
- return rc;
-
-err_dev:
- usb_del_gadget_udc(&dum->gadget);
-err_udc:
- device_unregister(&dum->gadget.dev);
+ device_unregister (&dum->gadget.dev);
+ else
+ platform_set_drvdata(pdev, dum);
return rc;
}
@@ -923,7 +904,6 @@
{
struct dummy *dum = platform_get_drvdata (pdev);
- usb_del_gadget_udc(&dum->gadget);
platform_set_drvdata (pdev, NULL);
device_remove_file (&dum->gadget.dev, &dev_attr_function);
device_unregister (&dum->gadget.dev);
@@ -1806,34 +1786,18 @@
urb,
({ char *s;
switch (urb->dev->speed) {
- case USB_SPEED_LOW:
- s = "ls";
- break;
- case USB_SPEED_FULL:
- s = "fs";
- break;
- case USB_SPEED_HIGH:
- s = "hs";
- break;
- default:
- s = "?";
- break;
+ case USB_SPEED_LOW: s = "ls"; break;
+ case USB_SPEED_FULL: s = "fs"; break;
+ case USB_SPEED_HIGH: s = "hs"; break;
+ default: s = "?"; break;
}; s; }),
ep, ep ? (usb_pipein (urb->pipe) ? "in" : "out") : "",
({ char *s; \
switch (usb_pipetype (urb->pipe)) { \
- case PIPE_CONTROL: \
- s = ""; \
- break; \
- case PIPE_BULK: \
- s = "-bulk"; \
- break; \
- case PIPE_INTERRUPT: \
- s = "-int"; \
- break; \
- default: \
- s = "-iso"; \
- break; \
+ case PIPE_CONTROL: s = ""; break; \
+ case PIPE_BULK: s = "-bulk"; break; \
+ case PIPE_INTERRUPT: s = "-int"; break; \
+ default: s = "-iso"; break; \
}; s;}),
urb->actual_length, urb->transfer_buffer_length);
}
@@ -1899,6 +1863,7 @@
dum = hcd_to_dummy (hcd);
device_remove_file (dummy_dev(dum), &dev_attr_urbs);
+ usb_gadget_unregister_driver (dum->driver);
dev_info (dummy_dev(dum), "stopped\n");
}