usbutils.c


Log

Author Commit Date CI Message
Con Kolivas 9e287f95 2013-10-14T03:27:57 Merge pull request #499 from someone42/master changes to bitburner driver for bitburner fury boards
Con Kolivas 02a4f8df 2013-10-14T11:44:37 Convert the usb callback function to using cgsem_t timed waits to avoid race conditions with conditionals/mutexes.
Con Kolivas 1d9f90b2 2013-10-14T11:39:15 Revert "Convert the usb callback function to use a cgsem_t using the timedwait code to avoid races with mutexes/conditionals." This reverts commit 433465bcfcd8d9a2270cb27dd0ea933e9fefa829. Not ready yet.
Con Kolivas 433465bc 2013-10-14T11:35:47 Convert the usb callback function to use a cgsem_t using the timedwait code to avoid races with mutexes/conditionals.
Con Kolivas 9ca22ed4 2013-10-14T10:05:49 Use the one LIBUSB_ERROR_TIMEOUT for cancelled transactions since this error is explicitly tested for in various drivers.
Con Kolivas a7580f1f 2013-10-14T09:40:23 Do not use locking on usb callback function pthread signalling to prevent deadlock with libusb's own event lock.
Con Kolivas 280dc4bf 2013-10-14T00:54:05 Lock mutex before second pthread_cond_wait in usbutils to prevent a race.
Con Kolivas 84de52c1 2013-10-13T10:11:46 Use a write lock when performing any USB control transfers to prevent concurrent transfers.
Con Kolivas c0690286 2013-10-12T17:44:28 Free a libusb transfer after we have finished using it to avoid a dereference in usb_control_transfer
Con Kolivas 84f642f5 2013-10-12T15:06:48 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.
Con Kolivas 2ca8d859 2013-10-12T08:45:03 Convert all usb control transfers to asynchronous communication with our own timeout management as well.
Con Kolivas b5379760 2013-10-11T23:06:40 Make pthread conditional timeouts handle all bulk usb transfer timeouts performing libusb_cancel_transfer, disabling timeouts within libusb itself.
Chris Chua b509e843 2013-10-03T20:11:37 using separate identifier for bitburner fury boards
Con Kolivas 03ad59f2 2013-10-11T15:37:55 Add a small amount to the usb timeout before cancelling to allow for a regular usb polling interval to pass.
Con Kolivas 08d8612f 2013-10-11T14:47:01 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.
Con Kolivas 6d18ce4c 2013-10-11T14:37:40 Retry up to USB_RETRY_MAX times to clear a halt condition before failing.
Con Kolivas 3a7a677f 2013-10-11T13:43:16 Show the error number as well as the description in erroring bulk transfers.
Con Kolivas b5dfacef 2013-10-11T10:15:06 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.
Con Kolivas 853aa28f 2013-10-11T08:49:59 Merge branch 'master' into async Conflicts: usbutils.c
Con Kolivas 32bc7461 2013-10-09T22:17:56 Check for presence of driver name in DRIVER_COUNT_FOUND to prevent strcmp on a null pointer when a driver is not built in.
Con Kolivas dc9c3783 2013-10-08T22:05:01 Display errors on failed usb read and write and consider sequential IO errors a permanent failure.
Con Kolivas a22f5bfd 2013-10-07T19:50:38 Use libusb's own error name function instead of hand coding the error names.
Con Kolivas efd8c441 2013-10-07T20:35:42 Check for async transfer variants of error messages.
Con Kolivas 2806f49c 2013-10-07T20:34:13 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 c7d5256b3657bd6d4f2f04f7288cd757bcbf77a5.
Con Kolivas d34279b2 2013-10-08T20:48:26 Remove unused variables.
Con Kolivas f80c9003 2013-10-08T20:46:36 Merge branch 'master' into async Conflicts: api.c cgminer.c miner.h usbutils.c util.c
Con Kolivas ef8efd6c 2013-10-08T00:01:26 Minimise the time between dropping the read devlock and grabbing the write devlock to avoid tons of logging spam in the interim.
Con Kolivas 85e0b3a5 2013-10-07T20:03:53 Check for the async variants of the libusb errors and retry up to retry max when trying to clear a pipe error/stall.
Con Kolivas a79768b7 2013-10-07T19:50:38 Use libusb's own error name function instead of hand coding the error names.
Con Kolivas 74775e4e 2013-10-07T18:40:09 Check for libusb transfer stall error to be consistent with async IO errors returned for a halt condition.
Con Kolivas 38ae7093 2013-10-07T17:56:57 Check for continuous IO errors on USB and consider the device inactive if more than retry max.
Con Kolivas 7318ecee 2013-10-07T23:34:01 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.
ckolivas 6cd7f0f1 2013-10-04T12:00:41 Remove unmaintained broken ztex driver.
Kano 51418f79 2013-10-03T23:19:18 Klondike update code to current git
Con Kolivas 585d4af4 2013-10-07T23:32:01 Store statistics on how often we have to cancel async bulk transfers and add a debug message whenever we do.
Con Kolivas 1d1efbe7 2013-10-03T11:50:45 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.
Con Kolivas a798e14a 2013-10-02T06:53:25 Remove zero packet flag on usb as it's unsupported outside linux and unnecessary.
Con Kolivas 37509564 2013-10-01T17:34:32 Fake the libusb transfer timed out message if we force cancel it with our own async functions.
Con Kolivas a6a94070 2013-10-01T14:40:30 Use asynchronous transfers for all bulk transfers, allowing us to use our own timers and cancelling transfers that take too long.
Con Kolivas 99176584 2013-09-30T21:30:11 Add libusb error warning message when significant error occurs.
ckolivas 052e4348 2013-10-04T12:00:41 Remove unmaintained broken ztex driver.
Kano dc85abd9 2013-10-03T23:19:18 Klondike update code to current git
Con Kolivas 3eece618 2013-09-30T21:50:06 Get statistics on how long usb reads and writes wait on the devlock.
Con Kolivas 14887ba8 2013-09-29T17:44:41 usbinfo.devlock is only ever write locked so convert it to a mutex
Con Kolivas ff90e6ae 2013-09-29T17:44:41 usbinfo.devlock is only ever write locked so convert it to a mutex
Con Kolivas 5e1ebd50 2013-09-29T13:54:16 Deuglify use of _PARSE_COMMANDS macro expansions.
Con Kolivas 303a7631 2013-09-29T13:08:15 Deuglify use of usb parse commands macro in usbutils.
ckolivas 8b341ccd 2013-09-29T02:48:39 Use macro expansion in usb_find_devices to avoid explicitly listing them all.
ckolivas 0952a881 2013-09-29T02:45:45 Use macro expansion to iterate over all the drivers without explicitly writing them out in usbutils.c
ckolivas 39c2e662 2013-09-28T23:12:29 Reattach the kernel driver on linux on usb_uninit.
ckolivas 3ef9fa3b 2013-09-28T23:09:26 Attach the kernel driver on failure to usb init on linux.
ckolivas 00aa8b4e 2013-09-28T23:05:39 libusb kernel driver operations are only available on linux.
ckolivas 372c4095 2013-09-28T12:44:36 Reuse the DRIVER_ macros to avoid having yet another definition for DRV_
ckolivas 2903028e 2013-09-28T11:45:58 Use macro expansion to generate extern device_drv prototypes.
ckolivas 88751974 2013-09-28T10:25:48 Create a macro list of drivers to enable easier addition of further drivers.
Con Kolivas c50b13a6 2013-09-28T01:01:48 Merge branch 'master' of github.com:ckolivas/cgminer into redfury
Con Kolivas 71797050 2013-09-27T22:37:14 There is no point setting the BF1 preferred packet size to the maximum since it will do so automatically.
Kano 9b9dde16 2013-09-27T16:56:25 usbutils - fix USBDEBUG warnings
Con Kolivas 8d133706 2013-09-27T15:04:07 Remove unnecessary steps in communicating with BF1 and just use USB interface 1.
Kano 61c2ac57 2013-09-27T14:57:22 usbutils - usb_bulk_transfer fix the buf/data fix
Con Kolivas 2ba7fbe5 2013-09-27T14:35:35 Merge branch 'master' of github.com:ckolivas/cgminer into redfury
Kano ffea432f 2013-09-27T14:25:57 usb_bulk_transfer - use the allocated buffer
Con Kolivas 2fc5c1d0 2013-09-27T13:47:35 Set preferred packet sizes per interface on BF1.
Con Kolivas 621114c5 2013-09-27T13:08:36 Merge branch 'master' of github.com:ckolivas/cgminer into redfury
Kano d3a3b3a7 2013-09-27T13:07:04 usbutils allow PrefPacketSize per endpoint
Con Kolivas 8e4909f8 2013-09-27T11:00:48 Merge branch 'master' of github.com:ckolivas/cgminer into redfury
Con Kolivas 7deaa91b 2013-09-27T10:36:23 Add information for 2nd USB interface on BF1 devices and choose interface 1 for bulk transfers.
Kano d8518f43 2013-09-27T10:08:59 usbutils - bulk transfer copy test fix
Con Kolivas 8d6126ac 2013-09-27T09:53:04 Merge branch 'master' of github.com:ckolivas/cgminer into redfury
Kano a62267fa 2013-09-27T09:44:58 usbutils - add USBDEBUG for usb_bulk_transfer
Con Kolivas a39a9c27 2013-09-27T08:32:54 Merge branch 'master' into redfury
Kano 36d86534 2013-09-26T20:58:29 usbutils - interfaces must all be on one handle - ep implies the interface
Con Kolivas 435065c8 2013-09-26T07:24:09 Rename BF1 devices BF1
Con Kolivas d6949f3a 2013-09-25T15:31:34 Decrease usb buffering to verbose logging.
Con Kolivas 759e82bb 2013-09-25T15:30:54 Add in first draft for a serialised work model sending/receiving data for BF1 devices.
Con Kolivas 2ab023f3 2013-09-24T21:55:47 Add BF1 detection code to bitfury driver.
Con Kolivas 99c83896 2013-09-24T20:39:59 Add bf1 device information to usbutils to enable device detection.
Con Kolivas 48f5ff37 2013-09-22T22:38:45 Use macro expansion to only need to define usb enums and commands in one place.
Kano 0e8028fc 2013-09-22T19:59:29 usbutils saving incorrect overflow buffer
Kano 95eb9480 2013-09-22T00:12:57 usbtils - interfaces dont work yet in libusb windows so disable for that only
Kano 1910e371 2013-09-19T21:54:15 usbutils - only release the device once - for the first intinfo
Kano 0f0b0f81 2013-09-19T21:41:27 usbutils set_interface is no longer valid
Kano 166147a8 2013-09-19T21:11:40 ubsutils interfaces much each have their own handle
Kano 00c2c336 2013-09-17T21:42:11 usbutils kernel_detach should use the interface number
Kano 24858de6 2013-09-17T19:19:43 usbutils - allow the driver to change which_intinfo
Kano cc5c9981 2013-09-16T12:23:49 usbutils correct/reverse CMR product numbers
Kano 67b9ee44 2013-09-14T16:53:09 usbutils specifically track handles and interfaces
Kano 08483717 2013-09-14T01:18:14 usbutils - allow a device to use multiple interfaces (and better var names)
kanoi 92820549 2013-09-03T23:57:33 Merge pull request #466 from mibe/master Fixed typos
Con Kolivas b1823f27 2013-08-31T23:18:09 Always use a maxpacketsize buffer in usb_bulk_transfer
Con Kolivas fb00f24b 2013-08-31T22:17:53 Use 64 bytes for all libusb control transfers.
Con Kolivas 33ae5ab8 2013-08-31T21:31:32 Use an internal buffer in _usb_transfer_read in case the read is larger than the buffer passed to it.
Kano 612c0b12 2013-08-21T10:02:12 usbutils cps sleep_estimate is not an underestimate
Kano 01855a60 2013-08-21T00:06:05 usbutils add cps stats estimates
Con Kolivas deb7be72 2013-08-20T21:07:38 Use the reentrant cgsleep functions for usecps in usbutils.
Con Kolivas eeac9d81 2013-08-20T19:23:49 Replace all references to the old n*sleep functions with the equivalent cgsleep_*s replacements.
Con Kolivas f7e67010 2013-08-10T01:11:23 Fix uninit variable warnings.
Kano ac08ed1d 2013-08-10T01:05:50 usbutils - force check every combination
Chris Chua b0f4d55b 2013-07-29T21:39:29 changes to Avalon driver for BitBurner boards
Michael Bemmerl 1c7ef61c 2013-07-21T23:34:48 Fixed typos