diff options
author | Thomas Pugliese <thomas.pugliese@gmail.com> | 2013-12-09 14:19:08 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-12-09 16:28:48 -0500 |
commit | 7b3e3740f2d0faca9351db88974be534009a3d8d (patch) | |
tree | 0ffed75bf0500ef176681a3af0999bd15747d126 /drivers/usb | |
parent | 83e83ecb79a8225e79bc8e54e9aff3e0e27658a2 (diff) |
usb: wusbcore: use USB_CTRL_SET_TIMEOUT and USB_CTRL_GET_TIMEOUT
Use USB_CTRL_SET_TIMEOUT and USB_CTRL_GET_TIMEOUT for USB control
messages instead of an arbitrary 1s timeout value. This is particularly
useful for WUSB since in the worst case RF scanario, a WUSB device can
be unresponsive for up to 4s and still be connected.
Signed-off-by: Thomas Pugliese <thomas.pugliese@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/host/hwa-hc.c | 20 | ||||
-rw-r--r-- | drivers/usb/wusbcore/cbaf.c | 8 | ||||
-rw-r--r-- | drivers/usb/wusbcore/security.c | 22 | ||||
-rw-r--r-- | drivers/usb/wusbcore/wa-hc.h | 5 | ||||
-rw-r--r-- | drivers/usb/wusbcore/wa-rpipe.c | 10 |
5 files changed, 33 insertions, 32 deletions
diff --git a/drivers/usb/host/hwa-hc.c b/drivers/usb/host/hwa-hc.c index 7fd3f9bd7b83..f0b97bb08791 100644 --- a/drivers/usb/host/hwa-hc.c +++ b/drivers/usb/host/hwa-hc.c | |||
@@ -86,7 +86,7 @@ static int __hwahc_set_cluster_id(struct hwahc *hwahc, u8 cluster_id) | |||
86 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 86 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
87 | cluster_id, | 87 | cluster_id, |
88 | wa->usb_iface->cur_altsetting->desc.bInterfaceNumber, | 88 | wa->usb_iface->cur_altsetting->desc.bInterfaceNumber, |
89 | NULL, 0, 1000 /* FIXME: arbitrary */); | 89 | NULL, 0, USB_CTRL_SET_TIMEOUT); |
90 | if (result < 0) | 90 | if (result < 0) |
91 | dev_err(dev, "Cannot set WUSB Cluster ID to 0x%02x: %d\n", | 91 | dev_err(dev, "Cannot set WUSB Cluster ID to 0x%02x: %d\n", |
92 | cluster_id, result); | 92 | cluster_id, result); |
@@ -106,7 +106,7 @@ static int __hwahc_op_set_num_dnts(struct wusbhc *wusbhc, u8 interval, u8 slots) | |||
106 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 106 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
107 | interval << 8 | slots, | 107 | interval << 8 | slots, |
108 | wa->usb_iface->cur_altsetting->desc.bInterfaceNumber, | 108 | wa->usb_iface->cur_altsetting->desc.bInterfaceNumber, |
109 | NULL, 0, 1000 /* FIXME: arbitrary */); | 109 | NULL, 0, USB_CTRL_SET_TIMEOUT); |
110 | } | 110 | } |
111 | 111 | ||
112 | /* | 112 | /* |
@@ -281,7 +281,7 @@ static void __hwahc_op_wusbhc_stop(struct wusbhc *wusbhc, int delay) | |||
281 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 281 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
282 | delay * 1000, | 282 | delay * 1000, |
283 | iface_no, | 283 | iface_no, |
284 | NULL, 0, 1000 /* FIXME: arbitrary */); | 284 | NULL, 0, USB_CTRL_SET_TIMEOUT); |
285 | if (ret == 0) | 285 | if (ret == 0) |
286 | msleep(delay); | 286 | msleep(delay); |
287 | 287 | ||
@@ -310,7 +310,7 @@ static int __hwahc_op_bwa_set(struct wusbhc *wusbhc, s8 stream_index, | |||
310 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 310 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
311 | stream_index, | 311 | stream_index, |
312 | wa->usb_iface->cur_altsetting->desc.bInterfaceNumber, | 312 | wa->usb_iface->cur_altsetting->desc.bInterfaceNumber, |
313 | NULL, 0, 1000 /* FIXME: arbitrary */); | 313 | NULL, 0, USB_CTRL_SET_TIMEOUT); |
314 | if (result < 0) { | 314 | if (result < 0) { |
315 | dev_err(dev, "Cannot set WUSB stream index: %d\n", result); | 315 | dev_err(dev, "Cannot set WUSB stream index: %d\n", result); |
316 | goto out; | 316 | goto out; |
@@ -321,7 +321,7 @@ static int __hwahc_op_bwa_set(struct wusbhc *wusbhc, s8 stream_index, | |||
321 | WUSB_REQ_SET_WUSB_MAS, | 321 | WUSB_REQ_SET_WUSB_MAS, |
322 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 322 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
323 | 0, wa->usb_iface->cur_altsetting->desc.bInterfaceNumber, | 323 | 0, wa->usb_iface->cur_altsetting->desc.bInterfaceNumber, |
324 | mas_le, 32, 1000 /* FIXME: arbitrary */); | 324 | mas_le, 32, USB_CTRL_SET_TIMEOUT); |
325 | if (result < 0) | 325 | if (result < 0) |
326 | dev_err(dev, "Cannot set WUSB MAS allocation: %d\n", result); | 326 | dev_err(dev, "Cannot set WUSB MAS allocation: %d\n", result); |
327 | out: | 327 | out: |
@@ -355,7 +355,7 @@ static int __hwahc_op_mmcie_add(struct wusbhc *wusbhc, u8 interval, | |||
355 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 355 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
356 | interval << 8 | repeat_cnt, | 356 | interval << 8 | repeat_cnt, |
357 | handle << 8 | iface_no, | 357 | handle << 8 | iface_no, |
358 | wuie, wuie->bLength, 1000 /* FIXME: arbitrary */); | 358 | wuie, wuie->bLength, USB_CTRL_SET_TIMEOUT); |
359 | } | 359 | } |
360 | 360 | ||
361 | /* | 361 | /* |
@@ -372,7 +372,7 @@ static int __hwahc_op_mmcie_rm(struct wusbhc *wusbhc, u8 handle) | |||
372 | WUSB_REQ_REMOVE_MMC_IE, | 372 | WUSB_REQ_REMOVE_MMC_IE, |
373 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 373 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
374 | 0, handle << 8 | iface_no, | 374 | 0, handle << 8 | iface_no, |
375 | NULL, 0, 1000 /* FIXME: arbitrary */); | 375 | NULL, 0, USB_CTRL_SET_TIMEOUT); |
376 | } | 376 | } |
377 | 377 | ||
378 | /* | 378 | /* |
@@ -415,7 +415,7 @@ static int __hwahc_op_dev_info_set(struct wusbhc *wusbhc, | |||
415 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 415 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
416 | 0, wusb_dev->port_idx << 8 | iface_no, | 416 | 0, wusb_dev->port_idx << 8 | iface_no, |
417 | dev_info, sizeof(struct hwa_dev_info), | 417 | dev_info, sizeof(struct hwa_dev_info), |
418 | 1000 /* FIXME: arbitrary */); | 418 | USB_CTRL_SET_TIMEOUT); |
419 | kfree(dev_info); | 419 | kfree(dev_info); |
420 | return ret; | 420 | return ret; |
421 | } | 421 | } |
@@ -455,7 +455,7 @@ static int __hwahc_dev_set_key(struct wusbhc *wusbhc, u8 port_idx, u32 tkid, | |||
455 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 455 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
456 | USB_DT_KEY << 8 | key_idx, | 456 | USB_DT_KEY << 8 | key_idx, |
457 | port_idx << 8 | iface_no, | 457 | port_idx << 8 | iface_no, |
458 | keyd, keyd_len, 1000 /* FIXME: arbitrary */); | 458 | keyd, keyd_len, USB_CTRL_SET_TIMEOUT); |
459 | 459 | ||
460 | kzfree(keyd); /* clear keys etc. */ | 460 | kzfree(keyd); /* clear keys etc. */ |
461 | return result; | 461 | return result; |
@@ -497,7 +497,7 @@ static int __hwahc_op_set_ptk(struct wusbhc *wusbhc, u8 port_idx, u32 tkid, | |||
497 | USB_REQ_SET_ENCRYPTION, | 497 | USB_REQ_SET_ENCRYPTION, |
498 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 498 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
499 | encryption_value, port_idx << 8 | iface_no, | 499 | encryption_value, port_idx << 8 | iface_no, |
500 | NULL, 0, 1000 /* FIXME: arbitrary */); | 500 | NULL, 0, USB_CTRL_SET_TIMEOUT); |
501 | if (result < 0) | 501 | if (result < 0) |
502 | dev_err(wusbhc->dev, "Can't set host's WUSB encryption for " | 502 | dev_err(wusbhc->dev, "Can't set host's WUSB encryption for " |
503 | "port index %u to %s (value %d): %d\n", port_idx, | 503 | "port index %u to %s (value %d): %d\n", port_idx, |
diff --git a/drivers/usb/wusbcore/cbaf.c b/drivers/usb/wusbcore/cbaf.c index f06ed82e63d1..56310fc9b9c3 100644 --- a/drivers/usb/wusbcore/cbaf.c +++ b/drivers/usb/wusbcore/cbaf.c | |||
@@ -144,7 +144,7 @@ static int cbaf_check(struct cbaf *cbaf) | |||
144 | CBAF_REQ_GET_ASSOCIATION_INFORMATION, | 144 | CBAF_REQ_GET_ASSOCIATION_INFORMATION, |
145 | USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 145 | USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
146 | 0, cbaf->usb_iface->cur_altsetting->desc.bInterfaceNumber, | 146 | 0, cbaf->usb_iface->cur_altsetting->desc.bInterfaceNumber, |
147 | cbaf->buffer, cbaf->buffer_size, 1000 /* FIXME: arbitrary */); | 147 | cbaf->buffer, cbaf->buffer_size, USB_CTRL_GET_TIMEOUT); |
148 | if (result < 0) { | 148 | if (result < 0) { |
149 | dev_err(dev, "Cannot get available association types: %d\n", | 149 | dev_err(dev, "Cannot get available association types: %d\n", |
150 | result); | 150 | result); |
@@ -265,7 +265,7 @@ static int cbaf_send_host_info(struct cbaf *cbaf) | |||
265 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 265 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
266 | 0x0101, | 266 | 0x0101, |
267 | cbaf->usb_iface->cur_altsetting->desc.bInterfaceNumber, | 267 | cbaf->usb_iface->cur_altsetting->desc.bInterfaceNumber, |
268 | hi, hi_size, 1000 /* FIXME: arbitrary */); | 268 | hi, hi_size, USB_CTRL_SET_TIMEOUT); |
269 | } | 269 | } |
270 | 270 | ||
271 | /* | 271 | /* |
@@ -288,7 +288,7 @@ static int cbaf_cdid_get(struct cbaf *cbaf) | |||
288 | CBAF_REQ_GET_ASSOCIATION_REQUEST, | 288 | CBAF_REQ_GET_ASSOCIATION_REQUEST, |
289 | USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 289 | USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
290 | 0x0200, cbaf->usb_iface->cur_altsetting->desc.bInterfaceNumber, | 290 | 0x0200, cbaf->usb_iface->cur_altsetting->desc.bInterfaceNumber, |
291 | di, cbaf->buffer_size, 1000 /* FIXME: arbitrary */); | 291 | di, cbaf->buffer_size, USB_CTRL_GET_TIMEOUT); |
292 | if (result < 0) { | 292 | if (result < 0) { |
293 | dev_err(dev, "Cannot request device information: %d\n", result); | 293 | dev_err(dev, "Cannot request device information: %d\n", result); |
294 | return result; | 294 | return result; |
@@ -536,7 +536,7 @@ static int cbaf_cc_upload(struct cbaf *cbaf) | |||
536 | CBAF_REQ_SET_ASSOCIATION_RESPONSE, | 536 | CBAF_REQ_SET_ASSOCIATION_RESPONSE, |
537 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 537 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
538 | 0x0201, cbaf->usb_iface->cur_altsetting->desc.bInterfaceNumber, | 538 | 0x0201, cbaf->usb_iface->cur_altsetting->desc.bInterfaceNumber, |
539 | ccd, sizeof(*ccd), 1000 /* FIXME: arbitrary */); | 539 | ccd, sizeof(*ccd), USB_CTRL_SET_TIMEOUT); |
540 | 540 | ||
541 | return result; | 541 | return result; |
542 | } | 542 | } |
diff --git a/drivers/usb/wusbcore/security.c b/drivers/usb/wusbcore/security.c index dd88441c8f78..66655e8f2308 100644 --- a/drivers/usb/wusbcore/security.c +++ b/drivers/usb/wusbcore/security.c | |||
@@ -168,7 +168,7 @@ static int wusb_dev_set_encryption(struct usb_device *usb_dev, int value) | |||
168 | result = usb_control_msg(usb_dev, usb_sndctrlpipe(usb_dev, 0), | 168 | result = usb_control_msg(usb_dev, usb_sndctrlpipe(usb_dev, 0), |
169 | USB_REQ_SET_ENCRYPTION, | 169 | USB_REQ_SET_ENCRYPTION, |
170 | USB_DIR_OUT | USB_TYPE_STANDARD | USB_RECIP_DEVICE, | 170 | USB_DIR_OUT | USB_TYPE_STANDARD | USB_RECIP_DEVICE, |
171 | value, 0, NULL, 0, 1000 /* FIXME: arbitrary */); | 171 | value, 0, NULL, 0, USB_CTRL_SET_TIMEOUT); |
172 | if (result < 0) | 172 | if (result < 0) |
173 | dev_err(dev, "Can't set device's WUSB encryption to " | 173 | dev_err(dev, "Can't set device's WUSB encryption to " |
174 | "%s (value %d): %d\n", | 174 | "%s (value %d): %d\n", |
@@ -192,7 +192,7 @@ static int wusb_dev_set_gtk(struct wusbhc *wusbhc, struct wusb_dev *wusb_dev) | |||
192 | USB_DIR_OUT | USB_TYPE_STANDARD | USB_RECIP_DEVICE, | 192 | USB_DIR_OUT | USB_TYPE_STANDARD | USB_RECIP_DEVICE, |
193 | USB_DT_KEY << 8 | wusbhc->gtk_index, 0, | 193 | USB_DT_KEY << 8 | wusbhc->gtk_index, 0, |
194 | &wusbhc->gtk.descr, wusbhc->gtk.descr.bLength, | 194 | &wusbhc->gtk.descr, wusbhc->gtk.descr.bLength, |
195 | 1000); | 195 | USB_CTRL_SET_TIMEOUT); |
196 | } | 196 | } |
197 | 197 | ||
198 | 198 | ||
@@ -302,8 +302,9 @@ int wusb_dev_update_address(struct wusbhc *wusbhc, struct wusb_dev *wusb_dev) | |||
302 | 302 | ||
303 | /* Set address 0 */ | 303 | /* Set address 0 */ |
304 | result = usb_control_msg(usb_dev, usb_sndctrlpipe(usb_dev, 0), | 304 | result = usb_control_msg(usb_dev, usb_sndctrlpipe(usb_dev, 0), |
305 | USB_REQ_SET_ADDRESS, 0, | 305 | USB_REQ_SET_ADDRESS, |
306 | 0, 0, NULL, 0, 1000 /* FIXME: arbitrary */); | 306 | USB_DIR_OUT | USB_TYPE_STANDARD | USB_RECIP_DEVICE, |
307 | 0, 0, NULL, 0, USB_CTRL_SET_TIMEOUT); | ||
307 | if (result < 0) { | 308 | if (result < 0) { |
308 | dev_err(dev, "auth failed: can't set address 0: %d\n", | 309 | dev_err(dev, "auth failed: can't set address 0: %d\n", |
309 | result); | 310 | result); |
@@ -317,9 +318,10 @@ int wusb_dev_update_address(struct wusbhc *wusbhc, struct wusb_dev *wusb_dev) | |||
317 | 318 | ||
318 | /* Set new (authenticated) address. */ | 319 | /* Set new (authenticated) address. */ |
319 | result = usb_control_msg(usb_dev, usb_sndctrlpipe(usb_dev, 0), | 320 | result = usb_control_msg(usb_dev, usb_sndctrlpipe(usb_dev, 0), |
320 | USB_REQ_SET_ADDRESS, 0, | 321 | USB_REQ_SET_ADDRESS, |
321 | new_address, 0, NULL, 0, | 322 | USB_DIR_OUT | USB_TYPE_STANDARD | USB_RECIP_DEVICE, |
322 | 1000 /* FIXME: arbitrary */); | 323 | new_address, 0, NULL, 0, |
324 | USB_CTRL_SET_TIMEOUT); | ||
323 | if (result < 0) { | 325 | if (result < 0) { |
324 | dev_err(dev, "auth failed: can't set address %u: %d\n", | 326 | dev_err(dev, "auth failed: can't set address %u: %d\n", |
325 | new_address, result); | 327 | new_address, result); |
@@ -382,7 +384,7 @@ int wusb_dev_4way_handshake(struct wusbhc *wusbhc, struct wusb_dev *wusb_dev, | |||
382 | usb_dev, usb_sndctrlpipe(usb_dev, 0), | 384 | usb_dev, usb_sndctrlpipe(usb_dev, 0), |
383 | USB_REQ_SET_HANDSHAKE, | 385 | USB_REQ_SET_HANDSHAKE, |
384 | USB_DIR_OUT | USB_TYPE_STANDARD | USB_RECIP_DEVICE, | 386 | USB_DIR_OUT | USB_TYPE_STANDARD | USB_RECIP_DEVICE, |
385 | 1, 0, &hs[0], sizeof(hs[0]), 1000 /* FIXME: arbitrary */); | 387 | 1, 0, &hs[0], sizeof(hs[0]), USB_CTRL_SET_TIMEOUT); |
386 | if (result < 0) { | 388 | if (result < 0) { |
387 | dev_err(dev, "Handshake1: request failed: %d\n", result); | 389 | dev_err(dev, "Handshake1: request failed: %d\n", result); |
388 | goto error_hs1; | 390 | goto error_hs1; |
@@ -393,7 +395,7 @@ int wusb_dev_4way_handshake(struct wusbhc *wusbhc, struct wusb_dev *wusb_dev, | |||
393 | usb_dev, usb_rcvctrlpipe(usb_dev, 0), | 395 | usb_dev, usb_rcvctrlpipe(usb_dev, 0), |
394 | USB_REQ_GET_HANDSHAKE, | 396 | USB_REQ_GET_HANDSHAKE, |
395 | USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_DEVICE, | 397 | USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_DEVICE, |
396 | 2, 0, &hs[1], sizeof(hs[1]), 1000 /* FIXME: arbitrary */); | 398 | 2, 0, &hs[1], sizeof(hs[1]), USB_CTRL_GET_TIMEOUT); |
397 | if (result < 0) { | 399 | if (result < 0) { |
398 | dev_err(dev, "Handshake2: request failed: %d\n", result); | 400 | dev_err(dev, "Handshake2: request failed: %d\n", result); |
399 | goto error_hs2; | 401 | goto error_hs2; |
@@ -470,7 +472,7 @@ int wusb_dev_4way_handshake(struct wusbhc *wusbhc, struct wusb_dev *wusb_dev, | |||
470 | usb_dev, usb_sndctrlpipe(usb_dev, 0), | 472 | usb_dev, usb_sndctrlpipe(usb_dev, 0), |
471 | USB_REQ_SET_HANDSHAKE, | 473 | USB_REQ_SET_HANDSHAKE, |
472 | USB_DIR_OUT | USB_TYPE_STANDARD | USB_RECIP_DEVICE, | 474 | USB_DIR_OUT | USB_TYPE_STANDARD | USB_RECIP_DEVICE, |
473 | 3, 0, &hs[2], sizeof(hs[2]), 1000 /* FIXME: arbitrary */); | 475 | 3, 0, &hs[2], sizeof(hs[2]), USB_CTRL_SET_TIMEOUT); |
474 | if (result < 0) { | 476 | if (result < 0) { |
475 | dev_err(dev, "Handshake3: request failed: %d\n", result); | 477 | dev_err(dev, "Handshake3: request failed: %d\n", result); |
476 | goto error_hs3; | 478 | goto error_hs3; |
diff --git a/drivers/usb/wusbcore/wa-hc.h b/drivers/usb/wusbcore/wa-hc.h index 5b6ae3a4a755..b93d2cbdf33f 100644 --- a/drivers/usb/wusbcore/wa-hc.h +++ b/drivers/usb/wusbcore/wa-hc.h | |||
@@ -366,7 +366,7 @@ static inline int __wa_feature(struct wahc *wa, unsigned op, u16 feature) | |||
366 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 366 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
367 | feature, | 367 | feature, |
368 | wa->usb_iface->cur_altsetting->desc.bInterfaceNumber, | 368 | wa->usb_iface->cur_altsetting->desc.bInterfaceNumber, |
369 | NULL, 0, 1000 /* FIXME: arbitrary */); | 369 | NULL, 0, USB_CTRL_SET_TIMEOUT); |
370 | } | 370 | } |
371 | 371 | ||
372 | 372 | ||
@@ -400,8 +400,7 @@ s32 __wa_get_status(struct wahc *wa) | |||
400 | USB_REQ_GET_STATUS, | 400 | USB_REQ_GET_STATUS, |
401 | USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 401 | USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
402 | 0, wa->usb_iface->cur_altsetting->desc.bInterfaceNumber, | 402 | 0, wa->usb_iface->cur_altsetting->desc.bInterfaceNumber, |
403 | &wa->status, sizeof(wa->status), | 403 | &wa->status, sizeof(wa->status), USB_CTRL_GET_TIMEOUT); |
404 | 1000 /* FIXME: arbitrary */); | ||
405 | if (result >= 0) | 404 | if (result >= 0) |
406 | result = wa->status; | 405 | result = wa->status; |
407 | return result; | 406 | return result; |
diff --git a/drivers/usb/wusbcore/wa-rpipe.c b/drivers/usb/wusbcore/wa-rpipe.c index b48e74cc54d7..accdd15f5393 100644 --- a/drivers/usb/wusbcore/wa-rpipe.c +++ b/drivers/usb/wusbcore/wa-rpipe.c | |||
@@ -80,7 +80,7 @@ static int __rpipe_get_descr(struct wahc *wa, | |||
80 | USB_REQ_GET_DESCRIPTOR, | 80 | USB_REQ_GET_DESCRIPTOR, |
81 | USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_RPIPE, | 81 | USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_RPIPE, |
82 | USB_DT_RPIPE<<8, index, descr, sizeof(*descr), | 82 | USB_DT_RPIPE<<8, index, descr, sizeof(*descr), |
83 | 1000 /* FIXME: arbitrary */); | 83 | USB_CTRL_GET_TIMEOUT); |
84 | if (result < 0) { | 84 | if (result < 0) { |
85 | dev_err(dev, "rpipe %u: get descriptor failed: %d\n", | 85 | dev_err(dev, "rpipe %u: get descriptor failed: %d\n", |
86 | index, (int)result); | 86 | index, (int)result); |
@@ -118,7 +118,7 @@ static int __rpipe_set_descr(struct wahc *wa, | |||
118 | USB_REQ_SET_DESCRIPTOR, | 118 | USB_REQ_SET_DESCRIPTOR, |
119 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_RPIPE, | 119 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_RPIPE, |
120 | USB_DT_RPIPE<<8, index, descr, sizeof(*descr), | 120 | USB_DT_RPIPE<<8, index, descr, sizeof(*descr), |
121 | HZ / 10); | 121 | USB_CTRL_SET_TIMEOUT); |
122 | if (result < 0) { | 122 | if (result < 0) { |
123 | dev_err(dev, "rpipe %u: set descriptor failed: %d\n", | 123 | dev_err(dev, "rpipe %u: set descriptor failed: %d\n", |
124 | index, (int)result); | 124 | index, (int)result); |
@@ -237,7 +237,7 @@ static int __rpipe_reset(struct wahc *wa, unsigned index) | |||
237 | wa->usb_dev, usb_sndctrlpipe(wa->usb_dev, 0), | 237 | wa->usb_dev, usb_sndctrlpipe(wa->usb_dev, 0), |
238 | USB_REQ_RPIPE_RESET, | 238 | USB_REQ_RPIPE_RESET, |
239 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_RPIPE, | 239 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_RPIPE, |
240 | 0, index, NULL, 0, 1000 /* FIXME: arbitrary */); | 240 | 0, index, NULL, 0, USB_CTRL_SET_TIMEOUT); |
241 | if (result < 0) | 241 | if (result < 0) |
242 | dev_err(dev, "rpipe %u: reset failed: %d\n", | 242 | dev_err(dev, "rpipe %u: reset failed: %d\n", |
243 | index, result); | 243 | index, result); |
@@ -527,7 +527,7 @@ void rpipe_ep_disable(struct wahc *wa, struct usb_host_endpoint *ep) | |||
527 | wa->usb_dev, usb_rcvctrlpipe(wa->usb_dev, 0), | 527 | wa->usb_dev, usb_rcvctrlpipe(wa->usb_dev, 0), |
528 | USB_REQ_RPIPE_ABORT, | 528 | USB_REQ_RPIPE_ABORT, |
529 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_RPIPE, | 529 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_RPIPE, |
530 | 0, index, NULL, 0, 1000 /* FIXME: arbitrary */); | 530 | 0, index, NULL, 0, USB_CTRL_SET_TIMEOUT); |
531 | rpipe_put(rpipe); | 531 | rpipe_put(rpipe); |
532 | } | 532 | } |
533 | mutex_unlock(&wa->rpipe_mutex); | 533 | mutex_unlock(&wa->rpipe_mutex); |
@@ -548,7 +548,7 @@ void rpipe_clear_feature_stalled(struct wahc *wa, struct usb_host_endpoint *ep) | |||
548 | wa->usb_dev, usb_rcvctrlpipe(wa->usb_dev, 0), | 548 | wa->usb_dev, usb_rcvctrlpipe(wa->usb_dev, 0), |
549 | USB_REQ_CLEAR_FEATURE, | 549 | USB_REQ_CLEAR_FEATURE, |
550 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_RPIPE, | 550 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_RPIPE, |
551 | RPIPE_STALL, index, NULL, 0, 1000); | 551 | RPIPE_STALL, index, NULL, 0, USB_CTRL_SET_TIMEOUT); |
552 | } | 552 | } |
553 | mutex_unlock(&wa->rpipe_mutex); | 553 | mutex_unlock(&wa->rpipe_mutex); |
554 | } | 554 | } |