libusb error IO should be fatal as well if it gets through usb read and write.
Simplify USB NODEV error checking to success only for writes and control transfers, and success and timeout for reads.
A USB control error must be < 0
Go back to allowing timeout errors on USB writes to be passed back to the driver without removing the device in case the driver wishes to manage them.
Use sync usb transfers in lowmem mode.
Revert "Disable USB stats which were not meant to be enabled by default and add extra memory for a memory error when stats are enabled."

This reverts commit 693d3916448ddc66f3a109c5e065e99aa8fa9669.
Use a much longer callback timeout for USB writes on windows only as a last resort since cancellations work so poorly.
Drop logging of timeout overrun message to verbose level.
Retry sending after successfully clearing a pipe error.
Deprecate the usb usecps function and just split up transfers equal to the maxpacketsize on usb1.1 devices.
Bump version to 3.8.4