static int ci_udc_start(struct usb_gadget *gadget,
                         struct usb_gadget_driver *driver);
-static int ci_udc_stop(struct usb_gadget *gadget,
-                       struct usb_gadget_driver *driver);
+static int ci_udc_stop(struct usb_gadget *gadget);
 /**
  * Device operations part of the API to the USB controller hardware,
  * which don't involve endpoints (or i/o)
 /**
  * ci_udc_stop: unregister a gadget driver
  */
-static int ci_udc_stop(struct usb_gadget *gadget,
-                       struct usb_gadget_driver *driver)
+static int ci_udc_stop(struct usb_gadget *gadget)
 {
        struct ci_hdrc *ci = container_of(gadget, struct ci_hdrc, gadget);
        unsigned long flags;
 
  *
  * Stop udc hw block and stay tunned for future transmissions
  */
-static int s3c_hsotg_udc_stop(struct usb_gadget *gadget,
-                         struct usb_gadget_driver *driver)
+static int s3c_hsotg_udc_stop(struct usb_gadget *gadget)
 {
        struct s3c_hsotg *hsotg = to_hsotg(gadget);
        unsigned long flags = 0;
 
        return ret;
 }
 
-static int dwc3_gadget_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver)
+static int dwc3_gadget_stop(struct usb_gadget *g)
 {
        struct dwc3             *dwc = gadget_to_dwc(g);
        unsigned long           flags;
 
 
 static int amd5536_udc_start(struct usb_gadget *g,
                struct usb_gadget_driver *driver);
-static int amd5536_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver);
-/* gadget operations */
+static int amd5536_udc_stop(struct usb_gadget *g);
+
 static const struct usb_gadget_ops udc_ops = {
        .wakeup         = udc_wakeup,
        .get_frame      = udc_get_frame,
 }
 
 /* Called by gadget driver to unregister itself */
