Con Kolivas
|
02a4f8df9c
|
Convert the usb callback function to using cgsem_t timed waits to avoid race conditions with conditionals/mutexes.
|
11 years ago |
Con Kolivas
|
1d9f90b256
|
Revert "Convert the usb callback function to use a cgsem_t using the timedwait code to avoid races with mutexes/conditionals."
This reverts commit 433465bcfc .
Not ready yet.
|
11 years ago |
Con Kolivas
|
433465bcfc
|
Convert the usb callback function to use a cgsem_t using the timedwait code to avoid races with mutexes/conditionals.
|
11 years ago |
Con Kolivas
|
9ca22ed493
|
Use the one LIBUSB_ERROR_TIMEOUT for cancelled transactions since this error is explicitly tested for in various drivers.
|
11 years ago |
Con Kolivas
|
a7580f1ff2
|
Do not use locking on usb callback function pthread signalling to prevent deadlock with libusb's own event lock.
|
11 years ago |
Con Kolivas
|
8d1604a2e3
|
Do not use locking on usb callback function pthread signalling to prevent deadlock with libusb's own event lock.
|
11 years ago |
Con Kolivas
|
280dc4bf01
|
Lock mutex before second pthread_cond_wait in usbutils to prevent a race.
|
11 years ago |
Con Kolivas
|
176cae2700
|
Add basic definitions for hashfast device recognition.
|
11 years ago |
Con Kolivas
|
84de52c1c6
|
Use a write lock when performing any USB control transfers to prevent concurrent transfers.
|
11 years ago |
Con Kolivas
|
c069028648
|
Free a libusb transfer after we have finished using it to avoid a dereference in usb_control_transfer
|
11 years ago |
Con Kolivas
|
84f642f563
|
Although async transfers are meant to use heap memory, we never return before the transfer function has completed so stack memory will suffice for control transfers, fixing a memory leak in the process.
|
11 years ago |
Con Kolivas
|
2ca8d85906
|
Convert all usb control transfers to asynchronous communication with our own timeout management as well.
|
11 years ago |
Con Kolivas
|
b537976036
|
Make pthread conditional timeouts handle all bulk usb transfer timeouts performing libusb_cancel_transfer, disabling timeouts within libusb itself.
|
11 years ago |
Con Kolivas
|
03ad59f287
|
Add a small amount to the usb timeout before cancelling to allow for a regular usb polling interval to pass.
|
11 years ago |
Con Kolivas
|
08d8612f68
|
Do not attempt to clear a usb halt before sending the cancel message since all transfers should normally be cancelled before attempting to clear a halt condition, and only change the return message to a timeout if it's consistent with a cancellation.
|
11 years ago |
Con Kolivas
|
6d18ce4caa
|
Retry up to USB_RETRY_MAX times to clear a halt condition before failing.
|
11 years ago |
Con Kolivas
|
3a7a677f45
|
Show the error number as well as the description in erroring bulk transfers.
|
11 years ago |
Con Kolivas
|
b5dfacef24
|
We are always dependent on libusb handling events so use the blocking libusb_handle_events in the polling thread and use a bool to know if we should continue polling.
|
11 years ago |
Con Kolivas
|
32bc746178
|
Check for presence of driver name in DRIVER_COUNT_FOUND to prevent strcmp on a null pointer when a driver is not built in.
|
11 years ago |
Con Kolivas
|
dc9c3783ec
|
Display errors on failed usb read and write and consider sequential IO errors a permanent failure.
|
11 years ago |
Con Kolivas
|
a22f5bfddd
|
Use libusb's own error name function instead of hand coding the error names.
|
11 years ago |
Con Kolivas
|
efd8c44182
|
Check for async transfer variants of error messages.
|
11 years ago |
Con Kolivas
|
2806f49c01
|
Revert "Check for the async variants of the libusb errors and retry up to retry max when trying to clear a pipe error/stall."
This reverts commit c7d5256b36 .
|
11 years ago |
Con Kolivas
|
d34279b226
|
Remove unused variables.
|
11 years ago |
Con Kolivas
|
ef8efd6c48
|
Minimise the time between dropping the read devlock and grabbing the write devlock to avoid tons of logging spam in the interim.
|
11 years ago |
Con Kolivas
|
85e0b3a50f
|
Check for the async variants of the libusb errors and retry up to retry max when trying to clear a pipe error/stall.
|
11 years ago |
Con Kolivas
|
a79768b74d
|
Use libusb's own error name function instead of hand coding the error names.
|
11 years ago |
Con Kolivas
|
74775e4e72
|
Check for libusb transfer stall error to be consistent with async IO errors returned for a halt condition.
|
11 years ago |
Con Kolivas
|
38ae7093d2
|
Check for continuous IO errors on USB and consider the device inactive if more than retry max.
|
11 years ago |
Con Kolivas
|
7318eceef9
|
Make the devlock a cglock in usbutils and only grab the write lock for fundamental changes allowing us to send and receive transfers concurrently without lock contention.
|
11 years ago |
ckolivas
|
6cd7f0f1be
|
Remove unmaintained broken ztex driver.
|
11 years ago |
Kano
|
51418f79e5
|
Klondike update code to current git
|
11 years ago |
Con Kolivas
|
585d4af4e6
|
Store statistics on how often we have to cancel async bulk transfers and add a debug message whenever we do.
|
11 years ago |
Con Kolivas
|
1d1efbe7f8
|
Treat any unexpected timeouts waiting for async transfers as though there may be a usb halt condition and attempt to clear the halt before cancelling the tranfer.
|
11 years ago |
Con Kolivas
|
a798e14a12
|
Remove zero packet flag on usb as it's unsupported outside linux and unnecessary.
|
11 years ago |
Con Kolivas
|
375095645e
|
Fake the libusb transfer timed out message if we force cancel it with our own async functions.
|
11 years ago |
Con Kolivas
|
a6a9407067
|
Use asynchronous transfers for all bulk transfers, allowing us to use our own timers and cancelling transfers that take too long.
|
11 years ago |
Con Kolivas
|
991765845b
|
Add libusb error warning message when significant error occurs.
|
11 years ago |
ckolivas
|
052e434846
|
Remove unmaintained broken ztex driver.
|
11 years ago |
Kano
|
dc85abd9cd
|
Klondike update code to current git
|
11 years ago |
Con Kolivas
|
3eece61819
|
Get statistics on how long usb reads and writes wait on the devlock.
|
11 years ago |
Con Kolivas
|
14887ba852
|
usbinfo.devlock is only ever write locked so convert it to a mutex
|
11 years ago |
Con Kolivas
|
ff90e6ae83
|
usbinfo.devlock is only ever write locked so convert it to a mutex
|
11 years ago |
Con Kolivas
|
5e1ebd5070
|
Deuglify use of _PARSE_COMMANDS macro expansions.
|
11 years ago |
Con Kolivas
|
303a763162
|
Deuglify use of usb parse commands macro in usbutils.
|
11 years ago |
ckolivas
|
8b341ccd60
|
Use macro expansion in usb_find_devices to avoid explicitly listing them all.
|
11 years ago |
ckolivas
|
0952a8812f
|
Use macro expansion to iterate over all the drivers without explicitly writing them out in usbutils.c
|
11 years ago |
ckolivas
|
39c2e662a7
|
Reattach the kernel driver on linux on usb_uninit.
|
11 years ago |
ckolivas
|
3ef9fa3b88
|
Attach the kernel driver on failure to usb init on linux.
|
11 years ago |
ckolivas
|
00aa8b4ecf
|
libusb kernel driver operations are only available on linux.
|
11 years ago |