Assign the avalon info data to the device_data in cgpu_info.
Do a non-blocking read of anything in the avalon buffer after opening the device.
Rework avalon reset sequence to include idling of chips and waiting for them to go idle followed by 2nd reset and then checking result.
Do avalon_reset after info structure is set up.
Change to setting avalon_task to being the pointer for avalon_idle.
Revert "Change to setting avalon_task to being the pointer for avalon_idle."

This reverts commit 91a82cd81f8ef63621cc473601adb325d662e409.
Pass fd to avalon_idle.
Avoid repeating avalon_idle in do_avalon_close and extra sleep.
Create an avalon_wait_write function that is used before sending avalon idle command.
Reset avalon->device_fd after it is closed.
Show how many idle tasks are sent to avalon if it aborts on buffer full.
Make avalon_wait_write a bool function and check its return value.
Sleep in avalon_write_ready.
Check for avalon_wait_write before sending reset command.
Don't close avalon after detecting it until we're cleaning up, instead using reset for comms failures.
Timeouts on avalon_read and avalon_write should be 100ms.
Send full avalon init task for reset.
Revert "Send full avalon init task for reset."

This reverts commit fa1bca31181f50b8912d2851ab141244e420b8cb.

No difference.
Repeat going idle after avalon reset, and wait for write ready before sending each reset request instead of some arbitrary sleep time.
Send only a single byte reset.