static void free_wrapper(struct gadget_wrapper *d) { if (d->driver) { /* should have been done already by driver model core */ DWC_WARN("driver is still registered\n"); usb_gadget_unregister_driver(d->driver); } //device_unregister(&d->gadget.dev); dwc_free(d); }
/* * remove - unbinds to the platform device */ static int s3c_udc_remove(struct platform_device *pdev) { struct s3c_udc *dev = platform_get_drvdata(pdev); DEBUG("%s: %p\n", __func__, pdev); if (otg_clock != NULL) { clk_disable(otg_clock); clk_put(otg_clock); otg_clock = NULL; } remove_proc_files(); usb_gadget_unregister_driver(dev->driver); free_irq(IRQ_OTG, dev); platform_set_drvdata(pdev, 0); the_controller = 0; return 0; }
static void __exit cleanup(void) { usb_gadget_unregister_driver(&zero_driver); }
static void __exit psfreedom_cleanup(void) { usb_gadget_unregister_driver(&psfreedom_driver); }