mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-27 19:37:10 +02:00
cns3xxx: fix dwc_otg driver compat with udc-core
function. This removes those from the dwc_otg driver and removes the patch that comments out the linkage of udc-core so that the dwc_otg driver can co-exist happily with other USB Device Controllers. Signed-off-by: Tim Harvey <tharvey@gateworks.com> Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34475 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
5edbeec73f
commit
d97ab55f5d
@ -2416,87 +2416,4 @@ void dwc_otg_pcd_remove(struct platform_device *pdev)
|
||||
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 */
|
||||
|
@ -56,14 +56,3 @@
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user