usbutils.c


Log

Author Commit Date CI Message
Con Kolivas 95797821 2013-11-03T19:15:32 Add more debugging info for when usb details don't match.
Con Kolivas 73f6a570 2013-11-03T09:25:28 Look for timeout overruns in usb read/write.
Con Kolivas 1f227462 2013-11-03T09:04:15 Use the callback timeout as a safety mechanism only on windows.
Con Kolivas 4c0b6438 2013-11-02T12:29:08 Instead of using complicated sleeps to emulate characters per second on usb writes, submit only as many characters as can be transferred per usb poll of 1ms, and use timeouts in bulk transfers, cancelling transfers only as a failsafe.
Con Kolivas ccb74239 2013-11-03T09:23:45 Use an int for usb_read/write to identify overruns.
Con Kolivas 5c9f3036 2013-10-29T22:25:05 Merge branch 'master' into hashfast
Kano 5bd1b560 2013-10-28T07:41:15 usbutils - usb_nodev() allow a driver to drop a device
Con Kolivas a821df6a 2013-10-27T13:41:50 Correctly calculate sleep_estimate in usbutils that may have been preventing usecps from working.
Con Kolivas 4940b719 2013-10-26T22:12:34 Merge branch 'master' into hashfast
Con Kolivas 691a681f 2013-10-26T20:24:51 Remove inappropriate extra locking in _usb_transfer_read
Con Kolivas f29f6121 2013-10-25T14:35:56 Merge branch 'master' into hashfast
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 b639e688 2013-10-24T21:19:29 Merge branch 'master' into hashfast
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 669bcac3 2013-10-23T12:06:20 Merge branch 'master' into hashfast
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 6493b976 2013-10-21T12:18:42 Drop usb buffering message to debug logging level.
Con Kolivas 31e8ebaf 2013-10-19T16:08:17 Merge branch 'master' into hashfast
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 f5baf9f5 2013-10-18T19:12:13 Merge branch 'master' into hashfast Conflicts: usbutils.h
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 e06e495a 2013-10-14T15:07:32 Merge branch 'master' into hashfast
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 634151ff 2013-10-14T10:06:37 Merge branch 'master' into hashfast
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 8d1604a2 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 d2d7a746 2013-10-14T00:54:39 Merge branch 'master' into hashfast
Con Kolivas 280dc4bf 2013-10-14T00:54:05 Lock mutex before second pthread_cond_wait in usbutils to prevent a race.
Con Kolivas 176cae27 2013-10-13T18:42:33 Add basic definitions for hashfast device recognition.
Con Kolivas 9b5c5349 2013-10-13T16:41:53 Merge branch 'master' into hashfast Conflicts: api.c configure.ac miner.h usbutils.c usbutils.h
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.