Initialise usb after all the locks and conditionals are initialised.
Do get_work in fill_queue without holding other locks.
Use no cancel transfer functions on windows in callback_wait
Do not double up with checking for end of timeout measurements in usb read/write.
Remove now unused entries from struct cg_usb_device
Transfer errors are filtered out in usbutils now so no need to look for them in NODEV checks.
Treat usb write timeout errors as unrecoverable.
Make sure cgpu exists in the restart threads loop in cases of hotplug etc.
Correct set_blockdiff for big endian machines.
Fix for opt_worktime on big endian machines.
Do all hotplug_process under the write mining_thr_lock
Revert "Use no cancel transfer functions on windows in callback_wait"

This reverts commit 8f6acad8ec11fa68e31447e4de9e2ce49c2bf16a.
Different windows+usb combinations respond with varying levels of reliability wrt timeouts so use a nominal extra 40ms before cancelling transfers that fail to time out on their own.
Statline before is too long on icarus that doesn't have monitoring.
Use cgsem timed waits in avalon driver to not miss any queued wake ups to account for async messages coming during a flush work.
Clean up completely on avalon shutdown.
Don't free the cgpu data on shutting down avalon driver.
Avalon doesn't like losing its device data even after it's been unplugged.
Return ETIMEDOUT regardless if we fail in cgsem_mswait since we may be waiting on it on shutdown and the return response is harmless.
Update NEWS