driver-avalon.c


Log

Author Commit Date CI Message
Con Kolivas dd9233f7 2013-08-13T17:24:01 The write thread in avalon is only ever actually woken up by timeout so remove the write semaphore and use a simple sleep poll.
Con Kolivas b2a3941e 2013-08-13T15:36:52 Fix warning.
Con Kolivas 992a97a3 2013-08-13T14:52:17 Interrupting reads on the avalon to start writes loses data so remove the cgsem_post in the read code.
Kano b1f57595 2013-08-10T10:12:15 avalon init write_sem before use
Con Kolivas f7e67010 2013-08-10T01:11:23 Fix uninit variable warnings.
Kano b1a80cef 2013-08-08T00:20:19 avalon allow frequency to be set via the API
Kano 802737e8 2013-08-07T23:47:19 BTB voltage management via the API - and set default on startup
Kano ecc9457b 2013-08-07T21:25:33 Avalon BTB allow partial work to be transferred
Kano 6dabdff1 2013-08-06T11:13:48 avalon_cts use correct buffer
Chris Chua 782206ce 2013-07-29T22:20:56 using usb_ident
Chris Chua b8cdaea8 2013-07-29T21:53:14 forgot a return
Chris Chua b0f4d55b 2013-07-29T21:39:29 changes to Avalon driver for BitBurner boards
Kano ad1572f7 2013-07-06T20:17:17 size check get_datestamp/get_timestamp and remove unused cgpu->init
Kano 385a70be 2013-07-06T19:15:59 make all statline overflow safe
Con Kolivas a011fe51 2013-07-03T22:40:47 Check for a timeout in avalon_scanhash and post to the write sem if we receive one.
Con Kolivas 3b2f9ccb 2013-07-03T21:48:06 Decay result count in avalon more slowly to not falsely detect idle periods as low result return rates.
Con Kolivas 4b4a1354 2013-07-03T21:22:27 Count the number of miners idled in avalon to account more accurately for when its result return rate is too low.
Con Kolivas e13c580c 2013-07-03T20:56:56 Fix potential dereference when starting avalon with all new work.
Con Kolivas 18422fbf 2013-07-02T16:07:32 Only throttle avalon clockspeed in avalon_auto in non optimal temperature settings if the fanspeed has reached maximum.
Con Kolivas 3ef0db56 2013-07-02T09:02:40 Reinstate more aggressive <2% HW error target for avalon-auto
Con Kolivas 05344eff 2013-07-01T16:20:41 Set avalon fan min and fan max to PWM values instead of percentage.
Con Kolivas 065b6a5e 2013-07-01T15:38:15 Provide an --avalon-freq command line to give a valid range of frequencies for avalon in auto mode.
Con Kolivas 36b556aa 2013-07-01T15:15:36 Set the avalon idle frequency to lowest if avalon auto is enabled and we have an overheat condition.
Con Kolivas ce214e12 2013-07-01T15:10:56 Decrease avalon frequency in auto mode if we are unable to maintain the temperature in the optimal range.
Con Kolivas d7c99cd1 2013-07-01T10:43:33 Use a more conservative upper limit of 1% for hardware errors with avalon auto frequency.
Con Kolivas f142a4de 2013-07-01T10:41:22 Allow the avalon fanspeed range to be passed as parameter on the command line, default to 20-100%
Con Kolivas 34547596 2013-06-27T08:26:53 Support all avalon frequencies on the command line.
Con Kolivas 18f9112e 2013-06-26T21:46:58 Reset the other auto counters in avalon when idling a device.
Con Kolivas e811c4dc 2013-06-26T00:15:04 Add an avalon-auto option which enables dynamic overclocking based on hardware error rate for maximum effective hashrate.
Con Kolivas 9b45daba 2013-06-25T19:39:42 Add an --avalon-cutoff feature which puts the avalon idle should it reach this temperature, defaulting to 60, re-enabling it when it gets to target temperature.
Con Kolivas 1fca632f 2013-06-24T11:04:02 Add an --avalon-temp option to allow a user specified target temperature.
Con Kolivas 6bdfed3d 2013-06-24T10:39:41 Demote no matching work message to verbose logging only on avalon.
Con Kolivas 6cc09aa1 2013-06-24T10:38:47 Make the fan control on the avalon a simple PID controller with a target temperature of 45.
Con Kolivas c64d95f2 2013-06-21T21:59:44 Support new overclocking speeds for avalon: 325, 350 and 375
Con Kolivas df81ce67 2013-06-21T18:17:34 Use the nusleep function for sleeping after sending work in avalon.
Con Kolivas a36e55b7 2013-06-21T17:39:26 Set the avalon preferred packet size to 512.
Con Kolivas 581afcf9 2013-06-21T11:18:00 Use only one cgsem in avalon signalling when the write thread should commit work by reading the status bytes off during an avalon_read, minimising the number of usb calls and resetting from only one place.
Con Kolivas cf13d02d 2013-06-21T11:03:03 Change avalon no valid work message to no matching work to match API terminology.
Con Kolivas 7c683cf2 2013-06-21T10:59:55 Use low latency usb transfers on the avalon, sleeping up to half a buffer's worth only if no data is returning to increase hashrate, abolish lost work and decrease CPU.
Con Kolivas e487d3d2 2013-06-21T01:58:18 Minimise the sleep times in avalon read to avoid result loss.
Con Kolivas b810dea3 2013-06-21T01:32:41 Revert "Sleep for less time in wait_avalon_ready till we have a better signalling system from read thread to write." This reverts commit 98862b4f46b801e14b9474fdac4286145cbdf6b6.
Con Kolivas 7e6cbf08 2013-06-21T01:23:38 Use a half nonce range before cycling through avalon's scanwork to ensure it gets a chance to fill work if time is tight for the write thread to signal a wakeup.
Con Kolivas 98862b4f 2013-06-20T23:59:17 Sleep for less time in wait_avalon_ready till we have a better signalling system from read thread to write.
Kano 7eba9634 2013-06-15T22:03:56 remove varargs from logging/quit/in general as much as possible
Con Kolivas bd6bc6bd 2013-06-13T16:13:52 Decrease the sleep duration before reading in avalon to not let the read buffer overflow.
Con Kolivas 9604cbee 2013-06-13T13:59:17 Sleep if the avalon buffer is empty and we've requested a read to allow the write thread to take precedence.
Con Kolivas 261b1299 2013-06-13T13:01:27 Add the cgpu_info structure before avalon reset.
Kano b8b137ae 2013-06-10T15:59:02 USB make device_path handled by usbutils
Kano 749fa78d 2013-06-10T15:39:44 tidy up free in device detect functions
Kano 9287ee90 2013-06-10T15:22:37 USB control creation and free of cgpu
Con Kolivas 059aa5ab 2013-06-07T08:52:58 Shorten the avalon statline to fit in the curses interface and show the lowest speed fan cooling the asic devices.
ckolivas b59c3380 2013-06-06T13:08:00 Implement cgminer specific cgsem semaphores to imitate unnamed semaphore behaviour on osx which does not support them.
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.