[67/67] usb: gadget: remove unnecessary 'driver' argument

Message ID 1413566234-13537-68-git-send-email-balbi@ti.com
State Accepted
Commit 22835b807e7ca946a4d1fbd4c7af56aa09cd273e
Headers show

Commit Message

Felipe Balbi Oct. 17, 2014, 5:17 p.m.
now that no UDC driver relies on the extra
'driver' argument to ->udc_stop(), we can
safely remove it.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/chipidea/udc.c              | 6 ++----
 drivers/usb/dwc2/gadget.c               | 3 +--
 drivers/usb/dwc3/gadget.c               | 3 +--
 drivers/usb/gadget/udc/amd5536udc.c     | 8 +++-----
 drivers/usb/gadget/udc/at91_udc.c       | 7 +++----
 drivers/usb/gadget/udc/atmel_usba_udc.c | 7 +++----
 drivers/usb/gadget/udc/bcm63xx_udc.c    | 3 +--
 drivers/usb/gadget/udc/dummy_hcd.c      | 6 ++----
 drivers/usb/gadget/udc/fotg210-udc.c    | 3 +--
 drivers/usb/gadget/udc/fsl_qe_udc.c     | 6 ++----
 drivers/usb/gadget/udc/fsl_udc_core.c   | 8 +++-----
 drivers/usb/gadget/udc/fusb300_udc.c    | 3 +--
 drivers/usb/gadget/udc/goku_udc.c       | 6 ++----
 drivers/usb/gadget/udc/gr_udc.c         | 3 +--
 drivers/usb/gadget/udc/lpc32xx_udc.c    | 5 ++---
 drivers/usb/gadget/udc/m66592-udc.c     | 3 +--
 drivers/usb/gadget/udc/mv_u3d_core.c    | 3 +--
 drivers/usb/gadget/udc/mv_udc_core.c    | 5 ++---
 drivers/usb/gadget/udc/net2272.c        | 6 ++----
 drivers/usb/gadget/udc/net2280.c        | 6 ++----
 drivers/usb/gadget/udc/omap_udc.c       | 6 ++----
 drivers/usb/gadget/udc/pch_udc.c        | 7 +++----
 drivers/usb/gadget/udc/pxa25x_udc.c     | 6 ++----
 drivers/usb/gadget/udc/pxa27x_udc.c     | 6 ++----
 drivers/usb/gadget/udc/r8a66597-udc.c   | 3 +--
 drivers/usb/gadget/udc/s3c-hsudc.c      | 3 +--
 drivers/usb/gadget/udc/s3c2410_udc.c    | 6 ++----
 drivers/usb/gadget/udc/udc-core.c       | 2 +-
 drivers/usb/gadget/udc/udc-xilinx.c     | 3 +--
 drivers/usb/musb/musb_gadget.c          | 6 ++----
 drivers/usb/renesas_usbhs/mod_gadget.c  | 3 +--
 include/linux/usb/gadget.h              | 3 +--
 32 files changed, 55 insertions(+), 99 deletions(-)

Comments

Robert Baldyga Oct. 20, 2014, 6:45 a.m. | #1
Hi Felipe,

On 10/17/2014 07:17 PM, Felipe Balbi wrote:
> now that no UDC driver relies on the extra
> 'driver' argument to ->udc_stop(), we can
> safely remove it.
> 
> Signed-off-by: Felipe Balbi <balbi@ti.com>

I have already sent patch doing the same thing:
http://markmail.org/message/x5zneg4xea4zntab

Best regards,
Robert Baldyga

