Skip to content

Commit

Permalink
usb: gadget: remove unnecessary 'driver' argument
Browse files Browse the repository at this point in the history
now that no UDC driver relies on the extra
'driver' argument to ->udc_stop(), we can
safely remove it.

This commit is based on previous work by
Robert Baldyga <r.baldyga@samsung.com> which
can be found at [1]; however that patch turned
out to have a high probability of regressing
many UDC drivers because of a blind search & replace
s/driver/$udc->driver/ which caused the 'driver'
argument to stop_activity() to be a valid non-NULL
pointer when it should be NULL, thus causing UDCs
to mistakenly call gadget driver's ->disconnect()
callback.

[1] http://markmail.org/message/x5zneg4xea4zntab

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
  • Loading branch information
Felipe Balbi committed Nov 3, 2014
1 parent 8da9fe8 commit 22835b8
Show file tree
Hide file tree
Showing 32 changed files with 55 additions and 99 deletions.
6 changes: 2 additions & 4 deletions drivers/usb/chipidea/udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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;
Expand Down
3 changes: 1 addition & 2 deletions drivers/usb/dwc2/gadget.c
Original file line number Diff line number Diff line change
Expand Up @@ -2921,8 +2921,7 @@ static int s3c_hsotg_udc_start(struct usb_gadget *gadget,
*
* 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;
Expand Down
3 changes: 1 addition & 2 deletions drivers/usb/dwc3/gadget.c
Original file line number Diff line number Diff line change
Expand Up @@ -1630,8 +1630,7 @@ static int dwc3_gadget_start(struct usb_gadget *g,
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;
Expand Down
8 changes: 3 additions & 5 deletions drivers/usb/gadget/udc/amd5536udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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;
Expand Down
7 changes: 3 additions & 4 deletions drivers/usb/gadget/udc/at91_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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;
Expand Down
7 changes: 3 additions & 4 deletions drivers/usb/gadget/udc/atmel_usba_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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;
Expand Down
3 changes: 1 addition & 2 deletions drivers/usb/gadget/udc/bcm63xx_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
6 changes: 2 additions & 4 deletions drivers/usb/gadget/udc/dummy_hcd.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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;
Expand Down
3 changes: 1 addition & 2 deletions drivers/usb/gadget/udc/fotg210-udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
6 changes: 2 additions & 4 deletions drivers/usb/gadget/udc/fsl_qe_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
Expand Down Expand Up @@ -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;
Expand Down
8 changes: 3 additions & 5 deletions drivers/usb/gadget/udc/fsl_udc_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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;
Expand Down
3 changes: 1 addition & 2 deletions drivers/usb/gadget/udc/fusb300_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
6 changes: 2 additions & 4 deletions drivers/usb/gadget/udc/goku_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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;
Expand Down
3 changes: 1 addition & 2 deletions drivers/usb/gadget/udc/gr_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
5 changes: 2 additions & 3 deletions drivers/usb/gadget/udc/lpc32xx_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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);
Expand Down
3 changes: 1 addition & 2 deletions drivers/usb/gadget/udc/m66592-udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
3 changes: 1 addition & 2 deletions drivers/usb/gadget/udc/mv_u3d_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
5 changes: 2 additions & 3 deletions drivers/usb/gadget/udc/mv_udc_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {

Expand Down Expand Up @@ -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;
Expand Down
6 changes: 2 additions & 4 deletions drivers/usb/gadget/udc/net2272.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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;
Expand Down
6 changes: 2 additions & 4 deletions drivers/usb/gadget/udc/net2280.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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;
Expand Down
6 changes: 2 additions & 4 deletions drivers/usb/gadget/udc/omap_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -2102,8 +2101,7 @@ static int omap_udc_start(struct usb_gadget *g,
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;
Expand Down
7 changes: 3 additions & 4 deletions drivers/usb/gadget/udc/pch_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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);

Expand Down
6 changes: 2 additions & 4 deletions drivers/usb/gadget/udc/pxa25x_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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);

Expand Down
Loading

0 comments on commit 22835b8

Please sign in to comment.