Loading drivers/usb/gadget/m66592-udc.c +19 −51 Original line number Diff line number Diff line Loading @@ -1463,42 +1463,16 @@ static struct usb_ep_ops m66592_ep_ops = { }; /*-------------------------------------------------------------------------*/ static struct m66592 *the_controller; static int m66592_start(struct usb_gadget_driver *driver, int (*bind)(struct usb_gadget *, struct usb_gadget_driver *)) static int m66592_udc_start(struct usb_gadget *g, struct usb_gadget_driver *driver) { struct m66592 *m66592 = the_controller; int retval; if (!driver || driver->max_speed < USB_SPEED_HIGH || !bind || !driver->setup) return -EINVAL; if (!m66592) return -ENODEV; if (m66592->driver) return -EBUSY; struct m66592 *m66592 = to_m66592(g); /* hook up the driver */ driver->driver.bus = NULL; m66592->driver = driver; m66592->gadget.dev.driver = &driver->driver; retval = device_add(&m66592->gadget.dev); if (retval) { pr_err("device_add error (%d)\n", retval); goto error; } retval = bind(&m66592->gadget, driver); if (retval) { pr_err("bind to driver error (%d)\n", retval); device_del(&m66592->gadget.dev); goto error; } m66592_bset(m66592, M66592_VBSE | M66592_URST, M66592_INTENB0); if (m66592_read(m66592, M66592_INTSTS0) & M66592_VBSTS) { m66592_start_xclock(m66592); Loading @@ -1510,26 +1484,12 @@ static int m66592_start(struct usb_gadget_driver *driver, } return 0; error: m66592->driver = NULL; m66592->gadget.dev.driver = NULL; return retval; } static int m66592_stop(struct usb_gadget_driver *driver) static int m66592_udc_stop(struct usb_gadget *g, struct usb_gadget_driver *driver) { struct m66592 *m66592 = the_controller; unsigned long flags; if (driver != m66592->driver || !driver->unbind) return -EINVAL; spin_lock_irqsave(&m66592->lock, flags); if (m66592->gadget.speed != USB_SPEED_UNKNOWN) m66592_usb_disconnect(m66592); spin_unlock_irqrestore(&m66592->lock, flags); struct m66592 *m66592 = to_m66592(g); m66592_bclr(m66592, M66592_VBSE | M66592_URST, M66592_INTENB0); Loading @@ -1539,8 +1499,8 @@ static int m66592_stop(struct usb_gadget_driver *driver) init_controller(m66592); disable_controller(m66592); device_del(&m66592->gadget.dev); m66592->driver = NULL; return 0; } Loading Loading @@ -1568,8 +1528,8 @@ static int m66592_pullup(struct usb_gadget *gadget, int is_on) static struct usb_gadget_ops m66592_gadget_ops = { .get_frame = m66592_get_frame, .start = m66592_start, .stop = m66592_stop, .udc_start = m66592_udc_start, .udc_stop = m66592_udc_stop, .pullup = m66592_pullup, }; Loading @@ -1578,6 +1538,7 @@ static int __exit m66592_remove(struct platform_device *pdev) struct m66592 *m66592 = dev_get_drvdata(&pdev->dev); usb_del_gadget_udc(&m66592->gadget); device_del(&m66592->gadget.dev); del_timer_sync(&m66592->timer); iounmap(m66592->reg); Loading Loading @@ -1706,8 +1667,6 @@ static int __init m66592_probe(struct platform_device *pdev) m66592->pipenum2ep[0] = &m66592->ep[0]; m66592->epaddr2ep[0] = &m66592->ep[0]; the_controller = m66592; m66592->ep0_req = m66592_alloc_request(&m66592->ep[0].ep, GFP_KERNEL); if (m66592->ep0_req == NULL) goto clean_up3; Loading @@ -1715,6 +1674,12 @@ static int __init m66592_probe(struct platform_device *pdev) init_controller(m66592); ret = device_add(&m66592->gadget.dev); if (ret) { pr_err("device_add error (%d)\n", ret); goto err_device_add; } ret = usb_add_gadget_udc(&pdev->dev, &m66592->gadget); if (ret) goto err_add_udc; Loading @@ -1723,6 +1688,9 @@ static int __init m66592_probe(struct platform_device *pdev) return 0; err_add_udc: device_del(&m66592->gadget.dev); err_device_add: m66592_free_request(&m66592->ep[0].ep, m66592->ep0_req); clean_up3: Loading drivers/usb/gadget/m66592-udc.h +1 −0 Original line number Diff line number Diff line Loading @@ -492,6 +492,7 @@ struct m66592 { int isochronous; int num_dma; }; #define to_m66592(g) (container_of((g), struct m66592, gadget)) #define gadget_to_m66592(_gadget) container_of(_gadget, struct m66592, gadget) #define m66592_to_gadget(m66592) (&m66592->gadget) Loading Loading
drivers/usb/gadget/m66592-udc.c +19 −51 Original line number Diff line number Diff line Loading @@ -1463,42 +1463,16 @@ static struct usb_ep_ops m66592_ep_ops = { }; /*-------------------------------------------------------------------------*/ static struct m66592 *the_controller; static int m66592_start(struct usb_gadget_driver *driver, int (*bind)(struct usb_gadget *, struct usb_gadget_driver *)) static int m66592_udc_start(struct usb_gadget *g, struct usb_gadget_driver *driver) { struct m66592 *m66592 = the_controller; int retval; if (!driver || driver->max_speed < USB_SPEED_HIGH || !bind || !driver->setup) return -EINVAL; if (!m66592) return -ENODEV; if (m66592->driver) return -EBUSY; struct m66592 *m66592 = to_m66592(g); /* hook up the driver */ driver->driver.bus = NULL; m66592->driver = driver; m66592->gadget.dev.driver = &driver->driver; retval = device_add(&m66592->gadget.dev); if (retval) { pr_err("device_add error (%d)\n", retval); goto error; } retval = bind(&m66592->gadget, driver); if (retval) { pr_err("bind to driver error (%d)\n", retval); device_del(&m66592->gadget.dev); goto error; } m66592_bset(m66592, M66592_VBSE | M66592_URST, M66592_INTENB0); if (m66592_read(m66592, M66592_INTSTS0) & M66592_VBSTS) { m66592_start_xclock(m66592); Loading @@ -1510,26 +1484,12 @@ static int m66592_start(struct usb_gadget_driver *driver, } return 0; error: m66592->driver = NULL; m66592->gadget.dev.driver = NULL; return retval; } static int m66592_stop(struct usb_gadget_driver *driver) static int m66592_udc_stop(struct usb_gadget *g, struct usb_gadget_driver *driver) { struct m66592 *m66592 = the_controller; unsigned long flags; if (driver != m66592->driver || !driver->unbind) return -EINVAL; spin_lock_irqsave(&m66592->lock, flags); if (m66592->gadget.speed != USB_SPEED_UNKNOWN) m66592_usb_disconnect(m66592); spin_unlock_irqrestore(&m66592->lock, flags); struct m66592 *m66592 = to_m66592(g); m66592_bclr(m66592, M66592_VBSE | M66592_URST, M66592_INTENB0); Loading @@ -1539,8 +1499,8 @@ static int m66592_stop(struct usb_gadget_driver *driver) init_controller(m66592); disable_controller(m66592); device_del(&m66592->gadget.dev); m66592->driver = NULL; return 0; } Loading Loading @@ -1568,8 +1528,8 @@ static int m66592_pullup(struct usb_gadget *gadget, int is_on) static struct usb_gadget_ops m66592_gadget_ops = { .get_frame = m66592_get_frame, .start = m66592_start, .stop = m66592_stop, .udc_start = m66592_udc_start, .udc_stop = m66592_udc_stop, .pullup = m66592_pullup, }; Loading @@ -1578,6 +1538,7 @@ static int __exit m66592_remove(struct platform_device *pdev) struct m66592 *m66592 = dev_get_drvdata(&pdev->dev); usb_del_gadget_udc(&m66592->gadget); device_del(&m66592->gadget.dev); del_timer_sync(&m66592->timer); iounmap(m66592->reg); Loading Loading @@ -1706,8 +1667,6 @@ static int __init m66592_probe(struct platform_device *pdev) m66592->pipenum2ep[0] = &m66592->ep[0]; m66592->epaddr2ep[0] = &m66592->ep[0]; the_controller = m66592; m66592->ep0_req = m66592_alloc_request(&m66592->ep[0].ep, GFP_KERNEL); if (m66592->ep0_req == NULL) goto clean_up3; Loading @@ -1715,6 +1674,12 @@ static int __init m66592_probe(struct platform_device *pdev) init_controller(m66592); ret = device_add(&m66592->gadget.dev); if (ret) { pr_err("device_add error (%d)\n", ret); goto err_device_add; } ret = usb_add_gadget_udc(&pdev->dev, &m66592->gadget); if (ret) goto err_add_udc; Loading @@ -1723,6 +1688,9 @@ static int __init m66592_probe(struct platform_device *pdev) return 0; err_add_udc: device_del(&m66592->gadget.dev); err_device_add: m66592_free_request(&m66592->ep[0].ep, m66592->ep0_req); clean_up3: Loading
drivers/usb/gadget/m66592-udc.h +1 −0 Original line number Diff line number Diff line Loading @@ -492,6 +492,7 @@ struct m66592 { int isochronous; int num_dma; }; #define to_m66592(g) (container_of((g), struct m66592, gadget)) #define gadget_to_m66592(_gadget) container_of(_gadget, struct m66592, gadget) #define m66592_to_gadget(m66592) (&m66592->gadget) Loading