usbutils.c


Log

Author Commit Date CI Message
Con Kolivas 0657b64e 2013-10-25T13:36:21 Only set libusb cancellable status if the transfer succeeds.
Con Kolivas 0da551fa 2013-10-25T12:30:39 Use a linked list for all usb transfers instead of just cancellable ones.
Con Kolivas 7b5884ca 2013-10-25T08:43:55 Add cancellable transfers correctly to the ct_list
Con Kolivas 9d8e3df0 2013-10-25T04:07:09 Add usb transfer cancellation on shutdown and documentation regarding where cancellable transfers are suitable.
Con Kolivas d2feacdf 2013-10-24T22:26:13 Cancel cancellable usb transfers on work restart messages.
Con Kolivas 51660838 2013-10-24T21:58:25 Don't bother having a separate cancellable transfer struct for usb transfers, simply include the list in the usb_transfer struct.
Con Kolivas c96f0965 2013-10-24T21:54:35 Add wrappers for usb_read_cancellable and usb_read_timeout_cancellable
Con Kolivas c2c69877 2013-10-24T21:52:50 Specifically set the cancellable state for it to not be uninitialised in the usb transfer struct.
Con Kolivas b52bb5c9 2013-10-24T21:50:52 Alter the usb cancellable list only under cgusb_fd_lock write lock.
Con Kolivas 19ec360f 2013-10-24T21:45:41 Pass the cancellable option to _usb_read options to decide on whether to add usb transfers to the list of cancellable transfers.
Con Kolivas 2b075ccc 2013-10-24T21:42:04 Create a linked list of potentially cancellable usb transfers.
Con Kolivas 824aa5cb 2013-10-24T20:36:53 Keep a global counter of how many async usb transfers are in place.
Con Kolivas 856471e3 2013-10-24T20:32:17 Perform libusb_submit_transfer under the write variant of cgusb_fd_lock
Con Kolivas 269a145a 2013-10-23T10:45:22 Add usb command name to critical libusb error reporting.
Con Kolivas 44cc52c3 2013-10-21T12:18:42 Drop usb buffering message to debug logging level.
Con Kolivas eed0afcd 2013-10-19T13:29:59 Convert libusb transfer errors to regular libusb error messages to allow for accurate message reporting.
Con Kolivas d77f3672 2013-10-18T23:42:02 Fixing the memory leak for remaining semaphores means we can go back to using async transfers on other OSes with our own timeout management again.
Con Kolivas 8e9f32a8 2013-10-18T23:30:05 Add a forcelog variant of applog which invalidates any console lock to force output.
Con Kolivas 789d448e 2013-10-18T07:05:35 Perform sync transfers on shutdown to allow final transfers to complete.
Con Kolivas ad8d9497 2013-10-18T06:55:30 Destroy cgsems used after transfers to not leave open files on osx.
Con Kolivas 103bc0ba 2013-10-17T18:52:07 Revert to using timeouts on !linux since libusb leaks memory without them.
Con Kolivas 955e971d 2013-10-16T20:47:26 Prevent further USB transfers from occurring once the shutdown signal has been sent to prevent transfers getting stuck and libusb failing to shut down.
Con Kolivas 4e5946d2 2013-10-16T20:47:26 Prevent further USB transfers from occurring once the shutdown signal has been sent to prevent transfers getting stuck and libusb failing to shut down.
Con Kolivas 7c6bd4a8 2013-10-15T00:26:50 Emulate the libusb_control_transfer sync setup in our async variant.
Con Kolivas e6280c85 2013-10-15T00:13:06 Add the libusb control setup size offset for control writes.
Con Kolivas 91d1d104 2013-10-15T00:00:00 Merge branch 'master' of github.com:ckolivas/cgminer
Con Kolivas 8fdaeb0a 2013-10-14T23:59:01 Differentiate send from receive in control transfers!
kanoi bae0815e 2013-10-14T03:45:44 Merge pull request #505 from kanoi/master usbutils - make all libusb_error_name messages the same
Kano 108e7376 2013-10-14T21:44:10 usbutils - make all libusb_error_name messages the same
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.
Con Kolivas a47e4a48 2013-10-07T20:35:42 Check for async transfer variants of error messages.
Con Kolivas 08406274 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 50d1d367 2013-10-07T20:07:34 Check for either async or sync libusb error message for timeout.
Con Kolivas c7d5256b 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 aa75d841 2013-10-07T19:50:38 Use libusb's own error name function instead of hand coding the error names.
Con Kolivas f9313927 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 0b56becc 2013-10-07T17:56:57 Check for continuous IO errors on USB and consider the device inactive if more than retry max.
Con Kolivas 023ca6a1 2013-10-07T17:17:20 Remove devlock lock contention statistics since transfers are all done under read lock now.
Con Kolivas 59ff31d8 2013-10-07T17:11:33 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.
Con Kolivas 3b266594 2013-10-07T14:57:08 Merge branch 'master' into libusbx Conflicts: api.c miner.h usbutils.c
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 bfdf3af1 2013-10-03T12:05:48 Store statistics on how often we have to cancel async bulk transfers and add a debug message whenever we do.
Con Kolivas 603bba67 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 3eece618 2013-09-30T21:50:06 Get statistics on how long usb reads and writes wait on the devlock.
Con Kolivas c5d61b4c 2013-10-02T06:53:25 Remove zero packet flag on usb as it's unsupported outside linux and unnecessary.
Con Kolivas 382433eb 2013-10-01T17:34:32 Fake the libusb transfer timed out message if we force cancel it with our own async functions.
Con Kolivas 69c01a14 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 b3ceb7e2 2013-09-30T21:50:06 Get statistics on how long usb reads and writes wait on the devlock.
Con Kolivas d2f99cbe 2013-09-30T21:30:11 Add libusb error warning message when significant error occurs.
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.