diff options
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r-- | drivers/usb/gadget/atmel_usba_udc.c | 3 | ||||
-rw-r--r-- | drivers/usb/gadget/composite.c | 19 | ||||
-rw-r--r-- | drivers/usb/gadget/f_acm.c | 2 | ||||
-rw-r--r-- | drivers/usb/gadget/g_ffs.c | 4 | ||||
-rw-r--r-- | drivers/usb/gadget/multi.c | 4 | ||||
-rw-r--r-- | drivers/usb/gadget/printer.c | 19 |
6 files changed, 27 insertions, 24 deletions
diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c index d623c7bda1f6..2d19d88846ef 100644 --- a/drivers/usb/gadget/atmel_usba_udc.c +++ b/drivers/usb/gadget/atmel_usba_udc.c | |||
@@ -2014,6 +2014,9 @@ static int __init usba_udc_probe(struct platform_device *pdev) | |||
2014 | } else { | 2014 | } else { |
2015 | disable_irq(gpio_to_irq(udc->vbus_pin)); | 2015 | disable_irq(gpio_to_irq(udc->vbus_pin)); |
2016 | } | 2016 | } |
2017 | } else { | ||
2018 | /* gpio_request fail so use -EINVAL for gpio_is_valid */ | ||
2019 | udc->vbus_pin = -EINVAL; | ||
2017 | } | 2020 | } |
2018 | } | 2021 | } |
2019 | 2022 | ||
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index 1160c55de7f2..67746b19ac54 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c | |||
@@ -901,7 +901,8 @@ unknown: | |||
901 | */ | 901 | */ |
902 | switch (ctrl->bRequestType & USB_RECIP_MASK) { | 902 | switch (ctrl->bRequestType & USB_RECIP_MASK) { |
903 | case USB_RECIP_INTERFACE: | 903 | case USB_RECIP_INTERFACE: |
904 | f = cdev->config->interface[intf]; | 904 | if (cdev->config) |
905 | f = cdev->config->interface[intf]; | ||
905 | break; | 906 | break; |
906 | 907 | ||
907 | case USB_RECIP_ENDPOINT: | 908 | case USB_RECIP_ENDPOINT: |
@@ -1082,14 +1083,6 @@ static int composite_bind(struct usb_gadget *gadget) | |||
1082 | */ | 1083 | */ |
1083 | usb_ep_autoconfig_reset(cdev->gadget); | 1084 | usb_ep_autoconfig_reset(cdev->gadget); |
1084 | 1085 | ||
1085 | /* standardized runtime overrides for device ID data */ | ||
1086 | if (idVendor) | ||
1087 | cdev->desc.idVendor = cpu_to_le16(idVendor); | ||
1088 | if (idProduct) | ||
1089 | cdev->desc.idProduct = cpu_to_le16(idProduct); | ||
1090 | if (bcdDevice) | ||
1091 | cdev->desc.bcdDevice = cpu_to_le16(bcdDevice); | ||
1092 | |||
1093 | /* composite gadget needs to assign strings for whole device (like | 1086 | /* composite gadget needs to assign strings for whole device (like |
1094 | * serial number), register function drivers, potentially update | 1087 | * serial number), register function drivers, potentially update |
1095 | * power state and consumption, etc | 1088 | * power state and consumption, etc |
@@ -1101,6 +1094,14 @@ static int composite_bind(struct usb_gadget *gadget) | |||
1101 | cdev->desc = *composite->dev; | 1094 | cdev->desc = *composite->dev; |
1102 | cdev->desc.bMaxPacketSize0 = gadget->ep0->maxpacket; | 1095 | cdev->desc.bMaxPacketSize0 = gadget->ep0->maxpacket; |
1103 | 1096 | ||
1097 | /* standardized runtime overrides for device ID data */ | ||
1098 | if (idVendor) | ||
1099 | cdev->desc.idVendor = cpu_to_le16(idVendor); | ||
1100 | if (idProduct) | ||
1101 | cdev->desc.idProduct = cpu_to_le16(idProduct); | ||
1102 | if (bcdDevice) | ||
1103 | cdev->desc.bcdDevice = cpu_to_le16(bcdDevice); | ||
1104 | |||
1104 | /* strings can't be assigned before bind() allocates the | 1105 | /* strings can't be assigned before bind() allocates the |
1105 | * releavnt identifiers | 1106 | * releavnt identifiers |
1106 | */ | 1107 | */ |
diff --git a/drivers/usb/gadget/f_acm.c b/drivers/usb/gadget/f_acm.c index d47a123f15ab..bd6226cbae86 100644 --- a/drivers/usb/gadget/f_acm.c +++ b/drivers/usb/gadget/f_acm.c | |||
@@ -111,7 +111,7 @@ acm_iad_descriptor = { | |||
111 | .bInterfaceCount = 2, // control + data | 111 | .bInterfaceCount = 2, // control + data |
112 | .bFunctionClass = USB_CLASS_COMM, | 112 | .bFunctionClass = USB_CLASS_COMM, |
113 | .bFunctionSubClass = USB_CDC_SUBCLASS_ACM, | 113 | .bFunctionSubClass = USB_CDC_SUBCLASS_ACM, |
114 | .bFunctionProtocol = USB_CDC_PROTO_NONE, | 114 | .bFunctionProtocol = USB_CDC_ACM_PROTO_AT_V25TER, |
115 | /* .iFunction = DYNAMIC */ | 115 | /* .iFunction = DYNAMIC */ |
116 | }; | 116 | }; |
117 | 117 | ||
diff --git a/drivers/usb/gadget/g_ffs.c b/drivers/usb/gadget/g_ffs.c index a9474f8d5325..3c2f0a43c9c6 100644 --- a/drivers/usb/gadget/g_ffs.c +++ b/drivers/usb/gadget/g_ffs.c | |||
@@ -53,8 +53,8 @@ MODULE_AUTHOR("Michal Nazarewicz"); | |||
53 | MODULE_LICENSE("GPL"); | 53 | MODULE_LICENSE("GPL"); |
54 | 54 | ||
55 | 55 | ||
56 | static unsigned short gfs_vendor_id = 0x0525; /* XXX NetChip */ | 56 | static unsigned short gfs_vendor_id = 0x1d6b; /* Linux Foundation */ |
57 | static unsigned short gfs_product_id = 0xa4ac; /* XXX */ | 57 | static unsigned short gfs_product_id = 0x0105; /* FunctionFS Gadget */ |
58 | 58 | ||
59 | static struct usb_device_descriptor gfs_dev_desc = { | 59 | static struct usb_device_descriptor gfs_dev_desc = { |
60 | .bLength = sizeof gfs_dev_desc, | 60 | .bLength = sizeof gfs_dev_desc, |
diff --git a/drivers/usb/gadget/multi.c b/drivers/usb/gadget/multi.c index 795d76232167..36d67a32abef 100644 --- a/drivers/usb/gadget/multi.c +++ b/drivers/usb/gadget/multi.c | |||
@@ -74,8 +74,8 @@ MODULE_LICENSE("GPL"); | |||
74 | 74 | ||
75 | /***************************** Device Descriptor ****************************/ | 75 | /***************************** Device Descriptor ****************************/ |
76 | 76 | ||
77 | #define MULTI_VENDOR_NUM 0x0525 /* XXX NetChip */ | 77 | #define MULTI_VENDOR_NUM 0x1d6b /* Linux Foundation */ |
78 | #define MULTI_PRODUCT_NUM 0xa4ab /* XXX */ | 78 | #define MULTI_PRODUCT_NUM 0x0104 /* Multifunction Composite Gadget */ |
79 | 79 | ||
80 | 80 | ||
81 | enum { | 81 | enum { |
diff --git a/drivers/usb/gadget/printer.c b/drivers/usb/gadget/printer.c index cf241c371a71..15222ebf3422 100644 --- a/drivers/usb/gadget/printer.c +++ b/drivers/usb/gadget/printer.c | |||
@@ -131,31 +131,31 @@ static struct printer_dev usb_printer_gadget; | |||
131 | * parameters are in UTF-8 (superset of ASCII's 7 bit characters). | 131 | * parameters are in UTF-8 (superset of ASCII's 7 bit characters). |
132 | */ | 132 | */ |
133 | 133 | ||
134 | static ushort __initdata idVendor; | 134 | static ushort idVendor; |
135 | module_param(idVendor, ushort, S_IRUGO); | 135 | module_param(idVendor, ushort, S_IRUGO); |
136 | MODULE_PARM_DESC(idVendor, "USB Vendor ID"); | 136 | MODULE_PARM_DESC(idVendor, "USB Vendor ID"); |
137 | 137 | ||
138 | static ushort __initdata idProduct; | 138 | static ushort idProduct; |
139 | module_param(idProduct, ushort, S_IRUGO); | 139 | module_param(idProduct, ushort, S_IRUGO); |
140 | MODULE_PARM_DESC(idProduct, "USB Product ID"); | 140 | MODULE_PARM_DESC(idProduct, "USB Product ID"); |
141 | 141 | ||
142 | static ushort __initdata bcdDevice; | 142 | static ushort bcdDevice; |
143 | module_param(bcdDevice, ushort, S_IRUGO); | 143 | module_param(bcdDevice, ushort, S_IRUGO); |
144 | MODULE_PARM_DESC(bcdDevice, "USB Device version (BCD)"); | 144 | MODULE_PARM_DESC(bcdDevice, "USB Device version (BCD)"); |
145 | 145 | ||
146 | static char *__initdata iManufacturer; | 146 | static char *iManufacturer; |
147 | module_param(iManufacturer, charp, S_IRUGO); | 147 | module_param(iManufacturer, charp, S_IRUGO); |
148 | MODULE_PARM_DESC(iManufacturer, "USB Manufacturer string"); | 148 | MODULE_PARM_DESC(iManufacturer, "USB Manufacturer string"); |
149 | 149 | ||
150 | static char *__initdata iProduct; | 150 | static char *iProduct; |
151 | module_param(iProduct, charp, S_IRUGO); | 151 | module_param(iProduct, charp, S_IRUGO); |
152 | MODULE_PARM_DESC(iProduct, "USB Product string"); | 152 | MODULE_PARM_DESC(iProduct, "USB Product string"); |
153 | 153 | ||
154 | static char *__initdata iSerialNum; | 154 | static char *iSerialNum; |
155 | module_param(iSerialNum, charp, S_IRUGO); | 155 | module_param(iSerialNum, charp, S_IRUGO); |
156 | MODULE_PARM_DESC(iSerialNum, "1"); | 156 | MODULE_PARM_DESC(iSerialNum, "1"); |
157 | 157 | ||
158 | static char *__initdata iPNPstring; | 158 | static char *iPNPstring; |
159 | module_param(iPNPstring, charp, S_IRUGO); | 159 | module_param(iPNPstring, charp, S_IRUGO); |
160 | MODULE_PARM_DESC(iPNPstring, "MFG:linux;MDL:g_printer;CLS:PRINTER;SN:1;"); | 160 | MODULE_PARM_DESC(iPNPstring, "MFG:linux;MDL:g_printer;CLS:PRINTER;SN:1;"); |
161 | 161 | ||
@@ -1596,13 +1596,12 @@ cleanup(void) | |||
1596 | int status; | 1596 | int status; |
1597 | 1597 | ||
1598 | mutex_lock(&usb_printer_gadget.lock_printer_io); | 1598 | mutex_lock(&usb_printer_gadget.lock_printer_io); |
1599 | class_destroy(usb_gadget_class); | ||
1600 | unregister_chrdev_region(g_printer_devno, 2); | ||
1601 | |||
1602 | status = usb_gadget_unregister_driver(&printer_driver); | 1599 | status = usb_gadget_unregister_driver(&printer_driver); |
1603 | if (status) | 1600 | if (status) |
1604 | ERROR(dev, "usb_gadget_unregister_driver %x\n", status); | 1601 | ERROR(dev, "usb_gadget_unregister_driver %x\n", status); |
1605 | 1602 | ||
1603 | unregister_chrdev_region(g_printer_devno, 2); | ||
1604 | class_destroy(usb_gadget_class); | ||
1606 | mutex_unlock(&usb_printer_gadget.lock_printer_io); | 1605 | mutex_unlock(&usb_printer_gadget.lock_printer_io); |
1607 | } | 1606 | } |
1608 | module_exit(cleanup); | 1607 | module_exit(cleanup); |