-static int amd5536_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver)
+static int amd5536_udc_stop(struct usb_gadget *g)
 {
        struct udc *dev = to_amd5536_udc(g);
        unsigned long flags;
 
 
 static int at91_start(struct usb_gadget *gadget,
                struct usb_gadget_driver *driver);
-static int at91_stop(struct usb_gadget *gadget,
-               struct usb_gadget_driver *driver);
+static int at91_stop(struct usb_gadget *gadget);
+
 static const struct usb_gadget_ops at91_udc_ops = {
        .get_frame              = at91_get_frame,
        .wakeup                 = at91_wakeup,
        return 0;
 }
 
-static int at91_stop(struct usb_gadget *gadget,
-               struct usb_gadget_driver *driver)
+static int at91_stop(struct usb_gadget *gadget)
 {
        struct at91_udc *udc;
        unsigned long   flags;
 
 
 static int atmel_usba_start(struct usb_gadget *gadget,
                struct usb_gadget_driver *driver);
-static int atmel_usba_stop(struct usb_gadget *gadget,
-               struct usb_gadget_driver *driver);
+static int atmel_usba_stop(struct usb_gadget *gadget);
+
 static const struct usb_gadget_ops usba_udc_ops = {
        .get_frame              = usba_udc_get_frame,
        .wakeup                 = usba_udc_wakeup,
        return 0;
 }
 
-static int atmel_usba_stop(struct usb_gadget *gadget,
-               struct usb_gadget_driver *driver)
+static int atmel_usba_stop(struct usb_gadget *gadget)
 {
        struct usba_udc *udc = container_of(gadget, struct usba_udc, gadget);
        unsigned long flags;
 
  * @gadget: USB slave device.
  * @driver: Driver for USB slave devices.
  */
-static int bcm63xx_udc_stop(struct usb_gadget *gadget,
-               struct usb_gadget_driver *driver)
+static int bcm63xx_udc_stop(struct usb_gadget *gadget)
 {
        struct bcm63xx_udc *udc = gadget_to_udc(gadget);
        unsigned long flags;
 
 
 static int dummy_udc_start(struct usb_gadget *g,
                struct usb_gadget_driver *driver);
-static int dummy_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver);
+static int dummy_udc_stop(struct usb_gadget *g);
 
 static const struct usb_gadget_ops dummy_ops = {
        .get_frame      = dummy_g_get_frame,
        return 0;
 }
 
-static int dummy_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver)
+static int dummy_udc_stop(struct usb_gadget *g)
 {
        struct dummy_hcd        *dum_hcd = gadget_to_dummy_hcd(g);
        struct dummy            *dum = dum_hcd->dum;
 
        iowrite32(value, fotg210->reg + FOTG210_DMISGR0);
 }
 
-static int fotg210_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver)
+static int fotg210_udc_stop(struct usb_gadget *g)
 {
        struct fotg210_udc *fotg210 = gadget_to_fotg210(g);
        unsigned long   flags;
 
 
 static int fsl_qe_start(struct usb_gadget *gadget,
                struct usb_gadget_driver *driver);
-static int fsl_qe_stop(struct usb_gadget *gadget,
-               struct usb_gadget_driver *driver);
+static int fsl_qe_stop(struct usb_gadget *gadget);
 
 /* defined in usb_gadget.h */
 static const struct usb_gadget_ops qe_gadget_ops = {
        return 0;
 }
 
-static int fsl_qe_stop(struct usb_gadget *gadget,
-               struct usb_gadget_driver *driver)
+static int fsl_qe_stop(struct usb_gadget *gadget)
 {
        struct qe_udc *udc;
        struct qe_ep *loop_ep;
 
 
 static int fsl_udc_start(struct usb_gadget *g,
                struct usb_gadget_driver *driver);
-static int fsl_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver);
-/* defined in gadget.h */
+static int fsl_udc_stop(struct usb_gadget *g);
+
 static const struct usb_gadget_ops fsl_gadget_ops = {
        .get_frame = fsl_get_frame,
        .wakeup = fsl_wakeup,
 }
 
 /* Disconnect from gadget driver */
-static int fsl_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver)
+static int fsl_udc_stop(struct usb_gadget *g)
 {
        struct fsl_ep *loop_ep;
        unsigned long flags;
 
        return 0;
 }
 
-static int fusb300_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver)
+static int fusb300_udc_stop(struct usb_gadget *g)
 {
        struct fusb300 *fusb300 = to_fusb300(g);
 
 
 
 static int goku_udc_start(struct usb_gadget *g,
                struct usb_gadget_driver *driver);
-static int goku_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver);
+static int goku_udc_stop(struct usb_gadget *g);
 
 static const struct usb_gadget_ops goku_ops = {
        .get_frame      = goku_get_frame,
                udc_enable(dev);
 }
 
-static int goku_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver)
+static int goku_udc_stop(struct usb_gadget *g)
 {
        struct goku_udc *dev = to_goku_udc(g);
        unsigned long   flags;
 
        return 0;
 }
 
-static int gr_udc_stop(struct usb_gadget *gadget,
-                      struct usb_gadget_driver *driver)
+static int gr_udc_stop(struct usb_gadget *gadget)
 {
        struct gr_udc *dev = to_gr_udc(gadget);
        unsigned long flags;
 
 }
 
 static int lpc32xx_start(struct usb_gadget *, struct usb_gadget_driver *);
-static int lpc32xx_stop(struct usb_gadget *, struct usb_gadget_driver *);
+static int lpc32xx_stop(struct usb_gadget *);
 
 static const struct usb_gadget_ops lpc32xx_udc_ops = {
        .get_frame              = lpc32xx_get_frame,
        return 0;
 }
 
-static int lpc32xx_stop(struct usb_gadget *gadget,
-                       struct usb_gadget_driver *driver)
+static int lpc32xx_stop(struct usb_gadget *gadget)
 {
        int i;
        struct lpc32xx_udc *udc = to_udc(gadget);
 
        return 0;
 }
 
-static int m66592_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver)
+static int m66592_udc_stop(struct usb_gadget *g)
 {
        struct m66592 *m66592 = to_m66592(g);
 
 
        return 0;
 }
 
