usb: gadget: renesas: convert to new style
using udc_start()/udc_stop() as we should. Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
@@ -730,10 +730,6 @@ static int usbhsg_try_stop(struct usbhs_priv *priv, u32 status)
|
|||||||
|
|
||||||
usbhsg_pipe_disable(dcp);
|
usbhsg_pipe_disable(dcp);
|
||||||
|
|
||||||
if (gpriv->driver &&
|
|
||||||
gpriv->driver->disconnect)
|
|
||||||
gpriv->driver->disconnect(&gpriv->gadget);
|
|
||||||
|
|
||||||
dev_dbg(dev, "stop gadget\n");
|
dev_dbg(dev, "stop gadget\n");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -744,31 +740,19 @@ static int usbhsg_try_stop(struct usbhs_priv *priv, u32 status)
|
|||||||
* linux usb function
|
* linux usb function
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
static int usbhsg_gadget_start(struct usb_gadget_driver *driver,
|
static int usbhsg_gadget_start(struct usb_gadget *gadget,
|
||||||
int (*bind)(struct usb_gadget *))
|
struct usb_gadget_driver *driver)
|
||||||
{
|
{
|
||||||
struct usbhsg_gpriv *gpriv;
|
struct usbhsg_gpriv *gpriv = usbhsg_gadget_to_gpriv(gadget);
|
||||||
struct usbhs_priv *priv;
|
struct usbhs_priv *priv;
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (!bind ||
|
if (!driver ||
|
||||||
!driver ||
|
|
||||||
!driver->setup ||
|
!driver->setup ||
|
||||||
driver->speed != USB_SPEED_HIGH)
|
driver->speed != USB_SPEED_HIGH)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
/*
|
|
||||||
* find unused controller
|
|
||||||
*/
|
|
||||||
usbhsg_for_each_controller(gpriv) {
|
|
||||||
if (!gpriv->driver)
|
|
||||||
goto find_unused_controller;
|
|
||||||
}
|
|
||||||
return -ENODEV;
|
|
||||||
|
|
||||||
find_unused_controller:
|
|
||||||
|
|
||||||
dev = usbhsg_gpriv_to_dev(gpriv);
|
dev = usbhsg_gpriv_to_dev(gpriv);
|
||||||
priv = usbhsg_gpriv_to_priv(gpriv);
|
priv = usbhsg_gpriv_to_priv(gpriv);
|
||||||
|
|
||||||
@@ -782,19 +766,8 @@ find_unused_controller:
|
|||||||
goto add_fail;
|
goto add_fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = bind(&gpriv->gadget);
|
|
||||||
if (ret) {
|
|
||||||
dev_err(dev, "bind to driver %s error %d\n",
|
|
||||||
driver->driver.name, ret);
|
|
||||||
goto bind_fail;
|
|
||||||
}
|
|
||||||
|
|
||||||
dev_dbg(dev, "bind %s\n", driver->driver.name);
|
|
||||||
|
|
||||||
return usbhsg_try_start(priv, USBHSG_STATUS_REGISTERD);
|
return usbhsg_try_start(priv, USBHSG_STATUS_REGISTERD);
|
||||||
|
|
||||||
bind_fail:
|
|
||||||
device_del(&gpriv->gadget.dev);
|
|
||||||
add_fail:
|
add_fail:
|
||||||
gpriv->driver = NULL;
|
gpriv->driver = NULL;
|
||||||
gpriv->gadget.dev.driver = NULL;
|
gpriv->gadget.dev.driver = NULL;
|
||||||
@@ -802,9 +775,10 @@ add_fail:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int usbhsg_gadget_stop(struct usb_gadget_driver *driver)
|
static int usbhsg_gadget_stop(struct usb_gadget *gadget,
|
||||||
|
struct usb_gadget_driver *driver)
|
||||||
{
|
{
|
||||||
struct usbhsg_gpriv *gpriv;
|
struct usbhsg_gpriv *gpriv = usbhsg_gadget_to_gpriv(gadget);
|
||||||
struct usbhs_priv *priv;
|
struct usbhs_priv *priv;
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
|
|
||||||
@@ -812,17 +786,6 @@ static int usbhsg_gadget_stop(struct usb_gadget_driver *driver)
|
|||||||
!driver->unbind)
|
!driver->unbind)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
/*
|
|
||||||
* find controller
|
|
||||||
*/
|
|
||||||
usbhsg_for_each_controller(gpriv) {
|
|
||||||
if (gpriv->driver == driver)
|
|
||||||
goto find_matching_controller;
|
|
||||||
}
|
|
||||||
return -ENODEV;
|
|
||||||
|
|
||||||
find_matching_controller:
|
|
||||||
|
|
||||||
dev = usbhsg_gpriv_to_dev(gpriv);
|
dev = usbhsg_gpriv_to_dev(gpriv);
|
||||||
priv = usbhsg_gpriv_to_priv(gpriv);
|
priv = usbhsg_gpriv_to_priv(gpriv);
|
||||||
|
|
||||||
@@ -830,12 +793,6 @@ find_matching_controller:
|
|||||||
device_del(&gpriv->gadget.dev);
|
device_del(&gpriv->gadget.dev);
|
||||||
gpriv->driver = NULL;
|
gpriv->driver = NULL;
|
||||||
|
|
||||||
if (driver->disconnect)
|
|
||||||
driver->disconnect(&gpriv->gadget);
|
|
||||||
|
|
||||||
driver->unbind(&gpriv->gadget);
|
|
||||||
dev_dbg(dev, "unbind %s\n", driver->driver.name);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -852,8 +809,8 @@ static int usbhsg_get_frame(struct usb_gadget *gadget)
|
|||||||
|
|
||||||
static struct usb_gadget_ops usbhsg_gadget_ops = {
|
static struct usb_gadget_ops usbhsg_gadget_ops = {
|
||||||
.get_frame = usbhsg_get_frame,
|
.get_frame = usbhsg_get_frame,
|
||||||
.start = usbhsg_gadget_start,
|
.udc_start = usbhsg_gadget_start,
|
||||||
.stop = usbhsg_gadget_stop,
|
.udc_stop = usbhsg_gadget_stop,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int usbhsg_start(struct usbhs_priv *priv)
|
static int usbhsg_start(struct usbhs_priv *priv)
|
||||||
|
Reference in New Issue
Block a user