Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 259254
b: refs/heads/master
c: aa07473
h: refs/heads/master
v: v3
  • Loading branch information
Sebastian Andrzej Siewior authored and Greg Kroah-Hartman committed Jul 1, 2011
1 parent 6207117 commit 2ecf344
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 36 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e71eb392c2014e2b377810ad329e36b0229d041c
refs/heads/master: aa0747394337e50533badd46e8fb7106bad3311e
50 changes: 15 additions & 35 deletions trunk/drivers/usb/gadget/dummy_hcd.c
Original file line number Diff line number Diff line change
Expand Up @@ -857,17 +857,18 @@ static int dummy_pullup (struct usb_gadget *_gadget, int value)
return 0;
}

static int dummy_udc_start(struct usb_gadget_driver *driver,
int (*bind)(struct usb_gadget *));
static int dummy_udc_stop(struct usb_gadget_driver *driver);
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 const struct usb_gadget_ops dummy_ops = {
.get_frame = dummy_g_get_frame,
.wakeup = dummy_wakeup,
.set_selfpowered = dummy_set_selfpowered,
.pullup = dummy_pullup,
.start = dummy_udc_start,
.stop = dummy_udc_stop,
.udc_start = dummy_udc_start,
.udc_stop = dummy_udc_stop,
};

/*-------------------------------------------------------------------------*/
Expand Down Expand Up @@ -900,17 +901,13 @@ static DEVICE_ATTR (function, S_IRUGO, show_function, NULL);
* for each driver that registers: just add to a big root hub.
*/

static int dummy_udc_start(struct usb_gadget_driver *driver,
int (*bind)(struct usb_gadget *))
static int dummy_udc_start(struct usb_gadget *g,
struct usb_gadget_driver *driver)
{
struct dummy *dum = &the_controller;
int retval;
struct dummy_hcd *dum_hcd = gadget_to_dummy_hcd(g);
struct dummy *dum = dum_hcd->dum;

if (!dum)
return -EINVAL;
if (dum->driver)
return -EBUSY;
if (!bind || !driver->setup || driver->speed == USB_SPEED_UNKNOWN)
if (driver->speed == USB_SPEED_UNKNOWN)
return -EINVAL;

/*
Expand All @@ -921,37 +918,20 @@ static int dummy_udc_start(struct usb_gadget_driver *driver,
dum->devstatus = 0;

dum->driver = driver;
dum->gadget.dev.driver = &driver->driver;
dev_dbg (udc_dev(dum), "binding gadget driver '%s'\n",
driver->driver.name);
retval = bind(&dum->gadget);
if (retval) {
dum->driver = NULL;
dum->gadget.dev.driver = NULL;
return retval;
}

/* khubd will enumerate this in a while */
dummy_pullup(&dum->gadget, 1);
return 0;
}

static int dummy_udc_stop(struct usb_gadget_driver *driver)
static int dummy_udc_stop(struct usb_gadget *g,
struct usb_gadget_driver *driver)
{
struct dummy *dum = &the_controller;

if (!dum)
return -ENODEV;
if (!driver || driver != dum->driver || !driver->unbind)
return -EINVAL;
struct dummy_hcd *dum_hcd = gadget_to_dummy_hcd(g);
struct dummy *dum = dum_hcd->dum;

dev_dbg (udc_dev(dum), "unregister gadget driver '%s'\n",
driver->driver.name);

dummy_pullup(&dum->gadget, 0);

driver->unbind (&dum->gadget);
dum->gadget.dev.driver = NULL;
dum->driver = NULL;

dummy_pullup(&dum->gadget, 0);
Expand Down

0 comments on commit 2ecf344

Please sign in to comment.