-static int mv_u3d_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver)
+static int mv_u3d_stop(struct usb_gadget *g)
 {
        struct mv_u3d *u3d = container_of(g, struct mv_u3d, gadget);
        struct mv_usb_platform_data *pdata = dev_get_platdata(u3d->dev);
 
 }
 
 static int mv_udc_start(struct usb_gadget *, struct usb_gadget_driver *);
-static int mv_udc_stop(struct usb_gadget *, struct usb_gadget_driver *);
+static int mv_udc_stop(struct usb_gadget *);
 /* device controller usb_gadget_ops structure */
 static const struct usb_gadget_ops mv_ops = {
 
        return 0;
 }
 
-static int mv_udc_stop(struct usb_gadget *gadget,
-               struct usb_gadget_driver *driver)
+static int mv_udc_stop(struct usb_gadget *gadget)
 {
        struct mv_udc *udc;
        unsigned long flags;
 
 
 static int net2272_start(struct usb_gadget *_gadget,
                struct usb_gadget_driver *driver);
-static int net2272_stop(struct usb_gadget *_gadget,
-               struct usb_gadget_driver *driver);
+static int net2272_stop(struct usb_gadget *_gadget);
 
 static const struct usb_gadget_ops net2272_ops = {
        .get_frame      = net2272_get_frame,
        net2272_usb_reinit(dev);
 }
 
-static int net2272_stop(struct usb_gadget *_gadget,
-               struct usb_gadget_driver *driver)
+static int net2272_stop(struct usb_gadget *_gadget)
 {
        struct net2272 *dev;
        unsigned long flags;
 
 
 static int net2280_start(struct usb_gadget *_gadget,
                struct usb_gadget_driver *driver);
-static int net2280_stop(struct usb_gadget *_gadget,
-               struct usb_gadget_driver *driver);
+static int net2280_stop(struct usb_gadget *_gadget);
 
 static const struct usb_gadget_ops net2280_ops = {
        .get_frame      = net2280_get_frame,
        usb_reinit(dev);
 }
 
-static int net2280_stop(struct usb_gadget *_gadget,
-               struct usb_gadget_driver *driver)
+static int net2280_stop(struct usb_gadget *_gadget)
 {
        struct net2280  *dev;
        unsigned long   flags;
 
 
 static int omap_udc_start(struct usb_gadget *g,
                struct usb_gadget_driver *driver);
-static int omap_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver);
+static int omap_udc_stop(struct usb_gadget *g);
 
 static const struct usb_gadget_ops omap_gadget_ops = {
        .get_frame              = omap_get_frame,
        return status;
 }
 
-static int omap_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver)
+static int omap_udc_stop(struct usb_gadget *g)
 {
        unsigned long   flags;
        int             status = -ENODEV;
 
 
 static int pch_udc_start(struct usb_gadget *g,
                struct usb_gadget_driver *driver);
-static int pch_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver);
+static int pch_udc_stop(struct usb_gadget *g);
+
 static const struct usb_gadget_ops pch_udc_ops = {
        .get_frame = pch_udc_pcd_get_frame,
        .wakeup = pch_udc_pcd_wakeup,
        return 0;
 }
 
-static int pch_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver)
+static int pch_udc_stop(struct usb_gadget *g)
 {
        struct pch_udc_dev      *dev = to_pch_udc(g);
 
 
 
 static int pxa25x_udc_start(struct usb_gadget *g,
                struct usb_gadget_driver *driver);
-static int pxa25x_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver);
+static int pxa25x_udc_stop(struct usb_gadget *g);
 
 static const struct usb_gadget_ops pxa25x_udc_ops = {
        .get_frame      = pxa25x_udc_get_frame,
        udc_reinit(dev);
 }
 
