@ -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 */