> ---
>  drivers/usb/chipidea/udc.c              | 6 ++----
>  drivers/usb/dwc2/gadget.c               | 3 +--
>  drivers/usb/dwc3/gadget.c               | 3 +--
>  drivers/usb/gadget/udc/amd5536udc.c     | 8 +++-----
>  drivers/usb/gadget/udc/at91_udc.c       | 7 +++----
>  drivers/usb/gadget/udc/atmel_usba_udc.c | 7 +++----
>  drivers/usb/gadget/udc/bcm63xx_udc.c    | 3 +--
>  drivers/usb/gadget/udc/dummy_hcd.c      | 6 ++----
>  drivers/usb/gadget/udc/fotg210-udc.c    | 3 +--
>  drivers/usb/gadget/udc/fsl_qe_udc.c     | 6 ++----
>  drivers/usb/gadget/udc/fsl_udc_core.c   | 8 +++-----
>  drivers/usb/gadget/udc/fusb300_udc.c    | 3 +--
>  drivers/usb/gadget/udc/goku_udc.c       | 6 ++----
>  drivers/usb/gadget/udc/gr_udc.c         | 3 +--
>  drivers/usb/gadget/udc/lpc32xx_udc.c    | 5 ++---
>  drivers/usb/gadget/udc/m66592-udc.c     | 3 +--
>  drivers/usb/gadget/udc/mv_u3d_core.c    | 3 +--
>  drivers/usb/gadget/udc/mv_udc_core.c    | 5 ++---
>  drivers/usb/gadget/udc/net2272.c        | 6 ++----
>  drivers/usb/gadget/udc/net2280.c        | 6 ++----
>  drivers/usb/gadget/udc/omap_udc.c       | 6 ++----
>  drivers/usb/gadget/udc/pch_udc.c        | 7 +++----
>  drivers/usb/gadget/udc/pxa25x_udc.c     | 6 ++----
>  drivers/usb/gadget/udc/pxa27x_udc.c     | 6 ++----
>  drivers/usb/gadget/udc/r8a66597-udc.c   | 3 +--
>  drivers/usb/gadget/udc/s3c-hsudc.c      | 3 +--
>  drivers/usb/gadget/udc/s3c2410_udc.c    | 6 ++----
>  drivers/usb/gadget/udc/udc-core.c       | 2 +-
>  drivers/usb/gadget/udc/udc-xilinx.c     | 3 +--
>  drivers/usb/musb/musb_gadget.c          | 6 ++----
>  drivers/usb/renesas_usbhs/mod_gadget.c  | 3 +--
>  include/linux/usb/gadget.h              | 3 +--
>  32 files changed, 55 insertions(+), 99 deletions(-)
> 
> diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
> index 0444d3f..f4397b2 100644
> --- a/drivers/usb/chipidea/udc.c
> +++ b/drivers/usb/chipidea/udc.c
> @@ -1544,8 +1544,7 @@ static int ci_udc_pullup(struct usb_gadget *_gadget, int is_on)
>  
>  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)
> @@ -1682,8 +1681,7 @@ static int ci_udc_start(struct usb_gadget *gadget,
>  /**
>   * 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;
> diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
> index 7b5856f..b11d6cf 100644
> --- a/drivers/usb/dwc2/gadget.c
> +++ b/drivers/usb/dwc2/gadget.c
> @@ -2918,8 +2918,7 @@ err:
>   *
>   * 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;
> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
> index 1f2a719..428b047 100644
> --- a/drivers/usb/dwc3/gadget.c
> +++ b/drivers/usb/dwc3/gadget.c
> @@ -1627,8 +1627,7 @@ err0:
>  	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;
> diff --git a/drivers/usb/gadget/udc/amd5536udc.c b/drivers/usb/gadget/udc/amd5536udc.c
> index 7d0e0b8..606b900 100644
> --- a/drivers/usb/gadget/udc/amd5536udc.c
> +++ b/drivers/usb/gadget/udc/amd5536udc.c
> @@ -1401,9 +1401,8 @@ static int udc_wakeup(struct usb_gadget *gadget)
>  
>  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,
> @@ -1962,8 +1961,7 @@ __acquires(dev->lock)
>  }
>  
>  /* 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;
> diff --git a/drivers/usb/gadget/udc/at91_udc.c b/drivers/usb/gadget/udc/at91_udc.c
> index 5c4cede..f47f16c 100644
> --- a/drivers/usb/gadget/udc/at91_udc.c
> +++ b/drivers/usb/gadget/udc/at91_udc.c
> @@ -984,8 +984,8 @@ static int at91_set_selfpowered(struct usb_gadget *gadget, int is_on)
>  
>  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,
> @@ -1644,8 +1644,7 @@ static int at91_start(struct usb_gadget *gadget,
>  	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;
> diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
> index eaee5f9..c537a66 100644
> --- a/drivers/usb/gadget/udc/atmel_usba_udc.c
> +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
> @@ -987,8 +987,8 @@ usba_udc_set_selfpowered(struct usb_gadget *gadget, int is_selfpowered)
>  
>  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,
> @@ -1807,8 +1807,7 @@ static int atmel_usba_start(struct usb_gadget *gadget,
>  	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;
> diff --git a/drivers/usb/gadget/udc/bcm63xx_udc.c b/drivers/usb/gadget/udc/bcm63xx_udc.c
> index 485c8c2..9319ff2 100644
> --- a/drivers/usb/gadget/udc/bcm63xx_udc.c
> +++ b/drivers/usb/gadget/udc/bcm63xx_udc.c
> @@ -1836,8 +1836,7 @@ static int bcm63xx_udc_start(struct usb_gadget *gadget,
>   * @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;
> diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c
> index 5c72ade..5bffb75 100644
> --- a/drivers/usb/gadget/udc/dummy_hcd.c
> +++ b/drivers/usb/gadget/udc/dummy_hcd.c
> @@ -851,8 +851,7 @@ static int dummy_pullup(struct usb_gadget *_gadget, int value)
>  
>  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,
> @@ -913,8 +912,7 @@ static int dummy_udc_start(struct usb_gadget *g,
>  	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;
> diff --git a/drivers/usb/gadget/udc/fotg210-udc.c b/drivers/usb/gadget/udc/fotg210-udc.c
> index 1d31592..1ca52e11 100644
> --- a/drivers/usb/gadget/udc/fotg210-udc.c
> +++ b/drivers/usb/gadget/udc/fotg210-udc.c
> @@ -1053,8 +1053,7 @@ static void fotg210_init(struct fotg210_udc *fotg210)
>  	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;
> diff --git a/drivers/usb/gadget/udc/fsl_qe_udc.c b/drivers/usb/gadget/udc/fsl_qe_udc.c
> index 6ca61e6..01f29ef 100644
> --- a/drivers/usb/gadget/udc/fsl_qe_udc.c
> +++ b/drivers/usb/gadget/udc/fsl_qe_udc.c
> @@ -1887,8 +1887,7 @@ static int qe_get_frame(struct usb_gadget *gadget)
>  
>  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 = {
> @@ -2308,8 +2307,7 @@ static int fsl_qe_start(struct usb_gadget *gadget,
>  	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;
> diff --git a/drivers/usb/gadget/udc/fsl_udc_core.c b/drivers/usb/gadget/udc/fsl_udc_core.c
> index c362079..b184ed3 100644
> --- a/drivers/usb/gadget/udc/fsl_udc_core.c
> +++ b/drivers/usb/gadget/udc/fsl_udc_core.c
> @@ -1236,9 +1236,8 @@ static int fsl_pullup(struct usb_gadget *gadget, int is_on)
>  
>  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,
> @@ -1975,8 +1974,7 @@ static int fsl_udc_start(struct usb_gadget *g,
>  }
>  
>  /* 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;
> diff --git a/drivers/usb/gadget/udc/fusb300_udc.c b/drivers/usb/gadget/udc/fusb300_udc.c
> index 8286df7..a1b33f5 100644
> --- a/drivers/usb/gadget/udc/fusb300_udc.c
> +++ b/drivers/usb/gadget/udc/fusb300_udc.c
> @@ -1320,8 +1320,7 @@ static int fusb300_udc_start(struct usb_gadget *g,
>  	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);
>  
> diff --git a/drivers/usb/gadget/udc/goku_udc.c b/drivers/usb/gadget/udc/goku_udc.c
> index bf9c5ef..5b9176e 100644
> --- a/drivers/usb/gadget/udc/goku_udc.c
> +++ b/drivers/usb/gadget/udc/goku_udc.c
> @@ -992,8 +992,7 @@ static int goku_get_frame(struct usb_gadget *_gadget)
>  
>  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,
> @@ -1364,8 +1363,7 @@ static void stop_activity(struct goku_udc *dev)
>  		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;
> diff --git a/drivers/usb/gadget/udc/gr_udc.c b/drivers/usb/gadget/udc/gr_udc.c
> index bde989f..320df9a2 100644
> --- a/drivers/usb/gadget/udc/gr_udc.c
> +++ b/drivers/usb/gadget/udc/gr_udc.c
> @@ -1935,8 +1935,7 @@ static int gr_udc_start(struct usb_gadget *gadget,
>  	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;
> diff --git a/drivers/usb/gadget/udc/lpc32xx_udc.c b/drivers/usb/gadget/udc/lpc32xx_udc.c
> index cef64b9..4be497d 100644
> --- a/drivers/usb/gadget/udc/lpc32xx_udc.c
> +++ b/drivers/usb/gadget/udc/lpc32xx_udc.c
> @@ -2559,7 +2559,7 @@ static int lpc32xx_pullup(struct usb_gadget *gadget, int is_on)
>  }
>  
>  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,
> @@ -2961,8 +2961,7 @@ static int lpc32xx_start(struct usb_gadget *gadget,
>  	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);
> diff --git a/drivers/usb/gadget/udc/m66592-udc.c b/drivers/usb/gadget/udc/m66592-udc.c
> index 8985656..311ec5f 100644
> --- a/drivers/usb/gadget/udc/m66592-udc.c
> +++ b/drivers/usb/gadget/udc/m66592-udc.c
> @@ -1485,8 +1485,7 @@ static int m66592_udc_start(struct usb_gadget *g,
>  	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);
>  
> diff --git a/drivers/usb/gadget/udc/mv_u3d_core.c b/drivers/usb/gadget/udc/mv_u3d_core.c
> index e3ef744..ea422ac 100644
> --- a/drivers/usb/gadget/udc/mv_u3d_core.c
> +++ b/drivers/usb/gadget/udc/mv_u3d_core.c
> @@ -1266,8 +1266,7 @@ static int mv_u3d_start(struct usb_gadget *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);
> diff --git a/drivers/usb/gadget/udc/mv_udc_core.c b/drivers/usb/gadget/udc/mv_udc_core.c
> index 32d24ff..f104ac0 100644
> --- a/drivers/usb/gadget/udc/mv_udc_core.c
> +++ b/drivers/usb/gadget/udc/mv_udc_core.c
> @@ -1223,7 +1223,7 @@ static int mv_udc_pullup(struct usb_gadget *gadget, int is_on)
>  }
>  
>  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 = {
>  
> @@ -1371,8 +1371,7 @@ static int mv_udc_start(struct usb_gadget *gadget,
>  	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;
> diff --git a/drivers/usb/gadget/udc/net2272.c b/drivers/usb/gadget/udc/net2272.c
> index 4641df5..887bea4 100644
> --- a/drivers/usb/gadget/udc/net2272.c
> +++ b/drivers/usb/gadget/udc/net2272.c
> @@ -1169,8 +1169,7 @@ net2272_pullup(struct usb_gadget *_gadget, int is_on)
>  
>  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,
> @@ -1500,8 +1499,7 @@ stop_activity(struct net2272 *dev, struct usb_gadget_driver *driver)
>  	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;
> diff --git a/drivers/usb/gadget/udc/net2280.c b/drivers/usb/gadget/udc/net2280.c
> index c3ebdcd..73250a6 100644
> --- a/drivers/usb/gadget/udc/net2280.c
> +++ b/drivers/usb/gadget/udc/net2280.c
> @@ -1548,8 +1548,7 @@ static int net2280_pullup(struct usb_gadget *_gadget, int is_on)
>  
>  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,
> @@ -2432,8 +2431,7 @@ static void stop_activity(struct net2280 *dev, struct usb_gadget_driver *driver)
>  	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;
> diff --git a/drivers/usb/gadget/udc/omap_udc.c b/drivers/usb/gadget/udc/omap_udc.c
> index dcdfea4..534b85c 100644
> --- a/drivers/usb/gadget/udc/omap_udc.c
> +++ b/drivers/usb/gadget/udc/omap_udc.c
> @@ -1311,8 +1311,7 @@ static int omap_pullup(struct usb_gadget *gadget, int is_on)
>  
>  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,
> @@ -2102,8 +2101,7 @@ done:
>  	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;
> diff --git a/drivers/usb/gadget/udc/pch_udc.c b/drivers/usb/gadget/udc/pch_udc.c
> index ccbe3d4..6534f36 100644
> --- a/drivers/usb/gadget/udc/pch_udc.c
> +++ b/drivers/usb/gadget/udc/pch_udc.c
> @@ -1240,8 +1240,8 @@ static int pch_udc_pcd_vbus_draw(struct usb_gadget *gadget, unsigned int mA)
>  
>  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,
> @@ -3008,8 +3008,7 @@ static int pch_udc_start(struct usb_gadget *g,
>  	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);
>  
> diff --git a/drivers/usb/gadget/udc/pxa25x_udc.c b/drivers/usb/gadget/udc/pxa25x_udc.c
> index 098fa57..2944092 100644
> --- a/drivers/usb/gadget/udc/pxa25x_udc.c
> +++ b/drivers/usb/gadget/udc/pxa25x_udc.c
> @@ -998,8 +998,7 @@ static int pxa25x_udc_vbus_draw(struct usb_gadget *_gadget, unsigned mA)
>  
>  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,
> @@ -1311,8 +1310,7 @@ stop_activity(struct pxa25x_udc *dev, struct usb_gadget_driver *driver)
>  	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);
>  
> diff --git a/drivers/usb/gadget/udc/pxa27x_udc.c b/drivers/usb/gadget/udc/pxa27x_udc.c
> index b90b1f3..17a0193 100644
> --- a/drivers/usb/gadget/udc/pxa27x_udc.c
> +++ b/drivers/usb/gadget/udc/pxa27x_udc.c
> @@ -1669,8 +1669,7 @@ static int pxa_udc_vbus_draw(struct usb_gadget *_gadget, unsigned mA)
>  
>  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,
> @@ -1857,8 +1856,7 @@ static void stop_activity(struct pxa_udc *udc, struct usb_gadget_driver *driver)
>   *
>   * 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);
>  
> diff --git a/drivers/usb/gadget/udc/r8a66597-udc.c b/drivers/usb/gadget/udc/r8a66597-udc.c
> index f818661..b63a527 100644
> --- a/drivers/usb/gadget/udc/r8a66597-udc.c
> +++ b/drivers/usb/gadget/udc/r8a66597-udc.c
> @@ -1763,8 +1763,7 @@ static int r8a66597_start(struct usb_gadget *gadget,
>  	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;
> diff --git a/drivers/usb/gadget/udc/s3c-hsudc.c b/drivers/usb/gadget/udc/s3c-hsudc.c
> index de95e9d..97d3a91 100644
> --- a/drivers/usb/gadget/udc/s3c-hsudc.c
> +++ b/drivers/usb/gadget/udc/s3c-hsudc.c
> @@ -1188,8 +1188,7 @@ err_supplies:
>  	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;
> diff --git a/drivers/usb/gadget/udc/s3c2410_udc.c b/drivers/usb/gadget/udc/s3c2410_udc.c
> index ff423d1..2a8e36d 100644
> --- a/drivers/usb/gadget/udc/s3c2410_udc.c
> +++ b/drivers/usb/gadget/udc/s3c2410_udc.c
> @@ -1541,8 +1541,7 @@ static int s3c2410_vbus_draw(struct usb_gadget *_gadget, unsigned ma)
>  
>  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,
> @@ -1683,8 +1682,7 @@ static int s3c2410_udc_start(struct usb_gadget *g,
>  	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);
>  
> diff --git a/drivers/usb/gadget/udc/udc-core.c b/drivers/usb/gadget/udc/udc-core.c
> index 52f457b..135504b 100644
> --- a/drivers/usb/gadget/udc/udc-core.c
> +++ b/drivers/usb/gadget/udc/udc-core.c
> @@ -204,7 +204,7 @@ static inline int usb_gadget_udc_start(struct usb_udc *udc)
>   */
>  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);
>  }
>  
>  /**
> diff --git a/drivers/usb/gadget/udc/udc-xilinx.c b/drivers/usb/gadget/udc/udc-xilinx.c
> index ed27e16..1eac56f 100644
> --- a/drivers/usb/gadget/udc/udc-xilinx.c
> +++ b/drivers/usb/gadget/udc/udc-xilinx.c
> @@ -1403,8 +1403,7 @@ err:
>   *
>   * 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;
> diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
> index 88d63e0..4ab1896 100644
> --- a/drivers/usb/musb/musb_gadget.c
> +++ b/drivers/usb/musb/musb_gadget.c
> @@ -1684,8 +1684,7 @@ static int musb_gadget_pullup(struct usb_gadget *gadget, int is_on)
>  
>  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,
> @@ -1923,8 +1922,7 @@ static void stop_activity(struct musb *musb, struct usb_gadget_driver *driver)
>   *
>   * @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;
> diff --git a/drivers/usb/renesas_usbhs/mod_gadget.c b/drivers/usb/renesas_usbhs/mod_gadget.c
> index 2d17c10..7a45210 100644
> --- a/drivers/usb/renesas_usbhs/mod_gadget.c
> +++ b/drivers/usb/renesas_usbhs/mod_gadget.c
> @@ -851,8 +851,7 @@ static int usbhsg_gadget_start(struct usb_gadget *gadget,
>  	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);
> diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
> index 522cafe..70965fc 100644
> --- a/include/linux/usb/gadget.h
> +++ b/include/linux/usb/gadget.h
> @@ -490,8 +490,7 @@ struct usb_gadget_ops {
>  	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 *);
>  };
>  
>  /**
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Felipe Balbi Oct. 23, 2014, 1:59 p.m. | #2
On Mon, Oct 20, 2014 at 08:45:02AM +0200, Robert Baldyga wrote:
> Hi Felipe,
> 
> On 10/17/2014 07:17 PM, Felipe Balbi wrote:
> > now that no UDC driver relies on the extra
> > 'driver' argument to ->udc_stop(), we can
> > safely remove it.
> > 
> > Signed-off-by: Felipe Balbi <balbi@ti.com>
> 
> I have already sent patch doing the same thing:
> http://markmail.org/message/x5zneg4xea4zntab

hmm... I had forgotten about that. If you can fix the bugs, I'll take
your version. Look at what you do for mv_udc, for instance, this change:

- stop_activity(udc, driver);
+ stop_activity(udc, udc->driver);

Is completely bogus. What happens now is that this UDC driver will
always pass a valid, non-NULL driver argument to stop_activity() which
means that when the UDC is being stopped, it will call gadget driver's
->disconnect().

In fact, you did that blind change to all UDC drivers without
considering what stop_activity() was really doing and when it was
called. I guess I'll just note on my commit that it's based on your
patch but with quite a few bugs being fixed.

Patch

diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index 0444d3f..f4397b2 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1544,8 +1544,7 @@  static int ci_udc_pullup(struct usb_gadget *_gadget, int is_on)
 
 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)
@@ -1682,8 +1681,7 @@  static int ci_udc_start(struct usb_gadget *gadget,
 /**
  * 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;
diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
index 7b5856f..b11d6cf 100644
--- a/drivers/usb/dwc2/gadget.c
+++ b/drivers/usb/dwc2/gadget.c
@@ -2918,8 +2918,7 @@  err:
  *
  * 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;
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 1f2a719..428b047 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1627,8 +1627,7 @@  err0:
 	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;
diff --git a/drivers/usb/gadget/udc/amd5536udc.c b/drivers/usb/gadget/udc/amd5536udc.c
index 7d0e0b8..606b900 100644
--- a/drivers/usb/gadget/udc/amd5536udc.c
+++ b/drivers/usb/gadget/udc/amd5536udc.c
@@ -1401,9 +1401,8 @@  static int udc_wakeup(struct usb_gadget *gadget)
 
 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,
@@ -1962,8 +1961,7 @@  __acquires(dev->lock)
 }
 
 /* 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;
diff --git a/drivers/usb/gadget/udc/at91_udc.c b/drivers/usb/gadget/udc/at91_udc.c
index 5c4cede..f47f16c 100644
--- a/drivers/usb/gadget/udc/at91_udc.c
+++ b/drivers/usb/gadget/udc/at91_udc.c
@@ -984,8 +984,8 @@  static int at91_set_selfpowered(struct usb_gadget *gadget, int is_on)
 
 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,
@@ -1644,8 +1644,7 @@  static int at91_start(struct usb_gadget *gadget,
 	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;
diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
index eaee5f9..c537a66 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.c
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
@@ -987,8 +987,8 @@  usba_udc_set_selfpowered(struct usb_gadget *gadget, int is_selfpowered)
 
 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,
@@ -1807,8 +1807,7 @@  static int atmel_usba_start(struct usb_gadget *gadget,
 	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;
diff --git a/drivers/usb/gadget/udc/bcm63xx_udc.c b/drivers/usb/gadget/udc/bcm63xx_udc.c
index 485c8c2..9319ff2 100644
--- a/drivers/usb/gadget/udc/bcm63xx_udc.c
+++ b/drivers/usb/gadget/udc/bcm63xx_udc.c
@@ -1836,8 +1836,7 @@  static int bcm63xx_udc_start(struct usb_gadget *gadget,
  * @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;
diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c
index 5c72ade..5bffb75 100644
--- a/drivers/usb/gadget/udc/dummy_hcd.c
+++ b/drivers/usb/gadget/udc/dummy_hcd.c
@@ -851,8 +851,7 @@  static int dummy_pullup(struct usb_gadget *_gadget, int value)
 
 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,
@@ -913,8 +912,7 @@  static int dummy_udc_start(struct usb_gadget *g,
 	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;
diff --git a/drivers/usb/gadget/udc/fotg210-udc.c b/drivers/usb/gadget/udc/fotg210-udc.c
index 1d31592..1ca52e11 100644
--- a/drivers/usb/gadget/udc/fotg210-udc.c
+++ b/drivers/usb/gadget/udc/fotg210-udc.c
@@ -1053,8 +1053,7 @@  static void fotg210_init(struct fotg210_udc *fotg210)
 	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;
diff --git a/drivers/usb/gadget/udc/fsl_qe_udc.c b/drivers/usb/gadget/udc/fsl_qe_udc.c
index 6ca61e6..01f29ef 100644
--- a/drivers/usb/gadget/udc/fsl_qe_udc.c
+++ b/drivers/usb/gadget/udc/fsl_qe_udc.c
@@ -1887,8 +1887,7 @@  static int qe_get_frame(struct usb_gadget *gadget)
 
 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 = {
@@ -2308,8 +2307,7 @@  static int fsl_qe_start(struct usb_gadget *gadget,
 	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;
diff --git a/drivers/usb/gadget/udc/fsl_udc_core.c b/drivers/usb/gadget/udc/fsl_udc_core.c
index c362079..b184ed3 100644
--- a/drivers/usb/gadget/udc/fsl_udc_core.c
+++ b/drivers/usb/gadget/udc/fsl_udc_core.c
@@ -1236,9 +1236,8 @@  static int fsl_pullup(struct usb_gadget *gadget, int is_on)
 
 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,
@@ -1975,8 +1974,7 @@  static int fsl_udc_start(struct usb_gadget *g,
 }
 
 /* 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;
diff --git a/drivers/usb/gadget/udc/fusb300_udc.c b/drivers/usb/gadget/udc/fusb300_udc.c
index 8286df7..a1b33f5 100644
--- a/drivers/usb/gadget/udc/fusb300_udc.c
+++ b/drivers/usb/gadget/udc/fusb300_udc.c
@@ -1320,8 +1320,7 @@  static int fusb300_udc_start(struct usb_gadget *g,
 	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);
 
diff --git a/drivers/usb/gadget/udc/goku_udc.c b/drivers/usb/gadget/udc/goku_udc.c
index bf9c5ef..5b9176e 100644
--- a/drivers/usb/gadget/udc/goku_udc.c
+++ b/drivers/usb/gadget/udc/goku_udc.c
@@ -992,8 +992,7 @@  static int goku_get_frame(struct usb_gadget *_gadget)
 
 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,
@@ -1364,8 +1363,7 @@  static void stop_activity(struct goku_udc *dev)
 		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;
diff --git a/drivers/usb/gadget/udc/gr_udc.c b/drivers/usb/gadget/udc/gr_udc.c
index bde989f..320df9a2 100644
--- a/drivers/usb/gadget/udc/gr_udc.c
+++ b/drivers/usb/gadget/udc/gr_udc.c
@@ -1935,8 +1935,7 @@  static int gr_udc_start(struct usb_gadget *gadget,
 	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;
diff --git a/drivers/usb/gadget/udc/lpc32xx_udc.c b/drivers/usb/gadget/udc/lpc32xx_udc.c
index cef64b9..4be497d 100644
--- a/drivers/usb/gadget/udc/lpc32xx_udc.c
+++ b/drivers/usb/gadget/udc/lpc32xx_udc.c
@@ -2559,7 +2559,7 @@  static int lpc32xx_pullup(struct usb_gadget *gadget, int is_on)
 }
 
 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,
@@ -2961,8 +2961,7 @@  static int lpc32xx_start(struct usb_gadget *gadget,
 	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);
diff --git a/drivers/usb/gadget/udc/m66592-udc.c b/drivers/usb/gadget/udc/m66592-udc.c
index 8985656..311ec5f 100644
--- a/drivers/usb/gadget/udc/m66592-udc.c
+++ b/drivers/usb/gadget/udc/m66592-udc.c
@@ -1485,8 +1485,7 @@  static int m66592_udc_start(struct usb_gadget *g,
 	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);
 
diff --git a/drivers/usb/gadget/udc/mv_u3d_core.c b/drivers/usb/gadget/udc/mv_u3d_core.c
index e3ef744..ea422ac 100644
--- a/drivers/usb/gadget/udc/mv_u3d_core.c
+++ b/drivers/usb/gadget/udc/mv_u3d_core.c
@@ -1266,8 +1266,7 @@  static int mv_u3d_start(struct usb_gadget *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);
diff --git a/drivers/usb/gadget/udc/mv_udc_core.c b/drivers/usb/gadget/udc/mv_udc_core.c
index 32d24ff..f104ac0 100644
--- a/drivers/usb/gadget/udc/mv_udc_core.c
+++ b/drivers/usb/gadget/udc/mv_udc_core.c
@@ -1223,7 +1223,7 @@  static int mv_udc_pullup(struct usb_gadget *gadget, int is_on)
 }
 
 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 = {
 
@@ -1371,8 +1371,7 @@  static int mv_udc_start(struct usb_gadget *gadget,
 	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;
diff --git a/drivers/usb/gadget/udc/net2272.c b/drivers/usb/gadget/udc/net2272.c
index 4641df5..887bea4 100644
--- a/drivers/usb/gadget/udc/net2272.c
+++ b/drivers/usb/gadget/udc/net2272.c
@@ -1169,8 +1169,7 @@  net2272_pullup(struct usb_gadget *_gadget, int is_on)
 
 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,
@@ -1500,8 +1499,7 @@  stop_activity(struct net2272 *dev, struct usb_gadget_driver *driver)
 	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;
diff --git a/drivers/usb/gadget/udc/net2280.c b/drivers/usb/gadget/udc/net2280.c
index c3ebdcd..73250a6 100644
--- a/drivers/usb/gadget/udc/net2280.c
+++ b/drivers/usb/gadget/udc/net2280.c
@@ -1548,8 +1548,7 @@  static int net2280_pullup(struct usb_gadget *_gadget, int is_on)
 
 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,
@@ -2432,8 +2431,7 @@  static void stop_activity(struct net2280 *dev, struct usb_gadget_driver *driver)
 	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;
diff --git a/drivers/usb/gadget/udc/omap_udc.c b/drivers/usb/gadget/udc/omap_udc.c
index dcdfea4..534b85c 100644
--- a/drivers/usb/gadget/udc/omap_udc.c
+++ b/drivers/usb/gadget/udc/omap_udc.c
@@ -1311,8 +1311,7 @@  static int omap_pullup(struct usb_gadget *gadget, int is_on)
 
 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,
@@ -2102,8 +2101,7 @@  done:
 	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;
diff --git a/drivers/usb/gadget/udc/pch_udc.c b/drivers/usb/gadget/udc/pch_udc.c
index ccbe3d4..6534f36 100644
--- a/drivers/usb/gadget/udc/pch_udc.c
+++ b/drivers/usb/gadget/udc/pch_udc.c
@@ -1240,8 +1240,8 @@  static int pch_udc_pcd_vbus_draw(struct usb_gadget *gadget, unsigned int mA)
 
 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,
@@ -3008,8 +3008,7 @@  static int pch_udc_start(struct usb_gadget *g,
 	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);
 
diff --git a/drivers/usb/gadget/udc/pxa25x_udc.c b/drivers/usb/gadget/udc/pxa25x_udc.c
index 098fa57..2944092 100644
--- a/drivers/usb/gadget/udc/pxa25x_udc.c
+++ b/drivers/usb/gadget/udc/pxa25x_udc.c
@@ -998,8 +998,7 @@  static int pxa25x_udc_vbus_draw(struct usb_gadget *_gadget, unsigned mA)
 
 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,
@@ -1311,8 +1310,7 @@  stop_activity(struct pxa25x_udc *dev, struct usb_gadget_driver *driver)
 	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);
 
diff --git a/drivers/usb/gadget/udc/pxa27x_udc.c b/drivers/usb/gadget/udc/pxa27x_udc.c
index b90b1f3..17a0193 100644
--- a/drivers/usb/gadget/udc/pxa27x_udc.c
+++ b/drivers/usb/gadget/udc/pxa27x_udc.c
@@ -1669,8 +1669,7 @@  static int pxa_udc_vbus_draw(struct usb_gadget *_gadget, unsigned mA)
 
 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,
@@ -1857,8 +1856,7 @@  static void stop_activity(struct pxa_udc *udc, struct usb_gadget_driver *driver)
  *
  * 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);
 
diff --git a/drivers/usb/gadget/udc/r8a66597-udc.c b/drivers/usb/gadget/udc/r8a66597-udc.c
index f818661..b63a527 100644
--- a/drivers/usb/gadget/udc/r8a66597-udc.c
+++ b/drivers/usb/gadget/udc/r8a66597-udc.c
@@ -1763,8 +1763,7 @@  static int r8a66597_start(struct usb_gadget *gadget,
 	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;
diff --git a/drivers/usb/gadget/udc/s3c-hsudc.c b/drivers/usb/gadget/udc/s3c-hsudc.c
index de95e9d..97d3a91 100644
--- a/drivers/usb/gadget/udc/s3c-hsudc.c
+++ b/drivers/usb/gadget/udc/s3c-hsudc.c
@@ -1188,8 +1188,7 @@  err_supplies:
 	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;
diff --git a/drivers/usb/gadget/udc/s3c2410_udc.c b/drivers/usb/gadget/udc/s3c2410_udc.c
index ff423d1..2a8e36d 100644
--- a/drivers/usb/gadget/udc/s3c2410_udc.c
+++ b/drivers/usb/gadget/udc/s3c2410_udc.c
@@ -1541,8 +1541,7 @@  static int s3c2410_vbus_draw(struct usb_gadget *_gadget, unsigned ma)
 
 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,
@@ -1683,8 +1682,7 @@  static int s3c2410_udc_start(struct usb_gadget *g,
 	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);
 
diff --git a/drivers/usb/gadget/udc/udc-core.c b/drivers/usb/gadget/udc/udc-core.c
index 52f457b..135504b 100644
--- a/drivers/usb/gadget/udc/udc-core.c
+++ b/drivers/usb/gadget/udc/udc-core.c
@@ -204,7 +204,7 @@  static inline int usb_gadget_udc_start(struct usb_udc *udc)
  */
 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);
 }
 
 /**
diff --git a/drivers/usb/gadget/udc/udc-xilinx.c b/drivers/usb/gadget/udc/udc-xilinx.c
index ed27e16..1eac56f 100644
--- a/drivers/usb/gadget/udc/udc-xilinx.c
+++ b/drivers/usb/gadget/udc/udc-xilinx.c
@@ -1403,8 +1403,7 @@  err:
  *
  * 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;
diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index 88d63e0..4ab1896 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -1684,8 +1684,7 @@  static int musb_gadget_pullup(struct usb_gadget *gadget, int is_on)
 
 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,
@@ -1923,8 +1922,7 @@  static void stop_activity(struct musb *musb, struct usb_gadget_driver *driver)
  *
  * @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;
diff --git a/drivers/usb/renesas_usbhs/mod_gadget.c b/drivers/usb/renesas_usbhs/mod_gadget.c
index 2d17c10..7a45210 100644
--- a/drivers/usb/renesas_usbhs/mod_gadget.c
+++ b/drivers/usb/renesas_usbhs/mod_gadget.c
@@ -851,8 +851,7 @@  static int usbhsg_gadget_start(struct usb_gadget *gadget,
 	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);
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index 522cafe..70965fc 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -490,8 +490,7 @@  struct usb_gadget_ops {
 	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 *);
 };
 
 /**