Users have been facing issues with XHCI (USB 3 host controller) bus driver since quite some time now. Last month, Waddlesplash, a team member at Haiku, worked towards fixing the XHCI bus driver. Though few users contributed some small fixes, which helped the driver to boot Haiku within QEMU. But there were still few issues that caused device lockups such as USB mouse/keyboard stalls.
The kernel related issues have been resolved now. Even the devices don’t lock up now and even the performance has been greatly improved to 120MB/s on some USB3 flash drives and XHCI chipsets.
Users can now try the improved driver which is more efficient. The only remaining issue is a hard-stall on boot with certain USB3 flash drives on NEC/Renesas controllers. The work related to USB2 flash drives on USB3 ports and mounting the flash drives has finished.
Most of the issues related to controller initialization got fixed by hrev52772. The issues related to broken transfer finalization logic and random device stalls have been fixed.
This driver will be more useful as a reference than FreeBSD’s, OpenBSD’s, or Linux’s to other OS developers. The race condition in request submission has been fixed. A dead code has been removed and the style has been cleaned. Also, the device structure has been improved now.
To know more about this news, check out the Haiku’s official blog post.