driver-avalon.c


Log

Author Commit Date CI Message
Con Kolivas 5e94a972 2013-06-04T23:31:26 Set the avalon read transfer latency to avoid sleeping when no data is returned after very short latency settings.
Con Kolivas a60a1b0f 2013-05-30T16:35:58 Break out of idling loop in avalon_idle if the buffer is full.
Con Kolivas c0c5c060 2013-05-30T16:32:12 Provide some defaults for avalon if none are specified and do not try to claim the device if it fails to reset with them and no options are specified.
Con Kolivas dfab6a98 2013-05-30T10:18:09 Avalon fan factor is already multiplied into the info values.
Con Kolivas 06b9e0c4 2013-05-30T10:16:04 Get rid of zeros which corrupt display.
Con Kolivas 23736383 2013-05-30T10:14:10 Logic fail on minimum fanspeed reporting.
Con Kolivas 8bbb1793 2013-05-30T10:12:14 Provide a workaround for fan0 sensor not being used on avalon and pad fan RPM with zeros.
Con Kolivas 86b59c47 2013-05-30T10:05:16 Add ambient temp and lowest fan RPM information to avalon statline.
Con Kolivas 6dcdd543 2013-05-30T09:22:35 Display max temperature and fanspeed data for avalon.
Con Kolivas a10371b9 2013-05-29T23:03:32 Shut down the avalon mining thread if the device disappears.
ckolivas 173119d5 2013-05-29T11:49:10 Use the cgpu_info shutdown to determine when to stop the avalon read and write threads.
ckolivas 60bb463c 2013-05-29T11:45:47 Use semaphores to signal a reset to pause the read thread while the write thread does the actual reset, making all writes come from the same place.
ckolivas 2f4280b4 2013-05-29T09:19:34 Remove now unneeded fgpautils.h include from avalon.
Con Kolivas 0177b410 2013-05-29T00:33:56 Use the USB wrappers for avalon, telling usbutils that we want the raw data.
Con Kolivas d1337427 2013-05-29T00:15:30 Use separate ep for avalon tasks vs avalon reset and do not loop in write indefinitely.
Con Kolivas 772b354e 2013-05-28T23:59:07 Remove unneeded function and checks in avalon write code.
Con Kolivas 33e83eb7 2013-05-28T23:54:16 work_restart is reset within the queued hash work loop.
Con Kolivas 5900c024 2013-05-28T23:48:26 Fix avalon shutdown sequence.
Con Kolivas 7c645ffd 2013-05-28T23:02:29 Use nusleep in avalon_get_results in place of nmsleep.
Con Kolivas 7740ed83 2013-05-28T21:15:33 Give a buffer of perceived results in avalon during idle periods to allow for results once it becomes active again.
Con Kolivas 7ef11e2b 2013-05-27T21:02:32 Set the read and write threads for avalon to not cancel within libusb functions and wait for the threads to pthread_join on shutdown.
Con Kolivas 7506e499 2013-05-27T20:37:21 Offset needs to be incremented after avalon reads.
Con Kolivas 7748c469 2013-05-27T20:29:35 Make the avalon_read function parse the ftdi responses appopriately.
Con Kolivas 2a222ecf 2013-05-27T20:04:12 Use the avalon read timeout to completion if no data has been read.
Con Kolivas e255f747 2013-05-27T19:55:02 wait_avalon_ready should only be used before writes.
Con Kolivas 51a44fa7 2013-05-27T17:52:34 Ask for the correct amount to read in avalon get results.
Con Kolivas 0316592b 2013-05-27T17:48:54 Spawn the avalon read thread first with info->reset set to discard any data till work is adequately queued.
Con Kolivas 6ce6cd54 2013-05-27T17:42:51 Use direct usb read commands to avoid ftdi data being automatically cut off in avalon reads.
Con Kolivas b73ab488 2013-05-27T17:28:49 Do a simple usb_read_once for the avalon result from a reset command.
Con Kolivas f1ffe986 2013-05-27T17:18:49 Make sure avalon is ready to receive more usb commands before sending them.
Con Kolivas a32e521d 2013-05-27T17:17:42 Implement avalon_ready and avalon_wait_ready functions for when usb is ready to receive commands.
Con Kolivas 7ad8af19 2013-05-27T17:08:06 avalon_read should not loop but just return whatever it has succeeded in reading.
Con Kolivas 2c633fdb 2013-05-27T15:54:07 Set avalon_info to device data void struct.
Con Kolivas c478b302 2013-05-27T15:48:54 Specify avalon in avalon_reset.
Con Kolivas 269a8de9 2013-05-27T15:43:22 First pass rewriting serialdev into direct usb dev for avalon driver.
Con Kolivas 9650bfd6 2013-05-27T14:58:08 Compile usbutils into avalon driver.
Con Kolivas 8595f3bd 2013-05-27T13:41:57 Check results come in at least at 2/3 the rate they should be on avalon and if not, reset it.
Con Kolivas 91edf84c 2013-05-27T12:39:32 Give a warning but don't reset if the avalon buffer is full early.
Con Kolivas abfaf361 2013-05-27T12:30:13 Discard any reads obtained from the avalon get results thread during a reset.
Con Kolivas c1dd0525 2013-05-27T12:20:34 Differentiate initial reset in avalon from subsequent ones.
Con Kolivas 589e0877 2013-05-27T11:11:44 Perform a mandatory reset if the avalon buffer signals it's full before it has queued its normal quota of work.
Con Kolivas b7901539 2013-05-27T01:33:54 Wait till buffer is cleared after sending idle tasks to avalon before returning from avalon_idle.
Con Kolivas f1644462 2013-05-27T01:32:31 Lock qlock mutex during reset from read thread in avalon to prevent more work being sent till the reset is over.
Con Kolivas 499b2506 2013-05-27T01:29:57 Reset avalon if we continue to be unable to send all the work items.
Con Kolivas b2b594b8 2013-05-27T00:53:24 Revert "Don't reset result counter to zero if it's negative in avalon on just one successful share." This reverts commit ce0a9cd3a4620e18e391be5ce88c92a606b1fddf. This wasn't the problem.
Con Kolivas ce0a9cd3 2013-05-27T00:28:56 Don't reset result counter to zero if it's negative in avalon on just one successful share.
Con Kolivas 4c3fe39e 2013-05-26T21:50:31 Add avalon reset response to debugging output.
Con Kolivas d0132a77 2013-05-26T21:34:53 Do a wait_avalon_ready before sending a reset code.
Con Kolivas 1f493d64 2013-05-26T21:30:55 Iterate over spare bytes in the avalon result returned from a reset request trying to find the beginning of the reset.
Con Kolivas 467d1497 2013-05-26T21:21:11 Idle avalon after reset.
Con Kolivas 1ef027c4 2013-05-26T21:14:17 Check for nothing but consecutive bad results on avalon and reset the FPGA if it happens.
Con Kolivas e90cf62a 2013-05-26T17:07:27 Unset the work restart flag sooner in avalon_flush_work to avoid re-entering the flush work function and just reset the queued counter instead of rotating the array to avoid runs of no valid work.
Con Kolivas 0a9d7ca6 2013-05-26T16:46:43 Implement an avalon_flush_work function for work restarts.
Con Kolivas 3c39d75f 2013-05-26T16:26:42 Shut down avalon read and write threads and idle the miners on closing it.
Con Kolivas db7c72b8 2013-05-26T14:59:05 Rotate avalon array to reset the queued count before releasing the lock so work will always be available on next pass.
Con Kolivas 66e27a10 2013-05-26T14:37:45 Move avalon read thread start till after conditional wait, store idle status in avalon_info and use it to determine whether an error is appropriate or not.
Con Kolivas 0763070c 2013-05-26T14:29:28 Wait till the avalon_send_tasks thread has filled the avalon with idle work before starting the avalon_get_results thread.
Con Kolivas 7cf154bf 2013-05-26T14:23:14 Use AVA_GETS_OK macro in avalon_read.
Con Kolivas ebf88552 2013-05-26T14:18:21 Do all writes on avalon with a select() timeout to prevent indefinite blocking and loop if less than desired is written.
Con Kolivas 596784aa 2013-05-26T14:08:21 Check explicitly that ava_buffer_full equals the macro.
Con Kolivas e9e6ad82 2013-05-26T13:58:12 Send initial reset as an avalon task to remove avalon_write function.
Con Kolivas e27ca544 2013-05-26T13:53:02 avalon_clear_readbuf is no longer required.
Con Kolivas 7dc3485f 2013-05-26T13:39:42 Check for 2 stray bytes on avalon reset.
Con Kolivas 629feb5f 2013-05-26T13:16:19 Create a separate thread for handling all work and idle submission to the avalon which messages the scanhash function it has completed to update statistics.
Con Kolivas c87f4c30 2013-05-26T09:04:24 Give the avalon get results thread name the device number as well.
Con Kolivas 4076e6b3 2013-05-26T08:57:02 Make sure we're not adjusting temps on every successful work retrieval on avalon.
Con Kolivas 4784ecce 2013-05-26T08:55:03 Count missing work items from behind a successful work read in avalon as well.
Con Kolivas 70a3e885 2013-05-26T08:42:41 Change message for work not found in avalon parser.
Con Kolivas fba70ff5 2013-05-26T01:51:20 Simplify debugging and only discard from avalon read buffer if at least one full result has been discarded.
Con Kolivas 7324a33b 2013-05-26T01:38:51 Only display discarded bytes in avalon if they're not used as nonces.
Con Kolivas be3224f9 2013-05-26T01:33:32 Only loop once through avalon_parse_results, but do so after timeouts as well.
Con Kolivas 1f08809a 2013-05-26T01:31:20 Only debug and move ram if spare bytes exist in avalon buffer.
Con Kolivas 9f59e9a6 2013-05-26T01:30:03 Remove off by one error.
Con Kolivas 0a82b255 2013-05-26T01:25:43 Inverted logic.
Con Kolivas b6b1abb5 2013-05-26T01:24:14 Add more debugging to avalon reads.
Con Kolivas ab739358 2013-05-26T01:17:05 Convert unsigned size_ts to ints for parsing avalon messages.
Con Kolivas bb06c2f0 2013-05-26T01:05:26 Cope with not finding nonces in avalon parsing gracefully by not overflowing buffers.
Con Kolivas e9429f38 2013-05-26T00:52:20 Adjust avalon temp values on one lot of valid nonces from the parser.
Con Kolivas 74044467 2013-05-26T00:43:23 Created a threaded message parser for avalon reads.
Con Kolivas ff44696a 2013-05-25T23:21:11 Avalon_wait_write is not effective during resets so do it after going idle.
Con Kolivas 4794ce70 2013-05-25T23:11:45 Send only a single byte reset.
Con Kolivas e2c43792 2013-05-25T22:21:02 Repeat going idle after avalon reset, and wait for write ready before sending each reset request instead of some arbitrary sleep time.
Con Kolivas a1cec2cd 2013-05-25T22:16:10 Revert "Send full avalon init task for reset." This reverts commit fa1bca31181f50b8912d2851ab141244e420b8cb. No difference.
Con Kolivas fa1bca31 2013-05-25T16:09:46 Send full avalon init task for reset.
Con Kolivas c7b1b030 2013-05-25T16:04:42 Timeouts on avalon_read and avalon_write should be 100ms.
Con Kolivas 4ddbe241 2013-05-25T15:52:08 Don't close avalon after detecting it until we're cleaning up, instead using reset for comms failures.
Con Kolivas 18710b14 2013-05-25T15:18:31 Check for avalon_wait_write before sending reset command.
Con Kolivas 0e071c98 2013-05-25T15:07:10 Sleep in avalon_write_ready.
Con Kolivas 674539bd 2013-05-25T15:03:02 Make avalon_wait_write a bool function and check its return value.
Con Kolivas 290666a1 2013-05-25T14:54:00 Show how many idle tasks are sent to avalon if it aborts on buffer full.
Con Kolivas 8b1a2471 2013-05-25T14:48:23 Reset avalon->device_fd after it is closed.
Con Kolivas a6401643 2013-05-25T14:42:38 Create an avalon_wait_write function that is used before sending avalon idle command.
Con Kolivas 764f7cc4 2013-05-25T14:38:33 Avoid repeating avalon_idle in do_avalon_close and extra sleep.
Con Kolivas ee4d72e3 2013-05-25T14:05:52 Pass fd to avalon_idle.
Con Kolivas 664fd5b4 2013-05-25T14:03:45 Revert "Change to setting avalon_task to being the pointer for avalon_idle." This reverts commit 91a82cd81f8ef63621cc473601adb325d662e409.
Con Kolivas 91a82cd8 2013-05-25T13:38:00 Change to setting avalon_task to being the pointer for avalon_idle.
Con Kolivas e2578033 2013-05-25T13:27:54 Do avalon_reset after info structure is set up.
Con Kolivas 930317e1 2013-05-25T13:25:38 Rework avalon reset sequence to include idling of chips and waiting for them to go idle followed by 2nd reset and then checking result.
Con Kolivas 569a6f65 2013-05-25T12:11:26 Do a non-blocking read of anything in the avalon buffer after opening the device.
Con Kolivas 6baa23cf 2013-05-25T12:01:12 Assign the avalon info data to the device_data in cgpu_info.