ckolivas
|
60bb463cf1
|
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.
|
12 years ago |
ckolivas
|
2f4280b4a2
|
Remove now unneeded fgpautils.h include from avalon.
|
12 years ago |
Con Kolivas
|
0177b41010
|
Use the USB wrappers for avalon, telling usbutils that we want the raw data.
|
12 years ago |
Con Kolivas
|
d1337427fd
|
Use separate ep for avalon tasks vs avalon reset and do not loop in write indefinitely.
|
12 years ago |
Con Kolivas
|
772b354ea9
|
Remove unneeded function and checks in avalon write code.
|
12 years ago |
Con Kolivas
|
33e83eb764
|
work_restart is reset within the queued hash work loop.
|
12 years ago |
Con Kolivas
|
5900c0244d
|
Fix avalon shutdown sequence.
|
12 years ago |
Con Kolivas
|
7c645ffda9
|
Use nusleep in avalon_get_results in place of nmsleep.
|
12 years ago |
Con Kolivas
|
7740ed839a
|
Give a buffer of perceived results in avalon during idle periods to allow for results once it becomes active again.
|
12 years ago |
Con Kolivas
|
7ef11e2b3d
|
Set the read and write threads for avalon to not cancel within libusb functions and wait for the threads to pthread_join on shutdown.
|
12 years ago |
Con Kolivas
|
7506e499b9
|
Offset needs to be incremented after avalon reads.
|
12 years ago |
Con Kolivas
|
7748c46943
|
Make the avalon_read function parse the ftdi responses appopriately.
|
12 years ago |
Con Kolivas
|
2a222ecffa
|
Use the avalon read timeout to completion if no data has been read.
|
12 years ago |
Con Kolivas
|
e255f74763
|
wait_avalon_ready should only be used before writes.
|
12 years ago |
Con Kolivas
|
51a44fa779
|
Ask for the correct amount to read in avalon get results.
|
12 years ago |
Con Kolivas
|
0316592b95
|
Spawn the avalon read thread first with info->reset set to discard any data till work is adequately queued.
|
12 years ago |
Con Kolivas
|
6ce6cd547e
|
Use direct usb read commands to avoid ftdi data being automatically cut off in avalon reads.
|
12 years ago |
Con Kolivas
|
b73ab48814
|
Do a simple usb_read_once for the avalon result from a reset command.
|
12 years ago |
Con Kolivas
|
f1ffe9860b
|
Make sure avalon is ready to receive more usb commands before sending them.
|
12 years ago |
Con Kolivas
|
a32e521d0a
|
Implement avalon_ready and avalon_wait_ready functions for when usb is ready to receive commands.
|
12 years ago |
Con Kolivas
|
7ad8af19b9
|
avalon_read should not loop but just return whatever it has succeeded in reading.
|
12 years ago |
Con Kolivas
|
2c633fdbe4
|
Set avalon_info to device data void struct.
|
12 years ago |
Con Kolivas
|
c478b302ce
|
Specify avalon in avalon_reset.
|
12 years ago |
Con Kolivas
|
269a8de977
|
First pass rewriting serialdev into direct usb dev for avalon driver.
|
12 years ago |
Con Kolivas
|
9650bfd6a3
|
Compile usbutils into avalon driver.
|
12 years ago |
Con Kolivas
|
8595f3bd74
|
Check results come in at least at 2/3 the rate they should be on avalon and if not, reset it.
|
12 years ago |
Con Kolivas
|
91edf84c60
|
Give a warning but don't reset if the avalon buffer is full early.
|
12 years ago |
Con Kolivas
|
abfaf36112
|
Discard any reads obtained from the avalon get results thread during a reset.
|
12 years ago |
Con Kolivas
|
c1dd052596
|
Differentiate initial reset in avalon from subsequent ones.
|
12 years ago |
Con Kolivas
|
589e08772e
|
Perform a mandatory reset if the avalon buffer signals it's full before it has queued its normal quota of work.
|
12 years ago |
Con Kolivas
|
b790153990
|
Wait till buffer is cleared after sending idle tasks to avalon before returning from avalon_idle.
|
12 years ago |
Con Kolivas
|
f164446282
|
Lock qlock mutex during reset from read thread in avalon to prevent more work being sent till the reset is over.
|
12 years ago |
Con Kolivas
|
499b25068c
|
Reset avalon if we continue to be unable to send all the work items.
|
12 years ago |
Con Kolivas
|
b2b594b80e
|
Revert "Don't reset result counter to zero if it's negative in avalon on just one successful share."
This reverts commit ce0a9cd3a4 .
This wasn't the problem.
|
12 years ago |
Con Kolivas
|
ce0a9cd3a4
|
Don't reset result counter to zero if it's negative in avalon on just one successful share.
|
12 years ago |
Con Kolivas
|
4c3fe39e94
|
Add avalon reset response to debugging output.
|
12 years ago |
Con Kolivas
|
d0132a7702
|
Do a wait_avalon_ready before sending a reset code.
|
12 years ago |
Con Kolivas
|
1f493d6462
|
Iterate over spare bytes in the avalon result returned from a reset request trying to find the beginning of the reset.
|
12 years ago |
Con Kolivas
|
467d149785
|
Idle avalon after reset.
|
12 years ago |
Con Kolivas
|
1ef027c444
|
Check for nothing but consecutive bad results on avalon and reset the FPGA if it happens.
|
12 years ago |
Con Kolivas
|
e90cf62af1
|
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.
|
12 years ago |
Con Kolivas
|
0a9d7ca6b3
|
Implement an avalon_flush_work function for work restarts.
|
12 years ago |
Con Kolivas
|
3c39d75fc9
|
Shut down avalon read and write threads and idle the miners on closing it.
|
12 years ago |
Con Kolivas
|
db7c72b892
|
Rotate avalon array to reset the queued count before releasing the lock so work will always be available on next pass.
|
12 years ago |
Con Kolivas
|
66e27a10c5
|
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.
|
12 years ago |
Con Kolivas
|
0763070cb0
|
Wait till the avalon_send_tasks thread has filled the avalon with idle work before starting the avalon_get_results thread.
|
12 years ago |
Con Kolivas
|
7cf154bfa5
|
Use AVA_GETS_OK macro in avalon_read.
|
12 years ago |
Con Kolivas
|
ebf885520d
|
Do all writes on avalon with a select() timeout to prevent indefinite blocking and loop if less than desired is written.
|
12 years ago |
Con Kolivas
|
596784aaf3
|
Check explicitly that ava_buffer_full equals the macro.
|
12 years ago |
Con Kolivas
|
e9e6ad821d
|
Send initial reset as an avalon task to remove avalon_write function.
|
12 years ago |