diff options
Diffstat (limited to 'drivers/usb/gadget/zero.c')
| -rw-r--r-- | drivers/usb/gadget/zero.c | 48 |
1 files changed, 11 insertions, 37 deletions
diff --git a/drivers/usb/gadget/zero.c b/drivers/usb/gadget/zero.c index bb9b2d94eed5..6890e773b2a2 100644 --- a/drivers/usb/gadget/zero.c +++ b/drivers/usb/gadget/zero.c | |||
| @@ -1139,6 +1139,13 @@ zero_bind (struct usb_gadget *gadget) | |||
| 1139 | { | 1139 | { |
| 1140 | struct zero_dev *dev; | 1140 | struct zero_dev *dev; |
| 1141 | struct usb_ep *ep; | 1141 | struct usb_ep *ep; |
| 1142 | int gcnum; | ||
| 1143 | |||
| 1144 | /* FIXME this can't yet work right with SH ... it has only | ||
| 1145 | * one configuration, numbered one. | ||
| 1146 | */ | ||
| 1147 | if (gadget_is_sh(gadget)) | ||
| 1148 | return -ENODEV; | ||
| 1142 | 1149 | ||
| 1143 | /* Bulk-only drivers like this one SHOULD be able to | 1150 | /* Bulk-only drivers like this one SHOULD be able to |
| 1144 | * autoconfigure on any sane usb controller driver, | 1151 | * autoconfigure on any sane usb controller driver, |
| @@ -1161,43 +1168,10 @@ autoconf_fail: | |||
| 1161 | EP_OUT_NAME = ep->name; | 1168 | EP_OUT_NAME = ep->name; |
| 1162 | ep->driver_data = ep; /* claim */ | 1169 | ep->driver_data = ep; /* claim */ |
| 1163 | 1170 | ||
| 1164 | 1171 | gcnum = usb_gadget_controller_number (gadget); | |
| 1165 | /* | 1172 | if (gcnum >= 0) |
| 1166 | * DRIVER POLICY CHOICE: you may want to do this differently. | 1173 | device_desc.bcdDevice = cpu_to_le16 (0x0200 + gcnum); |
| 1167 | * One thing to avoid is reusing a bcdDevice revision code | 1174 | else { |
| 1168 | * with different host-visible configurations or behavior | ||
| 1169 | * restrictions -- using ep1in/ep2out vs ep1out/ep3in, etc | ||
| 1170 | */ | ||
| 1171 | if (gadget_is_net2280 (gadget)) { | ||
| 1172 | device_desc.bcdDevice = __constant_cpu_to_le16 (0x0201); | ||
| 1173 | } else if (gadget_is_pxa (gadget)) { | ||
| 1174 | device_desc.bcdDevice = __constant_cpu_to_le16 (0x0203); | ||
| 1175 | #if 0 | ||
| 1176 | } else if (gadget_is_sh(gadget)) { | ||
| 1177 | device_desc.bcdDevice = __constant_cpu_to_le16 (0x0204); | ||
| 1178 | /* SH has only one configuration; see "loopdefault" */ | ||
| 1179 | device_desc.bNumConfigurations = 1; | ||
| 1180 | /* FIXME make 1 == default.bConfigurationValue */ | ||
| 1181 | #endif | ||
| 1182 | } else if (gadget_is_sa1100 (gadget)) { | ||
| 1183 | device_desc.bcdDevice = __constant_cpu_to_le16 (0x0205); | ||
| 1184 | } else if (gadget_is_goku (gadget)) { | ||
| 1185 | device_desc.bcdDevice = __constant_cpu_to_le16 (0x0206); | ||
| 1186 | } else if (gadget_is_mq11xx (gadget)) { | ||
| 1187 | device_desc.bcdDevice = __constant_cpu_to_le16 (0x0207); | ||
| 1188 | } else if (gadget_is_omap (gadget)) { | ||
| 1189 | device_desc.bcdDevice = __constant_cpu_to_le16 (0x0208); | ||
| 1190 | } else if (gadget_is_lh7a40x(gadget)) { | ||
| 1191 | device_desc.bcdDevice = __constant_cpu_to_le16 (0x0209); | ||
| 1192 | } else if (gadget_is_n9604(gadget)) { | ||
| 1193 | device_desc.bcdDevice = __constant_cpu_to_le16 (0x0210); | ||
| 1194 | } else if (gadget_is_pxa27x(gadget)) { | ||
| 1195 | device_desc.bcdDevice = __constant_cpu_to_le16 (0x0211); | ||
| 1196 | } else if (gadget_is_s3c2410(gadget)) { | ||
| 1197 | device_desc.bcdDevice = __constant_cpu_to_le16 (0x0212); | ||
| 1198 | } else if (gadget_is_at91(gadget)) { | ||
| 1199 | device_desc.bcdDevice = __constant_cpu_to_le16 (0x0213); | ||
| 1200 | } else { | ||
| 1201 | /* gadget zero is so simple (for now, no altsettings) that | 1175 | /* gadget zero is so simple (for now, no altsettings) that |
| 1202 | * it SHOULD NOT have problems with bulk-capable hardware. | 1176 | * it SHOULD NOT have problems with bulk-capable hardware. |
| 1203 | * so warn about unrcognized controllers, don't panic. | 1177 | * so warn about unrcognized controllers, don't panic. |
