1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-09 22:38:01 +00:00
Commit Graph

280 Commits

Author SHA1 Message Date
Con Kolivas
955e971d3d Prevent further USB transfers from occurring once the shutdown signal has been sent to prevent transfers getting stuck and libusb failing to shut down. 2013-10-17 08:29:02 +11:00
Con Kolivas
7c6bd4a8fb Emulate the libusb_control_transfer sync setup in our async variant. 2013-10-15 00:26:50 +11:00
Con Kolivas
e6280c85d2 Add the libusb control setup size offset for control writes. 2013-10-15 00:13:06 +11:00
Con Kolivas
91d1d104d1 Merge branch 'master' of github.com:ckolivas/cgminer 2013-10-15 00:00:00 +11:00
Con Kolivas
8fdaeb0ac9 Differentiate send from receive in control transfers! 2013-10-14 23:59:01 +11:00
kanoi
bae0815edf Merge pull request #505 from kanoi/master
usbutils - make all libusb_error_name messages the same
2013-10-14 03:45:44 -07:00
Kano
108e73763b usbutils - make all libusb_error_name messages the same 2013-10-14 21:44:10 +11:00
Con Kolivas
9e287f9598 Merge pull request #499 from someone42/master
changes to bitburner driver for bitburner fury boards
2013-10-14 03:27:57 -07:00
Con Kolivas
02a4f8df9c Convert the usb callback function to using cgsem_t timed waits to avoid race conditions with conditionals/mutexes. 2013-10-14 11:44:37 +11:00
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.
2013-10-14 11:39:15 +11:00
Con Kolivas
433465bcfc Convert the usb callback function to use a cgsem_t using the timedwait code to avoid races with mutexes/conditionals. 2013-10-14 11:35:47 +11:00
Con Kolivas
9ca22ed493 Use the one LIBUSB_ERROR_TIMEOUT for cancelled transactions since this error is explicitly tested for in various drivers. 2013-10-14 10:05:49 +11:00
Con Kolivas
a7580f1ff2 Do not use locking on usb callback function pthread signalling to prevent deadlock with libusb's own event lock. 2013-10-14 09:41:18 +11:00
Con Kolivas
280dc4bf01 Lock mutex before second pthread_cond_wait in usbutils to prevent a race. 2013-10-14 00:54:05 +11:00
Con Kolivas
84de52c1c6 Use a write lock when performing any USB control transfers to prevent concurrent transfers. 2013-10-13 10:11:46 +11:00
Con Kolivas
c069028648 Free a libusb transfer after we have finished using it to avoid a dereference in usb_control_transfer 2013-10-12 17:44:28 +11:00
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. 2013-10-12 15:06:48 +11:00
Con Kolivas
2ca8d85906 Convert all usb control transfers to asynchronous communication with our own timeout management as well. 2013-10-12 08:45:03 +11:00
Con Kolivas
b537976036 Make pthread conditional timeouts handle all bulk usb transfer timeouts performing libusb_cancel_transfer, disabling timeouts within libusb itself. 2013-10-11 23:06:40 +11:00
Chris Chua
b509e84376 using separate identifier for bitburner fury boards 2013-10-11 21:14:59 +11:00
Con Kolivas
03ad59f287 Add a small amount to the usb timeout before cancelling to allow for a regular usb polling interval to pass. 2013-10-11 15:37:55 +11:00
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. 2013-10-11 14:47:01 +11:00
Con Kolivas
6d18ce4caa Retry up to USB_RETRY_MAX times to clear a halt condition before failing. 2013-10-11 14:37:40 +11:00
Con Kolivas
3a7a677f45 Show the error number as well as the description in erroring bulk transfers. 2013-10-11 13:43:16 +11:00
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. 2013-10-11 10:15:06 +11:00
Con Kolivas
853aa28ffc Merge branch 'master' into async
Conflicts:
	usbutils.c
2013-10-11 08:49:59 +11:00
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. 2013-10-09 22:17:56 +11:00
Con Kolivas
dc9c3783ec Display errors on failed usb read and write and consider sequential IO errors a permanent failure. 2013-10-08 22:05:01 +11:00
Con Kolivas
a22f5bfddd Use libusb's own error name function instead of hand coding the error names. 2013-10-08 21:40:04 +11:00
Con Kolivas
efd8c44182 Check for async transfer variants of error messages. 2013-10-08 21:01:04 +11:00
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.
2013-10-08 21:00:51 +11:00
Con Kolivas
d34279b226 Remove unused variables. 2013-10-08 20:48:26 +11:00
Con Kolivas
f80c900336 Merge branch 'master' into async
Conflicts:
	api.c
	cgminer.c
	miner.h
	usbutils.c
	util.c
2013-10-08 20:46:36 +11:00
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. 2013-10-08 00:01:26 +11:00
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. 2013-10-07 23:34:12 +11:00
Con Kolivas
a79768b74d Use libusb's own error name function instead of hand coding the error names. 2013-10-07 23:34:12 +11:00
Con Kolivas
74775e4e72 Check for libusb transfer stall error to be consistent with async IO errors returned for a halt condition. 2013-10-07 23:34:11 +11:00
Con Kolivas
38ae7093d2 Check for continuous IO errors on USB and consider the device inactive if more than retry max. 2013-10-07 23:34:11 +11:00
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. 2013-10-07 23:34:01 +11:00
ckolivas
6cd7f0f1be Remove unmaintained broken ztex driver. 2013-10-07 23:33:13 +11:00
Kano
51418f79e5 Klondike update code to current git 2013-10-07 23:33:11 +11:00
Con Kolivas
585d4af4e6 Store statistics on how often we have to cancel async bulk transfers and add a debug message whenever we do. 2013-10-07 23:32:01 +11:00
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. 2013-10-07 23:31:20 +11:00
Con Kolivas
a798e14a12 Remove zero packet flag on usb as it's unsupported outside linux and unnecessary. 2013-10-07 23:31:20 +11:00
Con Kolivas
375095645e Fake the libusb transfer timed out message if we force cancel it with our own async functions. 2013-10-07 23:31:20 +11:00
Con Kolivas
a6a9407067 Use asynchronous transfers for all bulk transfers, allowing us to use our own timers and cancelling transfers that take too long. 2013-10-07 23:31:20 +11:00
Con Kolivas
991765845b Add libusb error warning message when significant error occurs. 2013-10-07 23:31:20 +11:00
ckolivas
052e434846 Remove unmaintained broken ztex driver. 2013-10-04 12:00:41 +10:00
Kano
dc85abd9cd Klondike update code to current git 2013-10-03 23:19:18 +10:00
Con Kolivas
3eece61819 Get statistics on how long usb reads and writes wait on the devlock. 2013-10-03 09:40:02 +10:00