From 2ecf344d750b6cf9b5da10fbf1089706d1fd02da Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 23 Jun 2011 14:26:17 +0200 Subject: [PATCH] --- yaml --- r: 259254 b: refs/heads/master c: aa0747394337e50533badd46e8fb7106bad3311e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/usb/gadget/dummy_hcd.c | 50 +++++++++------------------- 2 files changed, 16 insertions(+), 36 deletions(-) diff --git a/[refs] b/[refs] index 5facf9c47056..0dfbafd65489 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e71eb392c2014e2b377810ad329e36b0229d041c +refs/heads/master: aa0747394337e50533badd46e8fb7106bad3311e diff --git a/trunk/drivers/usb/gadget/dummy_hcd.c b/trunk/drivers/usb/gadget/dummy_hcd.c index f5c0d8f28598..e755a9d267fc 100644 --- a/trunk/drivers/usb/gadget/dummy_hcd.c +++ b/trunk/drivers/usb/gadget/dummy_hcd.c @@ -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, }; /*-------------------------------------------------------------------------*/ @@ -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; /* @@ -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);