usb: refactor gadget->dev registration
Subsystems (9)
cover usb: refactor gadget->dev registration
Hi folks,
Please comment on this series as I need help testing it on all UDC controllers so we can send it for v3.10 merge window.
NOTE: I will queue this series for v3.10 merge window, so make sure to test and comment.
cheers
Felipe Balbi (32):
usb: gadget: udc-core: allow udc class register gadget device
usb: dwc3: gadget: let udc-core manage gadget->dev
usb: musb: gadget: let udc-core manage gadget-dev
usb: gadget: omap_udc: let udc-core manage gadget->dev
usb: gadget: amd5536udc: let udc-core manage gadget->dev
usb: gadget: at91_udc: let udc-core manage gadget->dev
usb: gadget: atmel_usba_udc: let udc-core manage gadget->dev
usb: gadget: bcm63xx_udc: let udc-core manage gadget->dev
usb: gadget: dummy_hcd: let udc-core manage gadget->dev
usb: gadget: fsl_qe_udc: let udc-core manage gadget->dev
usb: gadget: fsl_udc_core: let udc-core manage gadget->dev
usb: gadget: fusb300_udc: let udc-core manage gadget->dev
usb: gadget: goku_udc: let udc-core manage gadget->dev
usb: gadget: imx_udc: let udc-core manage gadget->dev
usb: gadget: lpc32xx_udc: let udc-core manage gadget->dev
usb: gadget: m66592-udc: let udc-core manage gadget->dev
usb: gadget: mv_u3d_core: let udc-core manage gadget->dev
usb: gadget: mv_u3d_core: fix a compile warning
usb: gadget: mv_udc_core: let udc-core manage gadget->dev
usb: gadget: net2272: let udc-core manage gadget->dev
usb: gadget: net2280: let udc-core manage gadget->dev
usb: gadget: pch_udc: let udc-core manage gadget->dev
usb: gadget: r8a66597-udc: let udc-core manage gadget->dev
usb: gadget: s3c-hsotg: let udc-core manage gadget->dev
usb: gadget: s3c-hsudc: let udc-core manage gadget->dev
usb: gadget: s3c2410_udc: let udc-core manage gadget->dev
usb: renesas_usbhs: gadget: let udc-core manage gadget->dev
usb: gadget: pxa25x_udc: let udc-core manage gadget->dev
usb: gadget: pxa27x_udc: let udc-core manage gadget->dev
usb: chipidea: register debugging syfs on our device
usb: chipidea: let udc-core manage gadget->dev
usb: gadget: drop now unnecessary flag
drivers/usb/chipidea/udc.c | 18 ++++-------------- drivers/usb/dwc3/gadget.c | 16 +--------------- drivers/usb/gadget/amd5536udc.c | 8 -------- drivers/usb/gadget/at91_udc.c | 12 +----------- drivers/usb/gadget/atmel_usba_udc.c | 12 ------------ drivers/usb/gadget/bcm63xx_udc.c | 6 ------ drivers/usb/gadget/dummy_hcd.c | 9 --------- drivers/usb/gadget/fsl_qe_udc.c | 14 +------------- drivers/usb/gadget/fsl_udc_core.c | 8 +------- drivers/usb/gadget/fusb300_udc.c | 13 ------------- drivers/usb/gadget/goku_udc.c | 9 --------- drivers/usb/gadget/goku_udc.h | 3 +-- drivers/usb/gadget/imx_udc.c | 12 ------------ drivers/usb/gadget/lpc32xx_udc.c | 10 ---------- drivers/usb/gadget/m66592-udc.c | 12 ------------ drivers/usb/gadget/mv_u3d_core.c | 11 +---------- drivers/usb/gadget/mv_udc_core.c | 11 +---------- drivers/usb/gadget/net2272.c | 9 +-------- drivers/usb/gadget/net2280.c | 4 ---- drivers/usb/gadget/omap_udc.c | 11 +++-------- drivers/usb/gadget/pch_udc.c | 9 --------- drivers/usb/gadget/pxa25x_udc.c | 9 --------- drivers/usb/gadget/pxa27x_udc.c | 8 -------- drivers/usb/gadget/r8a66597-udc.c | 11 +---------- drivers/usb/gadget/s3c-hsotg.c | 13 ------------- drivers/usb/gadget/s3c-hsudc.c | 10 ---------- drivers/usb/gadget/s3c2410_udc.c | 9 --------- drivers/usb/gadget/udc-core.c | 20 ++++++++++++++++---- drivers/usb/musb/musb_gadget.c | 9 --------- drivers/usb/renesas_usbhs/mod_gadget.c | 10 +--------- 30 files changed, 33 insertions(+), 283 deletions(-)
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 1/32 usb: gadget: udc-core: allow udc class register gadget device
Currently all UDC drivers are calling device_register() before calling usb_add_gadget_udc(). In order to avoid code duplication, we can allow udc-core.c register that device.
However that would become a really large patch, so to cope with the meanwhile and allow us to write bite-sized patches, we're adding a flag which will be set by UDC driver once it removes the code for registering the gadget device.
Once all are converted, the new flag will be removed.
--- drivers/usb/gadget/udc-core.c | 23 +++++++++++++++++++---- include/linux/usb/gadget.h | 4 ++++ 2 files changed, 23 insertions(+), 4 deletions(-)
drivers/usb/gadget/udc-core.c +19 -4
@@ -173,6 +173,14 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget)if (!udc) goto err1; +if (gadget->register_my_device) { +dev_set_name (&gadget->dev,"gadget" ); + + ret =device_register (&gadget->dev); +if (ret) + goto err2; + } +device_initialize (&udc->dev); udc->dev.release = usb_udc_release; udc->dev.class = udc_class;
@@ -180,7 +188,7 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget) udc->dev.parent = parent; ret =dev_set_name (&udc->dev,"%s" ,kobject_name (&parent->kobj));if (ret) - goto err2; + goto err3; udc->gadget = gadget;
@@ -189,18 +197,22 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget) ret =device_add (&udc->dev);if (ret) - goto err3; + goto err4;mutex_unlock (&udc_lock);return 0 ; -err3: + +err4:list_del (&udc->list);mutex_unlock (&udc_lock); -err2: +err3:put_device (&udc->dev); +err2: +if (gadget->register_my_device) +put_device (&gadget->dev); err1:return ret; }
@@ -254,6 +266,9 @@ found:kobject_uevent (&udc->dev.kobj,KOBJ_REMOVE );device_unregister (&udc->dev); + +if (gadget->register_my_device) +device_unregister (&gadget->dev); }EXPORT_SYMBOL_GPL (usb_del_gadget_udc);
include/linux/usb/gadget.h +4 -0
@@ -494,6 +494,9 @@ struct usb_gadget_ops {* only supports HNP on a different root port. * @b_hnp_enable: OTG device feature flag, indicating that the A-Host * enabled HNP support. +* @register_my_device: Flag telling udc-core that UDC driver didn't +* register the gadget device to the driver model. Temporary until +* all UDC drivers are fixed up properly. * @name: Identifies the controller hardware type. Used in diagnostics * and sometimes configuration. * @dev: Driver model state for this abstract device.
@@ -531,6 +534,7 @@ struct usb_gadget { unsigned b_hnp_enable:1; unsigned a_hnp_support:1; unsigned a_alt_hnp_support:1; + unsigned register_my_device:1;const char *name;struct device dev;unsigned out_epnum;
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 1/32 usb: gadget: udc-core: allow udc class register gadget device
Hi Felipe,
Quoted 42 lines · On Thursday 24 of January 2013 17:45:39 Felipe Balbi wrote:
Currently all UDC drivers are calling
device_register()before callingusb_add_gadget_udc(). In order to avoid code duplication, we can allowudc-core.cregister that device.However that would become a really large patch, so to cope with the meanwhile and allow us to write bite-sized patches, we're adding a flag which will be set by UDC driver once it removes the code for registering the gadget device.
Once all are converted, the new flag will be removed.
Signed-off-by Felipe Balbi <[email protected]>--- drivers/usb/gadget/udc-core.c | 23 +++++++++++++++++++---- include/linux/usb/gadget.h | 4 ++++ 2 files changed, 23 insertions(+), 4 deletions(-)(quoted diff) +0
-0
b/drivers/usb/gadget/udc-core.cindex 2a9cd36..9195054 100644drivers/usb/gadget/udc-core.c +8
-0@@ -173,6 +173,14 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget) if (!udc) goto err1; +if (gadget->register_my_device) { +dev_set_name (&gadget->dev,"gadget" ); + + ret =device_register (&gadget->dev); +if (ret) + goto err2; + } +device_initialize (&udc->dev); udc->dev.release = usb_udc_release; udc->dev.class = udc_class;
drivers/usb/gadget/udc-core.c int usb_add_gadget_udc(struct device *parent, struct · line 191
Quoted 5 lines
drivers/usb/gadget/udc-core.c +1
-1@@ -180,7 +188,7 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget) udc->dev.parent = parent; ret =dev_set_name (&udc->dev,"%s" ,kobject_name (&parent->kobj));if (ret) - goto err2; + goto err3;
Just a nitpick: If you are at changing labels of error path, wouldn't it be better to give them some meaningful names? Like err_del_unlock, err_put_udc, err_put_gadget, err_ret.
Otherwise looks good. Nice idea.
Best regards,
Tomasz Figa
Quoted 61 lines
drivers/usb/gadget/udc-core.c +7
-3udc->gadget = gadget;@@ -189,18 +197,22 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget) ret =device_add (&udc->dev);if (ret) - goto err3; + goto err4;mutex_unlock (&udc_lock);return 0 ; -err3: + +err4:list_del (&udc->list);mutex_unlock (&udc_lock); -err2: +err3:put_device (&udc->dev); +err2: +if (gadget->register_my_device) +put_device (&gadget->dev); err1:return ret;}
drivers/usb/gadget/udc-core.c +3
-0@@ -254,6 +266,9 @@ found:kobject_uevent (&udc->dev.kobj,KOBJ_REMOVE );device_unregister (&udc->dev); + +if (gadget->register_my_device) +device_unregister (&gadget->dev); }EXPORT_SYMBOL_GPL (usb_del_gadget_udc);include/linux/usb/gadget.h +4
-0@@ -494,6 +494,9 @@ struct usb_gadget_ops {* only supports HNP on a different root port. * @b_hnp_enable: OTG device feature flag, indicating that the A-Host * enabled HNP support. +* @register_my_device: Flag telling udc-core that UDC driver didn't +* register the gadget device to the driver model. Temporary until +* all UDC drivers are fixed up properly. * @name: Identifies the controller hardware type. Used in diagnostics * and sometimes configuration. * @dev: Driver model state for this abstract device. @@ -531,6 +534,7 @@ struct usb_gadget { unsigned b_hnp_enable:1; unsigned a_hnp_support:1; unsigned a_alt_hnp_support:1; + unsigned register_my_device:1;const char *name;struct device dev;unsigned out_epnum;
PATCH 2/32 usb: dwc3: gadget: let udc-core manage gadget->dev
In reply to Felipe BalbiWe don't need to register that device ourselves
if we simply set gadget->register_my_device.
--- drivers/usb/dwc3/gadget.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-)
drivers/usb/dwc3/gadget.c +2 -15
@@ -2412,8 +2412,6 @@ int dwc3_gadget_init(struct dwc3 *dwc) goto err3; } -dev_set_name (&dwc->gadget.dev,"gadget" ); - dwc->gadget.ops = &dwc3_gadget_ops; dwc->gadget.max_speed =USB_SPEED_SUPER ; dwc->gadget.speed =USB_SPEED_UNKNOWN ;
@@ -2425,6 +2423,7 @@ int dwc3_gadget_init(struct dwc3 *dwc) dwc->gadget.dev.dma_parms = dwc->dev->dma_parms; dwc->gadget.dev.dma_mask = dwc->dev->dma_mask; dwc->gadget.dev.release = dwc3_gadget_release; + dwc->gadget.register_my_device = true; dwc->gadget.name ="dwc3-gadget" ;/*
@@ -2480,24 +2479,14 @@ int dwc3_gadget_init(struct dwc3 *dwc)dwc3_gadget_usb3_phy_suspend (dwc, false); } - ret =device_register (&dwc->gadget.dev); -if (ret) { -dev_err (dwc->dev,"failed to register gadget device\n" ); -put_device (&dwc->gadget.dev); - goto err6; - } - ret =usb_add_gadget_udc (dwc->dev, &dwc->gadget);if (ret) {dev_err (dwc->dev,"failed to register udc\n" ); - goto err7; + goto err6; }return 0 ; -err7: -device_unregister (&dwc->gadget.dev); - err6:dwc3_writel (dwc->regs,DWC3_DEVTEN ,0x00 );free_irq (irq, dwc);
@@ -2546,6 +2535,4 @@ void dwc3_gadget_exit(struct dwc3 *dwc)dma_free_coherent (dwc->dev,sizeof (*dwc->ctrl_req), dwc->ctrl_req, dwc->ctrl_req_addr); - -device_unregister (&dwc->gadget.dev); }
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 3/32 usb: musb: gadget: let udc-core manage gadget-dev
In reply to Felipe BalbiBy simply setting a flag, we can delete a little
boilerplate code.
--- drivers/usb/musb/musb_gadget.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-)
drivers/usb/musb/musb_gadget.c +1 -9
@@ -1871,12 +1871,11 @@ int musb_gadget_setup(struct musb *musb) musb->g.speed =USB_SPEED_UNKNOWN ;/* this "gadget" abstracts/virtualizes the controller */ -dev_set_name (&musb->g.dev,"gadget" ); musb->g.dev.parent = musb->controller; musb->g.dev.dma_mask = musb->controller->dma_mask; musb->g.dev.release = musb_gadget_release; musb->g.name = musb_driver_name; - + musb->g.register_my_device = true; musb->g.is_otg =1 ;musb_g_init_endpoints (musb);
@@ -1884,11 +1883,6 @@ int musb_gadget_setup(struct musb *musb) musb->is_active =0 ;musb_platform_try_idle (musb,0 ); - status =device_register (&musb->g.dev); -if (status !=0 ) { -put_device (&musb->g.dev); -return status; - } status =usb_add_gadget_udc (musb->controller, &musb->g);if (status) goto err;
@@ -1903,8 +1897,6 @@ err:void musb_gadget_cleanup (struct musb *musb) {usb_del_gadget_udc (&musb->g); -if (musb->g.dev.parent) -device_unregister (&musb->g.dev); }/*
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 4/32 usb: gadget: omap_udc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we drop some boilerplate code.
--- drivers/usb/gadget/omap_udc.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)
drivers/usb/gadget/omap_udc.c +4 -8
@@ -2631,10 +2631,9 @@ omap_udc_setup(struct platform_device *odev, struct usb_phy *xceiv) udc->gadget.max_speed =USB_SPEED_FULL ; udc->gadget.name = driver_name; -device_initialize (&udc->gadget.dev); -dev_set_name (&udc->gadget.dev,"gadget" ); udc->gadget.dev.release = omap_udc_release; udc->gadget.dev.parent = &odev->dev; + udc->gadget.register_my_device = true;if (use_dma) udc->gadget.dev.dma_mask = odev->dev.dma_mask;
@@ -2911,14 +2910,12 @@ bad_on_1710: }create_proc_file (); - status =device_add (&udc->gadget.dev); + status =usb_add_gadget_udc (&pdev->dev, &udc->gadget);if (status) goto cleanup4; - status =usb_add_gadget_udc (&pdev->dev, &udc->gadget); -if (!status) -return status; -/* If fail, fall through */ +return 0 ; + cleanup4:remove_proc_file ();
@@ -2989,7 +2986,6 @@ static int omap_udc_remove(struct platform_device *pdev)release_mem_region (pdev->resource[0 ].start, pdev->resource[0 ].end - pdev->resource[0 ].start +1 ); -device_unregister (&udc->gadget.dev);wait_for_completion (&done);return 0 ;
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 5/32 usb: gadget: amd5536udc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we drop some boilerplate code.
--- drivers/usb/gadget/amd5536udc.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-)
drivers/usb/gadget/amd5536udc.c +1 -8
@@ -3080,7 +3080,6 @@ static void udc_pci_remove(struct pci_dev *pdev)if (dev->active)pci_disable_device (pdev); -device_unregister (&dev->gadget.dev);pci_set_drvdata (pdev,NULL );udc_remove (dev);
@@ -3276,6 +3275,7 @@ static int udc_probe(struct udc *dev) dev->gadget.dev.release = gadget_release; dev->gadget.name = name; dev->gadget.max_speed =USB_SPEED_HIGH ; + dev->gadget.register_my_device = true;/* init registers, interrupts, ... */ startup_registers (dev);
@@ -3301,13 +3301,6 @@ static int udc_probe(struct udc *dev)if (retval) goto finished; - retval =device_register (&dev->gadget.dev); -if (retval) { -usb_del_gadget_udc (&dev->gadget); -put_device (&dev->gadget.dev); - goto finished; - } -/* timer init */ init_timer (&udc_timer); udc_timer.function = udc_timer_function;
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 6/32 usb: gadget: at91_udc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can remove some
boilerplate code.
--- drivers/usb/gadget/at91_udc.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-)
drivers/usb/gadget/at91_udc.c +2 -11
@@ -1726,6 +1726,7 @@ static int at91udc_probe(struct platform_device *pdev)/* init software state */ udc = &controller; + udc->gadget.register_my_device = true; udc->gadget.dev.parent = dev;if (pdev->dev.of_node)at91udc_of_init (udc, pdev->dev.of_node);
@@ -1780,13 +1781,7 @@ static int at91udc_probe(struct platform_device *pdev)DBG ("clocks missing\n" ); retval = -ENODEV ;/* NOTE: we "know" here that refcounts on these are NOPs */ - goto fail0b; - } - - retval =device_register (&udc->gadget.dev); -if (retval <0 ) { -put_device (&udc->gadget.dev); - goto fail0b; + goto fail1; }/* don't do anything until we have both gadget driver and VBUS */
@@ -1857,8 +1852,6 @@ fail3: fail2:free_irq (udc->udp_irq, udc); fail1: -device_unregister (&udc->gadget.dev); -fail0b:iounmap (udc->udp_baseaddr); fail0a:if (cpu_is_at91rm9200 ())
@@ -1892,8 +1885,6 @@ static int __exit at91udc_remove(struct platform_device *pdev)gpio_free (udc->board.vbus_pin); }free_irq (udc->udp_irq, udc); -device_unregister (&udc->gadget.dev); -iounmap (udc->udp_baseaddr);if (cpu_is_at91rm9200 ())
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 7/32 usb: gadget: atmel_usba_udc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/atmel_usba_udc.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-)
drivers/usb/gadget/atmel_usba_udc.c +1 -12
@@ -1900,9 +1900,9 @@ static int __init usba_udc_probe(struct platform_device *pdev)dev_info (&pdev->dev,"FIFO at 0x%08lx mapped at %p\n" , (unsigned long )fifo->start, udc->fifo); -device_initialize (&udc->gadget.dev); udc->gadget.dev.parent = &pdev->dev; udc->gadget.dev.dma_mask = pdev->dev.dma_mask; + udc->gadget.register_my_device = true;platform_set_drvdata (pdev, udc);
@@ -1962,12 +1962,6 @@ static int __init usba_udc_probe(struct platform_device *pdev) } udc->irq = irq; - ret =device_add (&udc->gadget.dev); -if (ret) { -dev_dbg (&pdev->dev,"Could not add gadget: %d\n" , ret); - goto err_device_add; - } -if (gpio_is_valid (pdata->vbus_pin)) {if (!gpio_request (pdata->vbus_pin,"atmel_usba_udc" )) { udc->vbus_pin = pdata->vbus_pin;
@@ -2007,9 +2001,6 @@ err_add_udc:gpio_free (udc->vbus_pin); } -device_unregister (&udc->gadget.dev); - -err_device_add:free_irq (irq, udc); err_request_irq:kfree (usba_ep);
@@ -2053,8 +2044,6 @@ static int __exit usba_udc_remove(struct platform_device *pdev)clk_put (udc->hclk);clk_put (udc->pclk); -device_unregister (&udc->gadget.dev); -return 0 ; }
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 8/32 usb: gadget: bcm63xx_udc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/bcm63xx_udc.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-)
drivers/usb/gadget/bcm63xx_udc.c +1 -6
@@ -2367,13 +2367,13 @@ static int bcm63xx_udc_probe(struct platform_device *pdev)spin_lock_init (&udc->lock);INIT_WORK (&udc->ep0_wq, bcm63xx_ep0_process); -dev_set_name (&udc->gadget.dev,"gadget" ); udc->gadget.ops = &bcm63xx_udc_ops; udc->gadget.name =dev_name (dev); udc->gadget.dev.parent = dev; udc->gadget.dev.release = bcm63xx_udc_gadget_release; udc->gadget.dev.dma_mask = dev->dma_mask; + udc->gadget.register_my_device = true;if (!pd->use_fullspeed && !use_fullspeed) udc->gadget.max_speed =USB_SPEED_HIGH ;
@@ -2413,10 +2413,6 @@ static int bcm63xx_udc_probe(struct platform_device *pdev) } } - rc =device_register (&udc->gadget.dev); -if (rc) - goto out_uninit; -bcm63xx_udc_init_debugfs (udc); rc =usb_add_gadget_udc (dev, &udc->gadget);if (!rc)
@@ -2439,7 +2435,6 @@ static int bcm63xx_udc_remove(struct platform_device *pdev)bcm63xx_udc_cleanup_debugfs (udc);usb_del_gadget_udc (&udc->gadget); -device_unregister (&udc->gadget.dev);BUG_ON (udc->driver);platform_set_drvdata (pdev,NULL );
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 9/32 usb: gadget: dummy_hcd: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/dummy_hcd.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-)
drivers/usb/gadget/dummy_hcd.c +1 -9
@@ -982,16 +982,10 @@ static int dummy_udc_probe(struct platform_device *pdev) dum->gadget.name = gadget_name; dum->gadget.ops = &dummy_ops; dum->gadget.max_speed =USB_SPEED_SUPER ; + dum->gadget.register_my_device = true; -dev_set_name (&dum->gadget.dev,"gadget" ); dum->gadget.dev.parent = &pdev->dev; dum->gadget.dev.release = dummy_gadget_release; - rc =device_register (&dum->gadget.dev); -if (rc <0 ) { -put_device (&dum->gadget.dev); -return rc; - } -init_dummy_udc_hw (dum); rc =usb_add_gadget_udc (&pdev->dev, &dum->gadget);
@@ -1007,7 +1001,6 @@ static int dummy_udc_probe(struct platform_device *pdev) err_dev:usb_del_gadget_udc (&dum->gadget); err_udc: -device_unregister (&dum->gadget.dev);return rc; }
@@ -1018,7 +1011,6 @@ static int dummy_udc_remove(struct platform_device *pdev)usb_del_gadget_udc (&dum->gadget);platform_set_drvdata (pdev,NULL );device_remove_file (&dum->gadget.dev, &dev_attr_function); -device_unregister (&dum->gadget.dev);return 0 ; }
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 10/32 usb: gadget: fsl_qe_udc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/fsl_qe_udc.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-)
drivers/usb/gadget/fsl_qe_udc.c +2 -13
@@ -2523,13 +2523,9 @@ static int qe_udc_probe(struct platform_device *ofdev)/* name: Identifies the controller hardware type. */ udc->gadget.name = driver_name; - -device_initialize (&udc->gadget.dev); - -dev_set_name (&udc->gadget.dev,"gadget" ); - udc->gadget.dev.release = qe_udc_release; udc->gadget.dev.parent = &ofdev->dev; + udc->gadget.register_my_device = true;/* initialize qe_ep struct */ for (i =0 ; i <USB_MAX_ENDPOINTS ; i++) {
@@ -2592,13 +2588,9 @@ static int qe_udc_probe(struct platform_device *ofdev) goto err5; } - ret =device_add (&udc->gadget.dev); -if (ret) - goto err6; - ret =usb_add_gadget_udc (&ofdev->dev, &udc->gadget);if (ret) - goto err7; + goto err6;dev_set_drvdata (&ofdev->dev, udc); dev_info(udc->dev,
@@ -2606,8 +2598,6 @@ static int qe_udc_probe(struct platform_device *ofdev) (udc->soc_type == PORT_QE) ? "QE" : "CPM");return 0 ; -err7: -device_unregister (&udc->gadget.dev); err6:free_irq (udc->usb_irq, udc); err5:
@@ -2702,7 +2692,6 @@ static int qe_udc_remove(struct platform_device *ofdev)iounmap (udc->usb_regs); -device_unregister (&udc->gadget.dev);/* wait for release() of gadget.dev to free udc */ wait_for_completion (&done);
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 11/32 usb: gadget: fsl_udc_core: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/fsl_udc_core.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-)
drivers/usb/gadget/fsl_udc_core.c +2 -7
@@ -2526,9 +2526,7 @@ static int __init fsl_udc_probe(struct platform_device *pdev) udc_controller->gadget.dev.release = fsl_udc_release; udc_controller->gadget.dev.parent = &pdev->dev; udc_controller->gadget.dev.of_node = pdev->dev.of_node; - ret =device_register (&udc_controller->gadget.dev); -if (ret <0 ) - goto err_free_irq; + udc_controller->gadget.register_my_device = true;if (!IS_ERR_OR_NULL (udc_controller->transceiver)) udc_controller->gadget.is_otg =1 ;
@@ -2561,7 +2559,7 @@ static int __init fsl_udc_probe(struct platform_device *pdev) DTD_ALIGNMENT, UDC_DMA_BOUNDARY);if (udc_controller->td_pool ==NULL ) { ret = -ENOMEM ; - goto err_unregister; + goto err_free_irq; } ret =usb_add_gadget_udc (&pdev->dev, &udc_controller->gadget);
@@ -2573,8 +2571,6 @@ static int __init fsl_udc_probe(struct platform_device *pdev) err_del_udc:dma_pool_destroy (udc_controller->td_pool); -err_unregister: -device_unregister (&udc_controller->gadget.dev); err_free_irq:free_irq (udc_controller->irq, udc_controller); err_iounmap:
@@ -2624,7 +2620,6 @@ static int __exit fsl_udc_remove(struct platform_device *pdev)if (pdata->operating_mode ==FSL_USB2_DR_DEVICE )release_mem_region (res->start,resource_size (res)); -device_unregister (&udc_controller->gadget.dev);/* free udc --wait for the release() finished */ wait_for_completion (&done);
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 12/32 usb: gadget: fusb300_udc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/fusb300_udc.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-)
drivers/usb/gadget/fusb300_udc.c +1 -13
@@ -1422,15 +1422,12 @@ static int __init fusb300_probe(struct platform_device *pdev) fusb300->gadget.ops = &fusb300_gadget_ops; -device_initialize (&fusb300->gadget.dev); - -dev_set_name (&fusb300->gadget.dev,"gadget" ); - fusb300->gadget.max_speed =USB_SPEED_HIGH ; fusb300->gadget.dev.parent = &pdev->dev; fusb300->gadget.dev.dma_mask = pdev->dev.dma_mask; fusb300->gadget.dev.release = pdev->dev.release; fusb300->gadget.name = udc_name; + fusb300->gadget.register_my_device = true; fusb300->reg = reg; ret = request_irq(ires->start, fusb300_irq, IRQF_SHARED,
@@ -1478,19 +1475,10 @@ static int __init fusb300_probe(struct platform_device *pdev)if (ret) goto err_add_udc; - ret =device_add (&fusb300->gadget.dev); -if (ret) { -pr_err ("device_add error (%d)\n" , ret); - goto err_add_device; - } -dev_info (&pdev->dev,"version %s\n" ,DRIVER_VERSION );return 0 ; -err_add_device: -usb_del_gadget_udc (&fusb300->gadget); - err_add_udc:fusb300_free_request (&fusb300->ep[0 ]->ep, fusb300->ep0_req);
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 13/32 usb: gadget: goku_udc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/goku_udc.c | 10 +--------- drivers/usb/gadget/goku_udc.h | 3 +-- 2 files changed, 2 insertions(+), 11 deletions(-)
drivers/usb/gadget/goku_udc.c +1 -9
@@ -1716,8 +1716,6 @@ static void goku_remove(struct pci_dev *pdev) pci_resource_len (pdev, 0));if (dev->enabled)pci_disable_device (pdev); -if (dev->registered) -device_unregister (&dev->gadget.dev);pci_set_drvdata (pdev,NULL ); dev->regs =NULL ;
@@ -1756,11 +1754,11 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id) dev->gadget.max_speed =USB_SPEED_FULL ;/* the "gadget" abstracts/virtualizes the controller */ -dev_set_name (&dev->gadget.dev,"gadget" ); dev->gadget.dev.parent = &pdev->dev; dev->gadget.dev.dma_mask = pdev->dev.dma_mask; dev->gadget.dev.release = gadget_release; dev->gadget.name = driver_name; + dev->gadget.register_my_device = true;/* now all the pci goodies ... */ retval =pci_enable_device (pdev);
@@ -1810,12 +1808,6 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)create_proc_read_entry (proc_node_name,0 ,NULL , udc_proc_read, dev);#endif - retval =device_register (&dev->gadget.dev); -if (retval) { -put_device (&dev->gadget.dev); - goto err; - } - dev->registered =1 ; retval =usb_add_gadget_udc (&pdev->dev, &dev->gadget);if (retval) goto err;
drivers/usb/gadget/goku_udc.h +1 -2
@@ -250,8 +250,7 @@ struct goku_udc { got_region:1, req_config:1, configured:1, - enabled:1, - registered:1; + enabled:1;/* pci state used to access those endpoints */ struct pci_dev *pdev;
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 14/32 usb: gadget: imx_udc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/imx_udc.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-)
drivers/usb/gadget/imx_udc.c +1 -12
@@ -1341,20 +1341,12 @@ static int imx_udc_start(struct usb_gadget *gadget, imx_usb->driver = driver; imx_usb->gadget.dev.driver = &driver->driver; - retval =device_add (&imx_usb->gadget.dev); -if (retval) - goto fail; -D_INI (imx_usb->dev,"<%s> registered gadget driver '%s'\n" , __func__, driver->driver.name);imx_udc_enable (imx_usb);return 0 ; -fail: - imx_usb->driver =NULL ; - imx_usb->gadget.dev.driver =NULL ; -return retval; } static int imx_udc_stop(struct usb_gadget *gadget,
@@ -1370,8 +1362,6 @@ static int imx_udc_stop(struct usb_gadget *gadget, imx_usb->gadget.dev.driver =NULL ; imx_usb->driver =NULL ; -device_del (&imx_usb->gadget.dev); -D_INI (imx_usb->dev,"<%s> unregistered gadget driver '%s'\n" , __func__, driver->driver.name);
@@ -1472,8 +1462,7 @@ static int __init imx_udc_probe(struct platform_device *pdev) imx_usb->clk = clk; imx_usb->dev = &pdev->dev; -device_initialize (&imx_usb->gadget.dev); - + imx_usb->gadget.register_my_device = true; imx_usb->gadget.dev.parent = &pdev->dev; imx_usb->gadget.dev.dma_mask = pdev->dev.dma_mask;
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 15/32 usb: gadget: lpc32xx_udc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/lpc32xx_udc.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-)
drivers/usb/gadget/lpc32xx_udc.c +1 -10
@@ -3090,6 +3090,7 @@ static int __init lpc32xx_udc_probe(struct platform_device *pdev)/* init software state */ udc->gadget.dev.parent = dev; + udc->gadget.register_my_device = true; udc->pdev = pdev; udc->dev = &pdev->dev; udc->enabled =0 ;
@@ -3248,12 +3249,6 @@ static int __init lpc32xx_udc_probe(struct platform_device *pdev)udc_disable (udc);udc_reinit (udc); - retval =device_register (&udc->gadget.dev); -if (retval <0 ) { -dev_err (udc->dev,"Device registration failure\n" ); - goto dev_register_fail; - } -/* Request IRQs - low and high priority USB device IRQs are routed to * the same handler, while the DMA interrupt is routed elsewhere */ retval = request_irq(udc->udp_irq[IRQ_USB_LP], lpc32xx_usb_lp_irq,
@@ -3320,8 +3315,6 @@ irq_dev_fail: irq_hp_fail:free_irq (udc->udp_irq[IRQ_USB_LP ], udc); irq_lp_fail: -device_unregister (&udc->gadget.dev); -dev_register_fail:dma_pool_destroy (udc->dd_cache); dma_alloc_fail: dma_free_coherent(&pdev->dev, UDCA_BUFF_SIZE,
@@ -3376,8 +3369,6 @@ static int lpc32xx_udc_remove(struct platform_device *pdev)free_irq (udc->udp_irq[IRQ_USB_HP ], udc);free_irq (udc->udp_irq[IRQ_USB_LP ], udc); -device_unregister (&udc->gadget.dev); -clk_disable (udc->usb_otg_clk);clk_put (udc->usb_otg_clk);clk_disable (udc->usb_slv_clk);
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 16/32 usb: gadget: m66592-udc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/m66592-udc.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-)
drivers/usb/gadget/m66592-udc.c +1 -12
@@ -1538,7 +1538,6 @@ 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);
@@ -1608,13 +1607,12 @@ static int __init m66592_probe(struct platform_device *pdev)dev_set_drvdata (&pdev->dev, m66592); m66592->gadget.ops = &m66592_gadget_ops; -device_initialize (&m66592->gadget.dev); -dev_set_name (&m66592->gadget.dev,"gadget" ); m66592->gadget.max_speed =USB_SPEED_HIGH ; m66592->gadget.dev.parent = &pdev->dev; m66592->gadget.dev.dma_mask = pdev->dev.dma_mask; m66592->gadget.dev.release = pdev->dev.release; m66592->gadget.name = udc_name; + m66592->gadget.register_my_device = true;init_timer (&m66592->timer); m66592->timer.function = m66592_timer;
@@ -1674,12 +1672,6 @@ 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;
@@ -1688,9 +1680,6 @@ 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:
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 17/32 usb: gadget: mv_u3d_core: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/mv_u3d_core.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-)
drivers/usb/gadget/mv_u3d_core.c +1 -9
@@ -1792,8 +1792,6 @@ static int mv_u3d_remove(struct platform_device *dev)clk_put (u3d->clk); -device_unregister (&u3d->gadget.dev); -platform_set_drvdata (dev,NULL );kfree (u3d);
@@ -1957,15 +1955,11 @@ static int mv_u3d_probe(struct platform_device *dev) u3d->gadget.speed =USB_SPEED_UNKNOWN ;/* speed */ /* the "gadget" abstracts/virtualizes the controller */ -dev_set_name (&u3d->gadget.dev,"gadget" ); u3d->gadget.dev.parent = &dev->dev; u3d->gadget.dev.dma_mask = dev->dev.dma_mask; u3d->gadget.dev.release = mv_u3d_gadget_release; u3d->gadget.name = driver_name;/* gadget name */ - - retval =device_register (&u3d->gadget.dev); -if (retval) - goto err_register_gadget_device; + u3d->gadget.register_my_device = true;mv_u3d_eps_init (u3d);
@@ -1991,8 +1985,6 @@ static int mv_u3d_probe(struct platform_device *dev)return 0 ; err_unregister: -device_unregister (&u3d->gadget.dev); -err_register_gadget_device:free_irq (u3d->irq, &dev->dev); err_request_irq: err_get_irq:
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 18/32 usb: gadget: mv_u3d_core: fix a compile warning
In reply to Felipe BalbiFix the following compile warning:
mv_u3d_core.c:1766:12: warning: 'mv_u3d_remove' \
defined but not used [-Wunused-function]
--- drivers/usb/gadget/mv_u3d_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/usb/gadget/mv_u3d_core.c +1 -1
@@ -2072,7 +2072,7 @@ static void mv_u3d_shutdown(struct platform_device *dev)static struct platform_driver mv_u3d_driver = { .probe = mv_u3d_probe, - .remove =__exit_p (mv_u3d_remove), + .remove = mv_u3d_remove, .shutdown = mv_u3d_shutdown, .driver = { .owner =THIS_MODULE ,
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 19/32 usb: gadget: mv_udc_core: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/mv_udc_core.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-)
drivers/usb/gadget/mv_udc_core.c +2 -10
@@ -2138,8 +2138,6 @@ static int mv_udc_remove(struct platform_device *pdev)mv_udc_disable (udc); -device_unregister (&udc->gadget.dev); -/* free dev, wait for the release() finished */ wait_for_completion (udc->done);
@@ -2311,15 +2309,11 @@ static int mv_udc_probe(struct platform_device *pdev) udc->gadget.max_speed =USB_SPEED_HIGH ;/* support dual speed */ /* the "gadget" abstracts/virtualizes the controller */ -dev_set_name (&udc->gadget.dev,"gadget" ); udc->gadget.dev.parent = &pdev->dev; udc->gadget.dev.dma_mask = pdev->dev.dma_mask; udc->gadget.dev.release = gadget_release; udc->gadget.name = driver_name;/* gadget name */ - - retval =device_register (&udc->gadget.dev); -if (retval) - goto err_destroy_dma; + udc->gadget.register_my_device = true;eps_init (udc);
@@ -2342,7 +2336,7 @@ static int mv_udc_probe(struct platform_device *pdev)if (!udc->qwork) {dev_err (&pdev->dev,"cannot create workqueue\n" ); retval = -ENOMEM ; - goto err_unregister; + goto err_destroy_dma; }INIT_WORK (&udc->vbus_work, mv_udc_vbus_work);
@@ -2370,8 +2364,6 @@ static int mv_udc_probe(struct platform_device *pdev) err_create_workqueue:destroy_workqueue (udc->qwork); -err_unregister: -device_unregister (&udc->gadget.dev); err_destroy_dma:dma_pool_destroy (udc->dtd_pool); err_free_dma:
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 20/32 usb: gadget: net2272: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/net2272.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-)
drivers/usb/gadget/net2272.c +2 -8
@@ -2209,7 +2209,6 @@ net2272_remove(struct net2272 *dev)free_irq (dev->irq, dev);iounmap (dev->base_addr); -device_unregister (&dev->gadget.dev);device_remove_file (dev->dev, &dev_attr_registers);dev_info (dev->dev,"unbind\n" );
@@ -2236,11 +2235,11 @@ static struct net2272 *net2272_probe_init(struct device *dev, unsigned int irq) ret->gadget.max_speed =USB_SPEED_HIGH ;/* the "gadget" abstracts/virtualizes the controller */ -dev_set_name (&ret->gadget.dev,"gadget" ); ret->gadget.dev.parent = dev; ret->gadget.dev.dma_mask = dev->dma_mask; ret->gadget.dev.release = net2272_gadget_release; ret->gadget.name = driver_name; + ret->gadget.register_my_device = true;return ret; }
@@ -2275,12 +2274,9 @@ net2272_probe_fin(struct net2272 *dev, unsigned int irqflags) dma_mode_string());dev_info (dev->dev,"version: %s\n" , driver_vers); - ret =device_register (&dev->gadget.dev); -if (ret) - goto err_irq; ret =device_create_file (dev->dev, &dev_attr_registers);if (ret) - goto err_dev_reg; + goto err_irq; ret =usb_add_gadget_udc (dev->dev, &dev->gadget);if (ret)
@@ -2290,8 +2286,6 @@ net2272_probe_fin(struct net2272 *dev, unsigned int irqflags) err_add_udc:device_remove_file (dev->dev, &dev_attr_registers); - err_dev_reg: -device_unregister (&dev->gadget.dev); err_irq:free_irq (dev->irq, dev); err:
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 21/32 usb: gadget: net2280: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/net2280.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
drivers/usb/gadget/net2280.c +1 -4
@@ -2667,7 +2667,6 @@ static void net2280_remove (struct pci_dev *pdev) pci_resource_len (pdev, 0));if (dev->enabled)pci_disable_device (pdev); -device_unregister (&dev->gadget.dev);device_remove_file (&pdev->dev, &dev_attr_registers);pci_set_drvdata (pdev,NULL );
@@ -2699,11 +2698,11 @@ static int net2280_probe (struct pci_dev *pdev, const struct pci_device_id *id) dev->gadget.max_speed =USB_SPEED_HIGH ;/* the "gadget" abstracts/virtualizes the controller */ -dev_set_name (&dev->gadget.dev,"gadget" ); dev->gadget.dev.parent = &pdev->dev; dev->gadget.dev.dma_mask = pdev->dev.dma_mask; dev->gadget.dev.release = gadget_release; dev->gadget.name = driver_name; + dev->gadget.register_my_device = true;/* now all the pci goodies ... */ if (pci_enable_device (pdev) <0 ) {
@@ -2811,8 +2810,6 @@ static int net2280_probe (struct pci_dev *pdev, const struct pci_device_id *id) use_dma ? (use_dma_chaining ?"chaining" :"enabled" ) : "disabled"); - retval =device_register (&dev->gadget.dev); -if (retval) goto done; retval =device_create_file (&pdev->dev, &dev_attr_registers);if (retval) goto done;
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 22/32 usb: gadget: pch_udc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/pch_udc.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-)
drivers/usb/gadget/pch_udc.c +1 -9
@@ -358,7 +358,6 @@ struct pch_udc_dev { prot_stall:1, irq_registered:1, mem_region:1, - registered:1, suspended:1, connected:1, vbus_session:1,
@@ -3078,8 +3077,6 @@ static void pch_udc_remove(struct pci_dev *pdev) pci_resource_len(pdev, PCH_UDC_PCI_BAR));if (dev->active)pci_disable_device (pdev); -if (dev->registered) -device_unregister (&dev->gadget.dev);kfree (dev);pci_set_drvdata (pdev,NULL ); }
@@ -3196,17 +3193,12 @@ static int pch_udc_probe(struct pci_dev *pdev,if (retval) goto finished; -dev_set_name (&dev->gadget.dev,"gadget" ); dev->gadget.dev.parent = &pdev->dev; dev->gadget.dev.dma_mask = pdev->dev.dma_mask; dev->gadget.dev.release = gadget_release; dev->gadget.name =KBUILD_MODNAME ; dev->gadget.max_speed =USB_SPEED_HIGH ; - - retval =device_register (&dev->gadget.dev); -if (retval) - goto finished; - dev->registered =1 ; + dev->gadget.register_my_device = true;/* Put the device in disconnected state till a driver is bound */ pch_udc_set_disconnect (dev);
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 23/32 usb: gadget: r8a66597-udc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/r8a66597-udc.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-)
drivers/usb/gadget/r8a66597-udc.c +2 -10
@@ -1837,7 +1837,6 @@ static int __exit r8a66597_remove(struct platform_device *pdev)clk_put (r8a66597->clk); } -device_unregister (&r8a66597->gadget.dev);kfree (r8a66597);return 0 ; }
@@ -1915,17 +1914,12 @@ static int __init r8a66597_probe(struct platform_device *pdev) r8a66597->irq_sense_low = irq_trigger ==IRQF_TRIGGER_LOW ; r8a66597->gadget.ops = &r8a66597_gadget_ops; -dev_set_name (&r8a66597->gadget.dev,"gadget" ); r8a66597->gadget.max_speed =USB_SPEED_HIGH ; r8a66597->gadget.dev.parent = &pdev->dev; r8a66597->gadget.dev.dma_mask = pdev->dev.dma_mask; r8a66597->gadget.dev.release = pdev->dev.release; r8a66597->gadget.name = udc_name; - ret =device_register (&r8a66597->gadget.dev); -if (ret <0 ) { -dev_err (&pdev->dev,"device_register failed\n" ); - goto clean_up; - } + r8a66597->gadget.register_my_device = true;init_timer (&r8a66597->timer); r8a66597->timer.function = r8a66597_timer;
@@ -1939,7 +1933,7 @@ static int __init r8a66597_probe(struct platform_device *pdev)dev_err (&pdev->dev,"cannot get clock \"%s\"\n" , clk_name); ret =PTR_ERR (r8a66597->clk); - goto clean_up_dev; + goto clean_up; }clk_enable (r8a66597->clk); }
@@ -2007,8 +2001,6 @@ clean_up2:clk_disable (r8a66597->clk);clk_put (r8a66597->clk); } -clean_up_dev: -device_unregister (&r8a66597->gadget.dev); clean_up:if (r8a66597) {if (r8a66597->sudmac_reg)
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 24/32 usb: gadget: s3c-hsotg: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/s3c-hsotg.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-)
drivers/usb/gadget/s3c-hsotg.c +1 -13
@@ -3552,17 +3552,13 @@ static int s3c_hsotg_probe(struct platform_device *pdev)dev_info (dev,"regs %p, irq %d\n" , hsotg->regs, hsotg->irq); -device_initialize (&hsotg->gadget.dev); - -dev_set_name (&hsotg->gadget.dev,"gadget" ); - hsotg->gadget.max_speed =USB_SPEED_HIGH ; hsotg->gadget.ops = &s3c_hsotg_gadget_ops; hsotg->gadget.name =dev_name (dev); - hsotg->gadget.dev.parent = dev; hsotg->gadget.dev.dma_mask = dev->dma_mask; hsotg->gadget.dev.release = s3c_hsotg_release; + hsotg->gadget.register_my_device = true;/* reset the system */
@@ -3643,12 +3639,6 @@ static int s3c_hsotg_probe(struct platform_device *pdev)s3c_hsotg_phy_disable (hsotg); - ret =device_add (&hsotg->gadget.dev); -if (ret) { -put_device (&hsotg->gadget.dev); - goto err_ep_mem; - } - ret =usb_add_gadget_udc (&pdev->dev, &hsotg->gadget);if (ret) goto err_ep_mem;
@@ -3687,10 +3677,8 @@ static int s3c_hsotg_remove(struct platform_device *pdev) }s3c_hsotg_phy_disable (hsotg); -clk_disable_unprepare (hsotg->clk); -device_unregister (&hsotg->gadget.dev);return 0 ; }
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 24/32 usb: gadget: s3c-hsotg: let udc-core manage gadget->dev
Hi Felipe,
Quoted 47 lines · On Thursday 24 of January 2013 17:46:02 Felipe Balbi wrote:
By simply setting a flag, we can drop some
boilerplate code.Signed-off-by Felipe Balbi <[email protected]>--- drivers/usb/gadget/s3c-hsotg.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-)(quoted diff) +0
-0
b/drivers/usb/gadget/s3c-hsotg.cindex 833d85b..bd8292d 100644drivers/usb/gadget/s3c-hsotg.c +1
-11@@ -3552,17 +3552,13 @@ static int s3c_hsotg_probe(struct platform_device *pdev) dev_info(dev, "regs %p, irq %d\n", hsotg->regs, hsotg->irq); -device_initialize (&hsotg->gadget.dev); - -dev_set_name (&hsotg->gadget.dev,"gadget" ); - hsotg->gadget.max_speed =USB_SPEED_HIGH ; hsotg->gadget.ops = &s3c_hsotg_gadget_ops; hsotg->gadget.name =dev_name (dev); - hsotg->gadget.dev.parent = dev; hsotg->gadget.dev.dma_mask = dev->dma_mask; hsotg->gadget.dev.release = s3c_hsotg_release; + hsotg->gadget.register_my_device = true;/* reset the system */ @@ -3643,12 +3639,6 @@ static int s3c_hsotg_probe(struct platform_device *pdev)s3c_hsotg_phy_disable (hsotg); - ret =device_add (&hsotg->gadget.dev); -if (ret) { -put_device (&hsotg->gadget.dev); - goto err_ep_mem; - } - ret =usb_add_gadget_udc (&pdev->dev, &hsotg->gadget);if (ret)drivers/usb/gadget/s3c-hsotg.c +0
-0goto err_ep_mem;
drivers/usb/gadget/s3c-hsotg.c static int s3c_hsotg_remove(struct · line 3683
Quoted 9 lines
drivers/usb/gadget/s3c-hsotg.c +0
-2@@ -3687,10 +3677,8 @@ static int s3c_hsotg_remove(struct platform_device *pdev) }s3c_hsotg_phy_disable (hsotg); -clk_disable_unprepare (hsotg->clk); -device_unregister (&hsotg->gadget.dev);return 0 ; }
Looks good.
Best regards,
Tomasz Figa
PATCH 25/32 usb: gadget: s3c-hsudc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/s3c-hsudc.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-)
drivers/usb/gadget/s3c-hsudc.c +1 -10
@@ -1304,18 +1304,16 @@ static int s3c_hsudc_probe(struct platform_device *pdev)spin_lock_init (&hsudc->lock); -dev_set_name (&hsudc->gadget.dev,"gadget" ); - hsudc->gadget.max_speed =USB_SPEED_HIGH ; hsudc->gadget.ops = &s3c_hsudc_gadget_ops; hsudc->gadget.name =dev_name (dev); hsudc->gadget.dev.parent = dev; hsudc->gadget.dev.dma_mask = dev->dma_mask; hsudc->gadget.ep0 = &hsudc->ep[0 ].ep; - hsudc->gadget.is_otg =0 ; hsudc->gadget.is_a_peripheral =0 ; hsudc->gadget.speed =USB_SPEED_UNKNOWN ; + hsudc->gadget.register_my_device = true;s3c_hsudc_setup_ep (hsudc);
@@ -1346,12 +1344,6 @@ static int s3c_hsudc_probe(struct platform_device *pdev)disable_irq (hsudc->irq);local_irq_enable (); - ret =device_register (&hsudc->gadget.dev); -if (ret) { -put_device (&hsudc->gadget.dev); - goto err_add_device; - } - ret =usb_add_gadget_udc (&pdev->dev, &hsudc->gadget);if (ret) goto err_add_udc;
@@ -1360,7 +1352,6 @@ static int s3c_hsudc_probe(struct platform_device *pdev)return 0 ; err_add_udc: -device_unregister (&hsudc->gadget.dev); err_add_device:clk_disable (hsudc->uclk); err_res:
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 26/32 usb: gadget: s3c2410_udc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/s3c2410_udc.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-)
drivers/usb/gadget/s3c2410_udc.c +1 -9
@@ -1677,13 +1677,6 @@ static int s3c2410_udc_start(struct usb_gadget *g, udc->driver = driver; udc->gadget.dev.driver = &driver->driver; -/* Bind the driver */ - retval =device_add (&udc->gadget.dev); -if (retval) { -dev_err (&udc->gadget.dev,"Error in device_add() : %d\n" , retval); - goto register_error; - } -/* Enable udc */ s3c2410_udc_enable (udc);
@@ -1700,7 +1693,6 @@ static int s3c2410_udc_stop(struct usb_gadget *g, {struct s3c2410_udc *udc =to_s3c2410 (g); -device_del (&udc->gadget.dev); udc->driver =NULL ;/* Disable udc */
@@ -1838,9 +1830,9 @@ static int s3c2410_udc_probe(struct platform_device *pdev) goto err_mem; } -device_initialize (&udc->gadget.dev); udc->gadget.dev.parent = &pdev->dev; udc->gadget.dev.dma_mask = pdev->dev.dma_mask; + udc->gadget.register_my_device = true; the_controller = udc;platform_set_drvdata (pdev, udc);
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 27/32 usb: renesas_usbhs: gadget: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/renesas_usbhs/mod_gadget.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-)
drivers/usb/renesas_usbhs/mod_gadget.c +2 -9
@@ -981,15 +981,12 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)/* * init gadget */ -dev_set_name (&gpriv->gadget.dev,"gadget" ); gpriv->gadget.dev.parent = dev; gpriv->gadget.dev.release = usbhs_mod_gadget_release; gpriv->gadget.name ="renesas_usbhs_udc" ; gpriv->gadget.ops = &usbhsg_gadget_ops; gpriv->gadget.max_speed =USB_SPEED_HIGH ; - ret =device_register (&gpriv->gadget.dev); -if (ret <0 ) - goto err_add_udc; + gpriv->gadget.register_my_device = true;INIT_LIST_HEAD (&gpriv->gadget.ep_list);
@@ -1018,15 +1015,13 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv) ret =usb_add_gadget_udc (dev, &gpriv->gadget);if (ret) - goto err_register; + goto err_add_udc;dev_info (dev,"gadget probed\n" );return 0 ; -err_register: -device_unregister (&gpriv->gadget.dev); err_add_udc:kfree (gpriv->uep);
@@ -1042,8 +1037,6 @@ void usbhs_mod_gadget_remove(struct usbhs_priv *priv)usb_del_gadget_udc (&gpriv->gadget); -device_unregister (&gpriv->gadget.dev); -kfree (gpriv->uep);kfree (gpriv); }
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 28/32 usb: gadget: pxa25x_udc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/pxa25x_udc.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-)
drivers/usb/gadget/pxa25x_udc.c +1 -9
@@ -1266,13 +1266,6 @@ static int pxa25x_udc_start(struct usb_gadget *g, dev->gadget.dev.driver = &driver->driver; dev->pullup =1 ; - retval =device_add (&dev->gadget.dev); -if (retval) { - dev->driver =NULL ; - dev->gadget.dev.driver =NULL ; -return retval; - } -/* ... then enable host detection and ep0; and we're ready * for set_configuration as well as eventual disconnect. */
@@ -1331,7 +1324,6 @@ static int pxa25x_udc_stop(struct usb_gadget*g, dev->gadget.dev.driver =NULL ; dev->driver =NULL ; -device_del (&dev->gadget.dev);dump_state (dev);return 0 ;
@@ -2140,9 +2132,9 @@ static int __init pxa25x_udc_probe(struct platform_device *pdev) dev->timer.function = udc_watchdog; dev->timer.data = (unsigned long ) dev; -device_initialize (&dev->gadget.dev); dev->gadget.dev.parent = &pdev->dev; dev->gadget.dev.dma_mask = pdev->dev.dma_mask; + dev->gadget.register_my_device = true; the_controller = dev;platform_set_drvdata (pdev, dev);
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 29/32 usb: gadget: pxa27x_udc: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/gadget/pxa27x_udc.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-)
drivers/usb/gadget/pxa27x_udc.c +1 -8
@@ -1814,11 +1814,6 @@ static int pxa27x_udc_start(struct usb_gadget *g, udc->gadget.dev.driver = &driver->driver;dplus_pullup (udc,1 ); - retval =device_add (&udc->gadget.dev); -if (retval) { -dev_err (udc->dev,"device_add error %d\n" , retval); - goto fail; - }if (!IS_ERR_OR_NULL (udc->transceiver)) { retval =otg_set_peripheral (udc->transceiver->otg, &udc->gadget);
@@ -1876,8 +1871,6 @@ static int pxa27x_udc_stop(struct usb_gadget *g, udc->driver =NULL ; -device_del (&udc->gadget.dev); -if (!IS_ERR_OR_NULL (udc->transceiver))return otg_set_peripheral (udc->transceiver->otg,NULL );return 0 ;
@@ -2462,9 +2455,9 @@ static int __init pxa_udc_probe(struct platform_device *pdev) goto err_map; } -device_initialize (&udc->gadget.dev); udc->gadget.dev.parent = &pdev->dev; udc->gadget.dev.dma_mask =NULL ; + udc->gadget.register_my_device = true; udc->vbus_sensed =0 ; the_controller = udc;
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 29/32 usb: gadget: pxa27x_udc: let udc-core manage gadget->dev
Quoted 6 lines · Felipe Balbi
By simply setting a flag, we can drop some
boilerplate code.Signed-off-by Felipe Balbi <[email protected]>--- drivers/usb/gadget/pxa27x_udc.c | 9 +--------
And I tested also your patch and it works in my environment. For next patches I'd like to be CCed for pxa27x_udc stuff as I'm maintaining that one since its beginning (and yes, I know, I didn't put that in MAINTAINERS ...).
Cheers.
--
Robert
PATCH 29/32 usb: gadget: pxa27x_udc: let udc-core manage gadget->dev
Quoted 5 lines · Robert Jarzmik
Quoted 3 lines · Felipe Balbi
By simply setting a flag, we can drop some
boilerplate code.
Quoted 8 lines
Quoted 3 lines
Signed-off-by Felipe Balbi <[email protected]>--- drivers/usb/gadget/pxa27x_udc.c | 9 +--------Acked-by Robert Jarzmik <[email protected]>And I tested also your patch and it works in my environment. For next patches I'd like to be CCed for
pxa27x_udcstuff as I'm maintaining that one since its beginning (and yes, I know, I didn't put that inMAINTAINERS...).
you should add yourself to MAINTAINERS. Please send a patch to Greg when you have time.
No need to prepare a tree, though. I just need you to give your Acked-by and I'll queue the patches myself.
cheers
Signature · 8 lines
balbi -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130204/ad6a8247/attachment.sig>
PATCH 30/32 usb: chipidea: register debugging syfs on our device
In reply to Felipe BalbiDon't register anything non-generic under
the gadget's device as we don't really *own*
it.
--- drivers/usb/chipidea/udc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/usb/chipidea/udc.c +3 -3
@@ -1767,7 +1767,7 @@ static int udc_start(struct ci13xxx *ci) goto put_transceiver; } - retval =dbg_create_files (&ci->gadget.dev); + retval =dbg_create_files (ci->dev);if (retval) goto unreg_device;
@@ -1796,7 +1796,7 @@ remove_trans:dev_err (dev,"error = %i\n" , retval); remove_dbg: -dbg_remove_files (&ci->gadget.dev); +dbg_remove_files (ci->dev); unreg_device:device_unregister (&ci->gadget.dev); put_transceiver:
@@ -1836,7 +1836,7 @@ static void udc_stop(struct ci13xxx *ci)if (ci->global_phy)usb_put_phy (ci->transceiver); } -dbg_remove_files (&ci->gadget.dev); +dbg_remove_files (ci->dev);device_unregister (&ci->gadget.dev);/* my kobject is dynamic, I swear! */ memset (&ci->gadget,0 ,sizeof (ci->gadget));
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 31/32 usb: chipidea: let udc-core manage gadget->dev
In reply to Felipe BalbiBy simply setting a flag, we can drop some
boilerplate code.
--- drivers/usb/chipidea/udc.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-)
drivers/usb/chipidea/udc.c +2 -11
@@ -1717,11 +1717,11 @@ static int udc_start(struct ci13xxx *ci)INIT_LIST_HEAD (&ci->gadget.ep_list); -dev_set_name (&ci->gadget.dev,"gadget" ); ci->gadget.dev.dma_mask = dev->dma_mask; ci->gadget.dev.coherent_dma_mask = dev->coherent_dma_mask; ci->gadget.dev.parent = dev; ci->gadget.dev.release = udc_release; + ci->gadget.register_my_device = true;/* alloc resources */ ci->qh_pool = dma_pool_create("ci13xxx_qh", dev,
@@ -1761,15 +1761,9 @@ static int udc_start(struct ci13xxx *ci)hw_enable_vbus_intr (ci); } - retval =device_register (&ci->gadget.dev); -if (retval) { -put_device (&ci->gadget.dev); - goto put_transceiver; - } - retval =dbg_create_files (ci->dev);if (retval) - goto unreg_device; + goto put_transceiver;if (!IS_ERR_OR_NULL (ci->transceiver)) { retval = otg_set_peripheral(ci->transceiver->otg,
@@ -1797,8 +1791,6 @@ remove_trans:dev_err (dev,"error = %i\n" , retval); remove_dbg:dbg_remove_files (ci->dev); -unreg_device: -device_unregister (&ci->gadget.dev); put_transceiver:if (!IS_ERR_OR_NULL (ci->transceiver) && ci->global_phy)usb_put_phy (ci->transceiver);
@@ -1837,7 +1829,6 @@ static void udc_stop(struct ci13xxx *ci)usb_put_phy (ci->transceiver); }dbg_remove_files (ci->dev); -device_unregister (&ci->gadget.dev);/* my kobject is dynamic, I swear! */ memset (&ci->gadget,0 ,sizeof (ci->gadget)); }
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 32/32 usb: gadget: drop now unnecessary flag
In reply to Felipe BalbiWe don't need the ->register_my_device flag
anymore because all UDC drivers have been
properly converted.
Let's remove every history of it.
--- drivers/usb/chipidea/udc.c | 1 - drivers/usb/dwc3/gadget.c | 1 - drivers/usb/gadget/amd5536udc.c | 1 - drivers/usb/gadget/at91_udc.c | 1 - drivers/usb/gadget/atmel_usba_udc.c | 1 - drivers/usb/gadget/bcm63xx_udc.c | 1 - drivers/usb/gadget/dummy_hcd.c | 1 - drivers/usb/gadget/fsl_qe_udc.c | 1 - drivers/usb/gadget/fsl_udc_core.c | 1 - drivers/usb/gadget/fusb300_udc.c | 1 - drivers/usb/gadget/goku_udc.c | 1 - drivers/usb/gadget/imx_udc.c | 1 - drivers/usb/gadget/lpc32xx_udc.c | 1 - drivers/usb/gadget/m66592-udc.c | 1 - drivers/usb/gadget/mv_u3d_core.c | 1 - drivers/usb/gadget/mv_udc_core.c | 1 - drivers/usb/gadget/net2272.c | 1 - drivers/usb/gadget/net2280.c | 1 - drivers/usb/gadget/omap_udc.c | 1 - drivers/usb/gadget/pch_udc.c | 1 - drivers/usb/gadget/pxa25x_udc.c | 1 - drivers/usb/gadget/pxa27x_udc.c | 1 - drivers/usb/gadget/r8a66597-udc.c | 1 - drivers/usb/gadget/s3c-hsotg.c | 1 - drivers/usb/gadget/s3c-hsudc.c | 1 - drivers/usb/gadget/s3c2410_udc.c | 1 - drivers/usb/gadget/udc-core.c | 3 --- drivers/usb/musb/musb_gadget.c | 1 - drivers/usb/renesas_usbhs/mod_gadget.c | 1 - include/linux/usb/gadget.h | 4 ---- 30 files changed, 35 deletions(-)
drivers/usb/chipidea/udc.c +0 -1
@@ -1721,7 +1721,6 @@ static int udc_start(struct ci13xxx *ci) ci->gadget.dev.coherent_dma_mask = dev->coherent_dma_mask; ci->gadget.dev.parent = dev; ci->gadget.dev.release = udc_release; - ci->gadget.register_my_device = true;/* alloc resources */ ci->qh_pool = dma_pool_create("ci13xxx_qh", dev,
drivers/usb/dwc3/gadget.c +0 -1
@@ -2423,7 +2423,6 @@ int dwc3_gadget_init(struct dwc3 *dwc) dwc->gadget.dev.dma_parms = dwc->dev->dma_parms; dwc->gadget.dev.dma_mask = dwc->dev->dma_mask; dwc->gadget.dev.release = dwc3_gadget_release; - dwc->gadget.register_my_device = true; dwc->gadget.name ="dwc3-gadget" ;/*
drivers/usb/gadget/amd5536udc.c +0 -1
@@ -3275,7 +3275,6 @@ static int udc_probe(struct udc *dev) dev->gadget.dev.release = gadget_release; dev->gadget.name = name; dev->gadget.max_speed =USB_SPEED_HIGH ; - dev->gadget.register_my_device = true;/* init registers, interrupts, ... */ startup_registers (dev);
drivers/usb/gadget/at91_udc.c +0 -1
@@ -1726,7 +1726,6 @@ static int at91udc_probe(struct platform_device *pdev)/* init software state */ udc = &controller; - udc->gadget.register_my_device = true; udc->gadget.dev.parent = dev;if (pdev->dev.of_node)at91udc_of_init (udc, pdev->dev.of_node);
drivers/usb/gadget/atmel_usba_udc.c +0 -1
@@ -1902,7 +1902,6 @@ static int __init usba_udc_probe(struct platform_device *pdev) udc->gadget.dev.parent = &pdev->dev; udc->gadget.dev.dma_mask = pdev->dev.dma_mask; - udc->gadget.register_my_device = true;platform_set_drvdata (pdev, udc);
drivers/usb/gadget/bcm63xx_udc.c +0 -1
@@ -2373,7 +2373,6 @@ static int bcm63xx_udc_probe(struct platform_device *pdev) udc->gadget.dev.parent = dev; udc->gadget.dev.release = bcm63xx_udc_gadget_release; udc->gadget.dev.dma_mask = dev->dma_mask; - udc->gadget.register_my_device = true;if (!pd->use_fullspeed && !use_fullspeed) udc->gadget.max_speed =USB_SPEED_HIGH ;
drivers/usb/gadget/dummy_hcd.c +0 -1
@@ -982,7 +982,6 @@ static int dummy_udc_probe(struct platform_device *pdev) dum->gadget.name = gadget_name; dum->gadget.ops = &dummy_ops; dum->gadget.max_speed =USB_SPEED_SUPER ; - dum->gadget.register_my_device = true; dum->gadget.dev.parent = &pdev->dev; dum->gadget.dev.release = dummy_gadget_release;
drivers/usb/gadget/fsl_qe_udc.c +0 -1
@@ -2525,7 +2525,6 @@ static int qe_udc_probe(struct platform_device *ofdev) udc->gadget.name = driver_name; udc->gadget.dev.release = qe_udc_release; udc->gadget.dev.parent = &ofdev->dev; - udc->gadget.register_my_device = true;/* initialize qe_ep struct */ for (i =0 ; i <USB_MAX_ENDPOINTS ; i++) {
drivers/usb/gadget/fsl_udc_core.c +0 -1
@@ -2526,7 +2526,6 @@ static int __init fsl_udc_probe(struct platform_device *pdev) udc_controller->gadget.dev.release = fsl_udc_release; udc_controller->gadget.dev.parent = &pdev->dev; udc_controller->gadget.dev.of_node = pdev->dev.of_node; - udc_controller->gadget.register_my_device = true;if (!IS_ERR_OR_NULL (udc_controller->transceiver)) udc_controller->gadget.is_otg =1 ;
drivers/usb/gadget/fusb300_udc.c +0 -1
@@ -1427,7 +1427,6 @@ static int __init fusb300_probe(struct platform_device *pdev) fusb300->gadget.dev.dma_mask = pdev->dev.dma_mask; fusb300->gadget.dev.release = pdev->dev.release; fusb300->gadget.name = udc_name; - fusb300->gadget.register_my_device = true; fusb300->reg = reg; ret = request_irq(ires->start, fusb300_irq, IRQF_SHARED,
drivers/usb/gadget/goku_udc.c +0 -1
@@ -1758,7 +1758,6 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id) dev->gadget.dev.dma_mask = pdev->dev.dma_mask; dev->gadget.dev.release = gadget_release; dev->gadget.name = driver_name; - dev->gadget.register_my_device = true;/* now all the pci goodies ... */ retval =pci_enable_device (pdev);
drivers/usb/gadget/imx_udc.c +0 -1
@@ -1462,7 +1462,6 @@ static int __init imx_udc_probe(struct platform_device *pdev) imx_usb->clk = clk; imx_usb->dev = &pdev->dev; - imx_usb->gadget.register_my_device = true; imx_usb->gadget.dev.parent = &pdev->dev; imx_usb->gadget.dev.dma_mask = pdev->dev.dma_mask;
drivers/usb/gadget/lpc32xx_udc.c +0 -1
@@ -3090,7 +3090,6 @@ static int __init lpc32xx_udc_probe(struct platform_device *pdev)/* init software state */ udc->gadget.dev.parent = dev; - udc->gadget.register_my_device = true; udc->pdev = pdev; udc->dev = &pdev->dev; udc->enabled =0 ;
drivers/usb/gadget/m66592-udc.c +0 -1
@@ -1612,7 +1612,6 @@ static int __init m66592_probe(struct platform_device *pdev) m66592->gadget.dev.dma_mask = pdev->dev.dma_mask; m66592->gadget.dev.release = pdev->dev.release; m66592->gadget.name = udc_name; - m66592->gadget.register_my_device = true;init_timer (&m66592->timer); m66592->timer.function = m66592_timer;
drivers/usb/gadget/mv_u3d_core.c +0 -1
@@ -1959,7 +1959,6 @@ static int mv_u3d_probe(struct platform_device *dev) u3d->gadget.dev.dma_mask = dev->dev.dma_mask; u3d->gadget.dev.release = mv_u3d_gadget_release; u3d->gadget.name = driver_name;/* gadget name */ - u3d->gadget.register_my_device = true;mv_u3d_eps_init (u3d);
drivers/usb/gadget/mv_udc_core.c +0 -1
@@ -2313,7 +2313,6 @@ static int mv_udc_probe(struct platform_device *pdev) udc->gadget.dev.dma_mask = pdev->dev.dma_mask; udc->gadget.dev.release = gadget_release; udc->gadget.name = driver_name;/* gadget name */ - udc->gadget.register_my_device = true;eps_init (udc);
drivers/usb/gadget/net2272.c +0 -1
@@ -2239,7 +2239,6 @@ static struct net2272 *net2272_probe_init(struct device *dev, unsigned int irq) ret->gadget.dev.dma_mask = dev->dma_mask; ret->gadget.dev.release = net2272_gadget_release; ret->gadget.name = driver_name; - ret->gadget.register_my_device = true;return ret; }
drivers/usb/gadget/net2280.c +0 -1
@@ -2702,7 +2702,6 @@ static int net2280_probe (struct pci_dev *pdev, const struct pci_device_id *id) dev->gadget.dev.dma_mask = pdev->dev.dma_mask; dev->gadget.dev.release = gadget_release; dev->gadget.name = driver_name; - dev->gadget.register_my_device = true;/* now all the pci goodies ... */ if (pci_enable_device (pdev) <0 ) {
drivers/usb/gadget/omap_udc.c +0 -1
@@ -2633,7 +2633,6 @@ omap_udc_setup(struct platform_device *odev, struct usb_phy *xceiv) udc->gadget.dev.release = omap_udc_release; udc->gadget.dev.parent = &odev->dev; - udc->gadget.register_my_device = true;if (use_dma) udc->gadget.dev.dma_mask = odev->dev.dma_mask;
drivers/usb/gadget/pch_udc.c +0 -1
@@ -3198,7 +3198,6 @@ static int pch_udc_probe(struct pci_dev *pdev, dev->gadget.dev.release = gadget_release; dev->gadget.name =KBUILD_MODNAME ; dev->gadget.max_speed =USB_SPEED_HIGH ; - dev->gadget.register_my_device = true;/* Put the device in disconnected state till a driver is bound */ pch_udc_set_disconnect (dev);
drivers/usb/gadget/pxa25x_udc.c +0 -1
@@ -2134,7 +2134,6 @@ static int __init pxa25x_udc_probe(struct platform_device *pdev) dev->gadget.dev.parent = &pdev->dev; dev->gadget.dev.dma_mask = pdev->dev.dma_mask; - dev->gadget.register_my_device = true; the_controller = dev;platform_set_drvdata (pdev, dev);
drivers/usb/gadget/pxa27x_udc.c +0 -1
@@ -2457,7 +2457,6 @@ static int __init pxa_udc_probe(struct platform_device *pdev) udc->gadget.dev.parent = &pdev->dev; udc->gadget.dev.dma_mask =NULL ; - udc->gadget.register_my_device = true; udc->vbus_sensed =0 ; the_controller = udc;
drivers/usb/gadget/r8a66597-udc.c +0 -1
@@ -1919,7 +1919,6 @@ static int __init r8a66597_probe(struct platform_device *pdev) r8a66597->gadget.dev.dma_mask = pdev->dev.dma_mask; r8a66597->gadget.dev.release = pdev->dev.release; r8a66597->gadget.name = udc_name; - r8a66597->gadget.register_my_device = true;init_timer (&r8a66597->timer); r8a66597->timer.function = r8a66597_timer;
drivers/usb/gadget/s3c-hsotg.c +0 -1
@@ -3558,7 +3558,6 @@ static int s3c_hsotg_probe(struct platform_device *pdev) hsotg->gadget.dev.parent = dev; hsotg->gadget.dev.dma_mask = dev->dma_mask; hsotg->gadget.dev.release = s3c_hsotg_release; - hsotg->gadget.register_my_device = true;/* reset the system */
drivers/usb/gadget/s3c-hsudc.c +0 -1
@@ -1313,7 +1313,6 @@ static int s3c_hsudc_probe(struct platform_device *pdev) hsudc->gadget.is_otg =0 ; hsudc->gadget.is_a_peripheral =0 ; hsudc->gadget.speed =USB_SPEED_UNKNOWN ; - hsudc->gadget.register_my_device = true;s3c_hsudc_setup_ep (hsudc);
drivers/usb/gadget/s3c2410_udc.c +0 -1
@@ -1832,7 +1832,6 @@ static int s3c2410_udc_probe(struct platform_device *pdev) udc->gadget.dev.parent = &pdev->dev; udc->gadget.dev.dma_mask = pdev->dev.dma_mask; - udc->gadget.register_my_device = true; the_controller = udc;platform_set_drvdata (pdev, udc);
drivers/usb/gadget/udc-core.c +0 -3
@@ -173,7 +173,6 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget)if (!udc) goto err1; -if (gadget->register_my_device) {dev_set_name (&gadget->dev,"gadget" ); ret =device_register (&gadget->dev);
@@ -211,7 +210,6 @@ err3:put_device (&udc->dev); err2: -if (gadget->register_my_device)put_device (&gadget->dev); err1:return ret;
@@ -267,7 +265,6 @@ found:kobject_uevent (&udc->dev.kobj,KOBJ_REMOVE );device_unregister (&udc->dev); -if (gadget->register_my_device)device_unregister (&gadget->dev); }EXPORT_SYMBOL_GPL (usb_del_gadget_udc);
drivers/usb/musb/musb_gadget.c +0 -1
@@ -1875,7 +1875,6 @@ int musb_gadget_setup(struct musb *musb) musb->g.dev.dma_mask = musb->controller->dma_mask; musb->g.dev.release = musb_gadget_release; musb->g.name = musb_driver_name; - musb->g.register_my_device = true; musb->g.is_otg =1 ;musb_g_init_endpoints (musb);
drivers/usb/renesas_usbhs/mod_gadget.c +0 -1
@@ -986,7 +986,6 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv) gpriv->gadget.name ="renesas_usbhs_udc" ; gpriv->gadget.ops = &usbhsg_gadget_ops; gpriv->gadget.max_speed =USB_SPEED_HIGH ; - gpriv->gadget.register_my_device = true;INIT_LIST_HEAD (&gpriv->gadget.ep_list);
include/linux/usb/gadget.h +0 -4
@@ -494,9 +494,6 @@ struct usb_gadget_ops {* only supports HNP on a different root port. * @b_hnp_enable: OTG device feature flag, indicating that the A-Host * enabled HNP support. -* @register_my_device: Flag telling udc-core that UDC driver didn't -* register the gadget device to the driver model. Temporary until -* all UDC drivers are fixed up properly. * @name: Identifies the controller hardware type. Used in diagnostics * and sometimes configuration. * @dev: Driver model state for this abstract device.
@@ -534,7 +531,6 @@ struct usb_gadget { unsigned b_hnp_enable:1; unsigned a_hnp_support:1; unsigned a_alt_hnp_support:1; - unsigned register_my_device:1;const char *name;struct device dev;unsigned out_epnum;
Signature · 1 line
1.8.1.rc1.5.g7e0651a
PATCH 32/32 usb: gadget: drop now unnecessary flag
Hi Felipe,
Quoted 40 lines · On Thursday 24 of January 2013 17:46:10 Felipe Balbi wrote:
We don't need the ->register_my_device flag
anymore because all UDC drivers have been
properly converted.Let's remove every history of it.
Signed-off-by Felipe Balbi <[email protected]>--- drivers/usb/chipidea/udc.c | 1 - drivers/usb/dwc3/gadget.c | 1 - drivers/usb/gadget/amd5536udc.c | 1 - drivers/usb/gadget/at91_udc.c | 1 - drivers/usb/gadget/atmel_usba_udc.c | 1 - drivers/usb/gadget/bcm63xx_udc.c | 1 - drivers/usb/gadget/dummy_hcd.c | 1 - drivers/usb/gadget/fsl_qe_udc.c | 1 - drivers/usb/gadget/fsl_udc_core.c | 1 - drivers/usb/gadget/fusb300_udc.c | 1 - drivers/usb/gadget/goku_udc.c | 1 - drivers/usb/gadget/imx_udc.c | 1 - drivers/usb/gadget/lpc32xx_udc.c | 1 - drivers/usb/gadget/m66592-udc.c | 1 - drivers/usb/gadget/mv_u3d_core.c | 1 - drivers/usb/gadget/mv_udc_core.c | 1 - drivers/usb/gadget/net2272.c | 1 - drivers/usb/gadget/net2280.c | 1 - drivers/usb/gadget/omap_udc.c | 1 - drivers/usb/gadget/pch_udc.c | 1 - drivers/usb/gadget/pxa25x_udc.c | 1 - drivers/usb/gadget/pxa27x_udc.c | 1 - drivers/usb/gadget/r8a66597-udc.c | 1 - drivers/usb/gadget/s3c-hsotg.c | 1 - drivers/usb/gadget/s3c-hsudc.c | 1 - drivers/usb/gadget/s3c2410_udc.c | 1 - drivers/usb/gadget/udc-core.c | 3 --- drivers/usb/musb/musb_gadget.c | 1 - drivers/usb/renesas_usbhs/mod_gadget.c | 1 - include/linux/usb/gadget.h | 4 ---- 30 files changed, 35 deletions(-)
[snip]
Quoted 21 lines
(quoted diff) +0
-0
b/drivers/usb/gadget/udc-core.cindex 9195054..4ee0efc 100644drivers/usb/gadget/udc-core.c +0
-2@@ -173,7 +173,6 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget) if (!udc) goto err1; -if (gadget->register_my_device) {dev_set_name (&gadget->dev,"gadget" ); ret =device_register (&gadget->dev);@@ -211,7 +210,6 @@ err3:put_device (&udc->dev); err2: -if (gadget->register_my_device)put_device (&gadget->dev); err1:return ret;
drivers/usb/gadget/udc-core.c found: · line 268
Quoted 5 lines
drivers/usb/gadget/udc-core.c +0
-1@@ -267,7 +265,6 @@ found:kobject_uevent (&udc->dev.kobj,KOBJ_REMOVE );device_unregister (&udc->dev); -if (gadget->register_my_device)device_unregister (&gadget->dev);
Correct me if I am wrong, but doesn't this patch leave us with incorrect indentation?
Otherwise looks good.
Best regards,
Tomasz Figa
PATCH 32/32 usb: gadget: drop now unnecessary flag
Quoted 68 lines · Tomasz Figa
Hi Felipe,
Quoted 40 lines · On Thursday 24 of January 2013 17:46:10 Felipe Balbi wrote:
We don't need the ->register_my_device flag
anymore because all UDC drivers have been
properly converted.Let's remove every history of it.
Signed-off-by Felipe Balbi <[email protected]>--- drivers/usb/chipidea/udc.c | 1 - drivers/usb/dwc3/gadget.c | 1 - drivers/usb/gadget/amd5536udc.c | 1 - drivers/usb/gadget/at91_udc.c | 1 - drivers/usb/gadget/atmel_usba_udc.c | 1 - drivers/usb/gadget/bcm63xx_udc.c | 1 - drivers/usb/gadget/dummy_hcd.c | 1 - drivers/usb/gadget/fsl_qe_udc.c | 1 - drivers/usb/gadget/fsl_udc_core.c | 1 - drivers/usb/gadget/fusb300_udc.c | 1 - drivers/usb/gadget/goku_udc.c | 1 - drivers/usb/gadget/imx_udc.c | 1 - drivers/usb/gadget/lpc32xx_udc.c | 1 - drivers/usb/gadget/m66592-udc.c | 1 - drivers/usb/gadget/mv_u3d_core.c | 1 - drivers/usb/gadget/mv_udc_core.c | 1 - drivers/usb/gadget/net2272.c | 1 - drivers/usb/gadget/net2280.c | 1 - drivers/usb/gadget/omap_udc.c | 1 - drivers/usb/gadget/pch_udc.c | 1 - drivers/usb/gadget/pxa25x_udc.c | 1 - drivers/usb/gadget/pxa27x_udc.c | 1 - drivers/usb/gadget/r8a66597-udc.c | 1 - drivers/usb/gadget/s3c-hsotg.c | 1 - drivers/usb/gadget/s3c-hsudc.c | 1 - drivers/usb/gadget/s3c2410_udc.c | 1 - drivers/usb/gadget/udc-core.c | 3 --- drivers/usb/musb/musb_gadget.c | 1 - drivers/usb/renesas_usbhs/mod_gadget.c | 1 - include/linux/usb/gadget.h | 4 ---- 30 files changed, 35 deletions(-)[snip]
Quoted 24 lines
(quoted diff) +0
-0
b/drivers/usb/gadget/udc-core.cindex 9195054..4ee0efc 100644drivers/usb/gadget/udc-core.c +0
-2@@ -173,7 +173,6 @@ int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget) if (!udc) goto err1; -if (gadget->register_my_device) {dev_set_name (&gadget->dev,"gadget" ); ret =device_register (&gadget->dev);@@ -211,7 +210,6 @@ err3:put_device (&udc->dev); err2: -if (gadget->register_my_device)put_device (&gadget->dev); err1:return ret;@@ -267,7 +265,6 @@ found:kobject_uevent (&udc->dev.kobj,KOBJ_REMOVE );device_unregister (&udc->dev);
Quoted 5 lines
drivers/usb/gadget/udc-core.c found: · line 268
Quoted 2 lines
drivers/usb/gadget/udc-core.c +0
-1-if (gadget->register_my_device)device_unregister (&gadget->dev);Correct me if I am wrong, but doesn't this patch leave us with incorrect indentation?
right, I fixed it up on my branch, see [1]. That was me trusting my poor sed skills and not verifying the result ;-)
Signature · 8 lines
balbi -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130124/16277568/attachment.sig>