]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/usb/gadget/file_storage.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/writeback
[karo-tx-linux.git] / drivers / usb / gadget / file_storage.c
index 0360f56221ea21ed3eda1fc93cfde2ecd76bc08c..639e14a2fd15e4c5f6fd899f19631ff9beec3212 100644 (file)
@@ -929,6 +929,7 @@ static int standard_setup_req(struct fsg_dev *fsg,
 
                case USB_DT_DEVICE:
                        VDBG(fsg, "get device descriptor\n");
+                       device_desc.bMaxPacketSize0 = fsg->ep0->maxpacket;
                        value = sizeof device_desc;
                        memcpy(req->buf, &device_desc, value);
                        break;
@@ -936,6 +937,11 @@ static int standard_setup_req(struct fsg_dev *fsg,
                        VDBG(fsg, "get device qualifier\n");
                        if (!gadget_is_dualspeed(fsg->gadget))
                                break;
+                       /*
+                        * Assume ep0 uses the same maxpacket value for both
+                        * speeds
+                        */
+                       dev_qualifier.bMaxPacketSize0 = fsg->ep0->maxpacket;
                        value = sizeof dev_qualifier;
                        memcpy(req->buf, &dev_qualifier, value);
                        break;
@@ -2713,7 +2719,8 @@ static int enable_endpoint(struct fsg_dev *fsg, struct usb_ep *ep,
        int     rc;
 
        ep->driver_data = fsg;
-       rc = usb_ep_enable(ep, d);
+       ep->desc = d;
+       rc = usb_ep_enable(ep);
        if (rc)
                ERROR(fsg, "can't enable %s, result %d\n", ep->name, rc);
        return rc;
@@ -3416,7 +3423,6 @@ static int __init fsg_bind(struct usb_gadget *gadget)
        }
 
        /* Fix up the descriptors */
-       device_desc.bMaxPacketSize0 = fsg->ep0->maxpacket;
        device_desc.idVendor = cpu_to_le16(mod_data.vendor);
        device_desc.idProduct = cpu_to_le16(mod_data.product);
        device_desc.bcdDevice = cpu_to_le16(mod_data.release);
@@ -3430,9 +3436,6 @@ static int __init fsg_bind(struct usb_gadget *gadget)
        if (gadget_is_dualspeed(gadget)) {
                fsg_hs_function[i + FSG_HS_FUNCTION_PRE_EP_ENTRIES] = NULL;
 
-               /* Assume ep0 uses the same maxpacket value for both speeds */
-               dev_qualifier.bMaxPacketSize0 = fsg->ep0->maxpacket;
-
                /* Assume endpoint addresses are the same for both speeds */
                fsg_hs_bulk_in_desc.bEndpointAddress =
                        fsg_fs_bulk_in_desc.bEndpointAddress;
@@ -3486,6 +3489,8 @@ static int __init fsg_bind(struct usb_gadget *gadget)
        }
 
        INFO(fsg, DRIVER_DESC ", version: " DRIVER_VERSION "\n");
+       INFO(fsg, "NOTE: This driver is deprecated.  "
+                       "Consider using g_mass_storage instead.\n");
        INFO(fsg, "Number of LUNs=%d\n", fsg->nluns);
 
        pathbuf = kmalloc(PATH_MAX, GFP_KERNEL);