]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/usb/gadget/inode.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/writeback
[karo-tx-linux.git] / drivers / usb / gadget / inode.c
index a56876aaf76cdc1dfbec0a331f70739a2a27b04f..1b240990448f05fe25149d9fd21c211499961d4f 100644 (file)
@@ -832,14 +832,16 @@ ep_config (struct file *fd, const char __user *buf, size_t len, loff_t *ptr)
        switch (data->dev->gadget->speed) {
        case USB_SPEED_LOW:
        case USB_SPEED_FULL:
-               value = usb_ep_enable (ep, &data->desc);
+               ep->desc = &data->desc;
+               value = usb_ep_enable(ep);
                if (value == 0)
                        data->state = STATE_EP_ENABLED;
                break;
 #ifdef CONFIG_USB_GADGET_DUALSPEED
        case USB_SPEED_HIGH:
                /* fails if caller didn't provide that descriptor... */
-               value = usb_ep_enable (ep, &data->hs_desc);
+               ep->desc = &data->hs_desc;
+               value = usb_ep_enable(ep);
                if (value == 0)
                        data->state = STATE_EP_ENABLED;
                break;
@@ -1345,7 +1347,7 @@ static void make_qualifier (struct dev_data *dev)
        qual.bDeviceProtocol = desc->bDeviceProtocol;
 
        /* assumes ep0 uses the same value for both speeds ... */
-       qual.bMaxPacketSize0 = desc->bMaxPacketSize0;
+       qual.bMaxPacketSize0 = dev->gadget->ep0->maxpacket;
 
        qual.bNumConfigurations = 1;
        qual.bRESERVED = 0;
@@ -1402,7 +1404,6 @@ gadgetfs_setup (struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
                }
 
                dev->state = STATE_DEV_CONNECTED;
-               dev->dev->bMaxPacketSize0 = gadget->ep0->maxpacket;
 
                INFO (dev, "connected\n");
                event = next_event (dev, GADGETFS_CONNECT);
@@ -1430,6 +1431,7 @@ gadgetfs_setup (struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
 
                case USB_DT_DEVICE:
                        value = min (w_length, (u16) sizeof *dev->dev);
+                       dev->dev->bMaxPacketSize0 = dev->gadget->ep0->maxpacket;
                        req->buf = dev->dev;
                        break;
 #ifdef CONFIG_USB_GADGET_DUALSPEED
@@ -1710,7 +1712,6 @@ gadgetfs_bind (struct usb_gadget *gadget)
        set_gadget_data (gadget, dev);
        dev->gadget = gadget;
        gadget->ep0->driver_data = dev;
-       dev->dev->bMaxPacketSize0 = gadget->ep0->maxpacket;
 
        /* preallocate control response and buffer */
        dev->req = usb_ep_alloc_request (gadget->ep0, GFP_KERNEL);