diff options
Diffstat (limited to 'drivers/usb/gadget/composite.c')
-rw-r--r-- | drivers/usb/gadget/composite.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index 1ba4befe336b..c2251c40a205 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c | |||
@@ -813,7 +813,7 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl) | |||
813 | */ | 813 | */ |
814 | req->zero = 0; | 814 | req->zero = 0; |
815 | req->complete = composite_setup_complete; | 815 | req->complete = composite_setup_complete; |
816 | req->length = USB_BUFSIZ; | 816 | req->length = 0; |
817 | gadget->ep0->driver_data = cdev; | 817 | gadget->ep0->driver_data = cdev; |
818 | 818 | ||
819 | switch (ctrl->bRequest) { | 819 | switch (ctrl->bRequest) { |
@@ -887,7 +887,7 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl) | |||
887 | case USB_REQ_SET_INTERFACE: | 887 | case USB_REQ_SET_INTERFACE: |
888 | if (ctrl->bRequestType != USB_RECIP_INTERFACE) | 888 | if (ctrl->bRequestType != USB_RECIP_INTERFACE) |
889 | goto unknown; | 889 | goto unknown; |
890 | if (!cdev->config || w_index >= MAX_CONFIG_INTERFACES) | 890 | if (!cdev->config || intf >= MAX_CONFIG_INTERFACES) |
891 | break; | 891 | break; |
892 | f = cdev->config->interface[intf]; | 892 | f = cdev->config->interface[intf]; |
893 | if (!f) | 893 | if (!f) |
@@ -899,7 +899,7 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl) | |||
899 | case USB_REQ_GET_INTERFACE: | 899 | case USB_REQ_GET_INTERFACE: |
900 | if (ctrl->bRequestType != (USB_DIR_IN|USB_RECIP_INTERFACE)) | 900 | if (ctrl->bRequestType != (USB_DIR_IN|USB_RECIP_INTERFACE)) |
901 | goto unknown; | 901 | goto unknown; |
902 | if (!cdev->config || w_index >= MAX_CONFIG_INTERFACES) | 902 | if (!cdev->config || intf >= MAX_CONFIG_INTERFACES) |
903 | break; | 903 | break; |
904 | f = cdev->config->interface[intf]; | 904 | f = cdev->config->interface[intf]; |
905 | if (!f) | 905 | if (!f) |
@@ -928,7 +928,7 @@ unknown: | |||
928 | */ | 928 | */ |
929 | switch (ctrl->bRequestType & USB_RECIP_MASK) { | 929 | switch (ctrl->bRequestType & USB_RECIP_MASK) { |
930 | case USB_RECIP_INTERFACE: | 930 | case USB_RECIP_INTERFACE: |
931 | if (!cdev->config || w_index >= MAX_CONFIG_INTERFACES) | 931 | if (!cdev->config || intf >= MAX_CONFIG_INTERFACES) |
932 | break; | 932 | break; |
933 | f = cdev->config->interface[intf]; | 933 | f = cdev->config->interface[intf]; |
934 | break; | 934 | break; |
@@ -1258,16 +1258,16 @@ static struct usb_gadget_driver composite_driver = { | |||
1258 | * while it was binding. That would usually be done in order to wait for | 1258 | * while it was binding. That would usually be done in order to wait for |
1259 | * some userspace participation. | 1259 | * some userspace participation. |
1260 | */ | 1260 | */ |
1261 | extern int usb_composite_probe(struct usb_composite_driver *driver, | 1261 | int usb_composite_probe(struct usb_composite_driver *driver, |
1262 | int (*bind)(struct usb_composite_dev *cdev)) | 1262 | int (*bind)(struct usb_composite_dev *cdev)) |
1263 | { | 1263 | { |
1264 | if (!driver || !driver->dev || !bind || composite) | 1264 | if (!driver || !driver->dev || !bind || composite) |
1265 | return -EINVAL; | 1265 | return -EINVAL; |
1266 | 1266 | ||
1267 | if (!driver->iProduct) | ||
1268 | driver->iProduct = driver->name; | ||
1269 | if (!driver->name) | 1267 | if (!driver->name) |
1270 | driver->name = "composite"; | 1268 | driver->name = "composite"; |
1269 | if (!driver->iProduct) | ||
1270 | driver->iProduct = driver->name; | ||
1271 | composite_driver.function = (char *) driver->name; | 1271 | composite_driver.function = (char *) driver->name; |
1272 | composite_driver.driver.name = driver->name; | 1272 | composite_driver.driver.name = driver->name; |
1273 | composite = driver; | 1273 | composite = driver; |