-static int pxa25x_udc_stop(struct usb_gadget*g,
-               struct usb_gadget_driver *driver)
+static int pxa25x_udc_stop(struct usb_gadget*g)
 {
        struct pxa25x_udc       *dev = to_pxa25x(g);
 
 
 
 static int pxa27x_udc_start(struct usb_gadget *g,
                struct usb_gadget_driver *driver);
-static int pxa27x_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver);
+static int pxa27x_udc_stop(struct usb_gadget *g);
 
 static const struct usb_gadget_ops pxa_udc_ops = {
        .get_frame      = pxa_udc_get_frame,
  *
  * Returns 0 if no error, -ENODEV, -EINVAL otherwise
  */
-static int pxa27x_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver)
+static int pxa27x_udc_stop(struct usb_gadget *g)
 {
        struct pxa_udc *udc = to_pxa(g);
 
 
        return 0;
 }
 
-static int r8a66597_stop(struct usb_gadget *gadget,
-               struct usb_gadget_driver *driver)
+static int r8a66597_stop(struct usb_gadget *gadget)
 {
        struct r8a66597 *r8a66597 = gadget_to_r8a66597(gadget);
        unsigned long flags;
 
        return ret;
 }
 
-static int s3c_hsudc_stop(struct usb_gadget *gadget,
-               struct usb_gadget_driver *driver)
+static int s3c_hsudc_stop(struct usb_gadget *gadget)
 {
        struct s3c_hsudc *hsudc = to_hsudc(gadget);
        unsigned long flags;
 
 
 static int s3c2410_udc_start(struct usb_gadget *g,
                struct usb_gadget_driver *driver);
-static int s3c2410_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver);
+static int s3c2410_udc_stop(struct usb_gadget *g);
 
 static const struct usb_gadget_ops s3c2410_ops = {
        .get_frame              = s3c2410_udc_get_frame,
        return 0;
 }
 
-static int s3c2410_udc_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver)
+static int s3c2410_udc_stop(struct usb_gadget *g)
 {
        struct s3c2410_udc *udc = to_s3c2410(g);
 
 
  */
 static inline void usb_gadget_udc_stop(struct usb_udc *udc)
 {
-       udc->gadget->ops->udc_stop(udc->gadget, udc->driver);
+       udc->gadget->ops->udc_stop(udc->gadget);
 }
 
 /**
 
  *
  * Return: zero always
  */
-static int xudc_stop(struct usb_gadget *gadget,
-                    struct usb_gadget_driver *driver)
+static int xudc_stop(struct usb_gadget *gadget)
 {
        struct xusb_udc *udc = to_udc(gadget);
        unsigned long flags;
 
 
 static int musb_gadget_start(struct usb_gadget *g,
                struct usb_gadget_driver *driver);
-static int musb_gadget_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver);
+static int musb_gadget_stop(struct usb_gadget *g);
 
 static const struct usb_gadget_ops musb_gadget_operations = {
        .get_frame              = musb_gadget_get_frame,
  *
  * @param driver the gadget driver to unregister
  */
-static int musb_gadget_stop(struct usb_gadget *g,
-               struct usb_gadget_driver *driver)
+static int musb_gadget_stop(struct usb_gadget *g)
 {
        struct musb     *musb = gadget_to_musb(g);
        unsigned long   flags;
 
        return usbhsg_try_start(priv, USBHSG_STATUS_REGISTERD);
 }
 
-static int usbhsg_gadget_stop(struct usb_gadget *gadget,
-               struct usb_gadget_driver *driver)
+static int usbhsg_gadget_stop(struct usb_gadget *gadget)
 {
        struct usbhsg_gpriv *gpriv = usbhsg_gadget_to_gpriv(gadget);
        struct usbhs_priv *priv = usbhsg_gpriv_to_priv(gpriv);
 
        void    (*get_config_params)(struct usb_dcd_config_params *);
        int     (*udc_start)(struct usb_gadget *,
                        struct usb_gadget_driver *);
-       int     (*udc_stop)(struct usb_gadget *,
-                       struct usb_gadget_driver *);
+       int     (*udc_stop)(struct usb_gadget *);
 };
 
 /**