otg_dev->pcd = 0;
}
-/**
- * This function registers a gadget driver with the PCD.
- *
- * When a driver is successfully registered, it will receive control
- * requests including set_configuration(), which enables non-control
- * requests. then usb traffic follows until a disconnect is reported.
- * then a host may connect again, or the driver might get unbound.
- *
- * @param driver The driver being registered
- */
-int usb_gadget_probe_driver(struct usb_gadget_driver *driver,
- int (*bind)(struct usb_gadget *))
-{
- int retval;
-
- DWC_DEBUGPL(DBG_PCD, "registering gadget driver '%s'\n", driver->driver.name);
-
- if (!driver || driver->max_speed == USB_SPEED_UNKNOWN ||
- !bind ||
- !driver->unbind ||
- !driver->disconnect ||
- !driver->setup) {
- DWC_DEBUGPL(DBG_PCDV,"EINVAL\n");
- return -EINVAL;
- }
- if (s_pcd == 0) {
- DWC_DEBUGPL(DBG_PCDV,"ENODEV\n");
- return -ENODEV;
- }
- if (s_pcd->driver != 0) {
- DWC_DEBUGPL(DBG_PCDV,"EBUSY (%p)\n", s_pcd->driver);
- return -EBUSY;
- }
-
- /* hook up the driver */
- s_pcd->driver = driver;
- s_pcd->gadget.dev.driver = &driver->driver;
-
- DWC_DEBUGPL(DBG_PCD, "bind to driver %s\n", driver->driver.name);
- retval = bind(&s_pcd->gadget);
- if (retval) {
- DWC_ERROR("bind to driver %s --> error %d\n",
- driver->driver.name, retval);
- s_pcd->driver = 0;
- s_pcd->gadget.dev.driver = 0;
- return retval;
- }
- DWC_DEBUGPL(DBG_ANY, "registered gadget driver '%s'\n",
- driver->driver.name);
- return 0;
-}
-
-EXPORT_SYMBOL(usb_gadget_probe_driver);
-
-/**
- * This function unregisters a gadget driver
- *
- * @param driver The driver being unregistered
- */
-int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
-{
- //DWC_DEBUGPL(DBG_PCDV,"%s(%p)\n", __func__, _driver);
-
- if (s_pcd == 0) {
- DWC_DEBUGPL(DBG_ANY, "%s Return(%d): s_pcd==0\n", __func__,
- -ENODEV);
- return -ENODEV;
- }
- if (driver == 0 || driver != s_pcd->driver) {
- DWC_DEBUGPL(DBG_ANY, "%s Return(%d): driver?\n", __func__,
- -EINVAL);
- return -EINVAL;
- }
-
- driver->unbind(&s_pcd->gadget);
- s_pcd->driver = 0;
-
- DWC_DEBUGPL(DBG_ANY, "unregistered driver '%s'\n",
- driver->driver.name);
- return 0;
-}
-EXPORT_SYMBOL(usb_gadget_unregister_driver);
-
#endif /* DWC_HOST_ONLY */
help
A USB device uses a controller to talk to its host.
Systems should have only one such upstream link.
---- a/drivers/usb/gadget/Makefile
-+++ b/drivers/usb/gadget/Makefile
-@@ -3,7 +3,7 @@
- #
- ccflags-$(CONFIG_USB_GADGET_DEBUG) := -DDEBUG
-
--obj-$(CONFIG_USB_GADGET) += udc-core.o
-+#obj-$(CONFIG_USB_GADGET) += udc-core.o
- obj-$(CONFIG_USB_DUMMY_HCD) += dummy_hcd.o
- obj-$(CONFIG_USB_NET2272) += net2272.o
- obj-$(CONFIG_USB_NET2280) += net2280.o