267 Commits (a7580f1ff24b119f5795d2a307254c40ab721aa9)

Author SHA1 Message Date
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 280dc4bf01 Lock mutex before second pthread_cond_wait in usbutils to prevent a race. 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." 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
ckolivas 372c40956a Reuse the DRIVER_ macros to avoid having yet another definition for DRV_ 11 years ago
ckolivas 2903028e6b Use macro expansion to generate extern device_drv prototypes. 11 years ago
ckolivas 8875197466 Create a macro list of drivers to enable easier addition of further drivers. 11 years ago
Con Kolivas 71797050f2 There is no point setting the BF1 preferred packet size to the maximum since it will do so automatically. 11 years ago
Kano 9b9dde1667 usbutils - fix USBDEBUG warnings 11 years ago
Con Kolivas 8d133706c9 Remove unnecessary steps in communicating with BF1 and just use USB interface 1. 11 years ago