Commit 478ff25a authored by Felipe Balbi's avatar Felipe Balbi

usb: gadget: r8a66597: convert to new style

convert to new style UDC registration and remove
the global 'the_controller' pointer.
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent af1d7056
...@@ -1738,23 +1738,18 @@ static struct usb_ep_ops r8a66597_ep_ops = { ...@@ -1738,23 +1738,18 @@ static struct usb_ep_ops r8a66597_ep_ops = {
}; };
/*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/
static struct r8a66597 *the_controller; static int r8a66597_start(struct usb_gadget *gadget,
struct usb_gadget_driver *driver)
static int r8a66597_start(struct usb_gadget_driver *driver,
int (*bind)(struct usb_gadget *))
{ {
struct r8a66597 *r8a66597 = the_controller; struct r8a66597 *r8a66597 = gadget_to_r8a66597(gadget);
int retval; int retval;
if (!driver if (!driver
|| driver->speed != USB_SPEED_HIGH || driver->speed != USB_SPEED_HIGH
|| !bind
|| !driver->setup) || !driver->setup)
return -EINVAL; return -EINVAL;
if (!r8a66597) if (!r8a66597)
return -ENODEV; return -ENODEV;
if (r8a66597->driver)
return -EBUSY;
/* hook up the driver */ /* hook up the driver */
driver->driver.bus = NULL; driver->driver.bus = NULL;
...@@ -1768,14 +1763,6 @@ static int r8a66597_start(struct usb_gadget_driver *driver, ...@@ -1768,14 +1763,6 @@ static int r8a66597_start(struct usb_gadget_driver *driver,
goto error; goto error;
} }
retval = bind(&r8a66597->gadget);
if (retval) {
dev_err(r8a66597_to_dev(r8a66597),
"bind to driver error (%d)\n", retval);
device_del(&r8a66597->gadget.dev);
goto error;
}
init_controller(r8a66597); init_controller(r8a66597);
r8a66597_bset(r8a66597, VBSE, INTENB0); r8a66597_bset(r8a66597, VBSE, INTENB0);
if (r8a66597_read(r8a66597, INTSTS0) & VBSTS) { if (r8a66597_read(r8a66597, INTSTS0) & VBSTS) {
...@@ -1796,23 +1783,17 @@ static int r8a66597_start(struct usb_gadget_driver *driver, ...@@ -1796,23 +1783,17 @@ static int r8a66597_start(struct usb_gadget_driver *driver,
return retval; return retval;
} }
static int r8a66597_stop(struct usb_gadget_driver *driver) static int r8a66597_stop(struct usb_gadget *gadget,
struct usb_gadget_driver *driver)
{ {
struct r8a66597 *r8a66597 = the_controller; struct r8a66597 *r8a66597 = gadget_to_r8a66597(gadget);
unsigned long flags; unsigned long flags;
if (driver != r8a66597->driver || !driver->unbind)
return -EINVAL;
spin_lock_irqsave(&r8a66597->lock, flags); spin_lock_irqsave(&r8a66597->lock, flags);
if (r8a66597->gadget.speed != USB_SPEED_UNKNOWN)
r8a66597_usb_disconnect(r8a66597);
r8a66597_bclr(r8a66597, VBSE, INTENB0); r8a66597_bclr(r8a66597, VBSE, INTENB0);
disable_controller(r8a66597); disable_controller(r8a66597);
spin_unlock_irqrestore(&r8a66597->lock, flags); spin_unlock_irqrestore(&r8a66597->lock, flags);
driver->unbind(&r8a66597->gadget);
device_del(&r8a66597->gadget.dev); device_del(&r8a66597->gadget.dev);
r8a66597->driver = NULL; r8a66597->driver = NULL;
return 0; return 0;
...@@ -1842,8 +1823,8 @@ static int r8a66597_pullup(struct usb_gadget *gadget, int is_on) ...@@ -1842,8 +1823,8 @@ static int r8a66597_pullup(struct usb_gadget *gadget, int is_on)
static struct usb_gadget_ops r8a66597_gadget_ops = { static struct usb_gadget_ops r8a66597_gadget_ops = {
.get_frame = r8a66597_get_frame, .get_frame = r8a66597_get_frame,
.start = r8a66597_start, .udc_start = r8a66597_start,
.stop = r8a66597_stop, .udc_stop = r8a66597_stop,
.pullup = r8a66597_pullup, .pullup = r8a66597_pullup,
}; };
...@@ -2010,8 +1991,6 @@ static int __init r8a66597_probe(struct platform_device *pdev) ...@@ -2010,8 +1991,6 @@ static int __init r8a66597_probe(struct platform_device *pdev)
r8a66597->pipenum2ep[0] = &r8a66597->ep[0]; r8a66597->pipenum2ep[0] = &r8a66597->ep[0];
r8a66597->epaddr2ep[0] = &r8a66597->ep[0]; r8a66597->epaddr2ep[0] = &r8a66597->ep[0];
the_controller = r8a66597;
r8a66597->ep0_req = r8a66597_alloc_request(&r8a66597->ep[0].ep, r8a66597->ep0_req = r8a66597_alloc_request(&r8a66597->ep[0].ep,
GFP_KERNEL); GFP_KERNEL);
if (r8a66597->ep0_req == NULL) if (r8a66597->ep0_req == NULL)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment