We've had a lot of problems with the microphone array driver. Most noticeable, if there is an buffer overrun it hangs the RPi, because the driver keeps recording after the end of the buffer. But there are additional problems:
The design of the work queue resulted in frequent dropped or damaged audio when the device was loaded with other tasks.
ALSA did not recover after a buffer overrun and resume recording.
Various ALSA device info settings were not correct. One result was the driver was much more prone to buffer overflows than it needed to be.
I have some experience writing kernel and ALSA drivers and have fixed these problems. I also increased the performance and reduced that background CPU load from simply having the driver loaded.
The way debian package was doing DKMS wasn't working well either. The package didn't uninstall and upgrade correctly. I've re-written that too, trying to follow current Debian best practices for DKMS packages.
We've had a lot of problems with the microphone array driver. Most noticeable, if there is an buffer overrun it hangs the RPi, because the driver keeps recording after the end of the buffer. But there are additional problems: The design of the work queue resulted in frequent dropped or damaged audio when the device was loaded with other tasks. ALSA did not recover after a buffer overrun and resume recording. Various ALSA device info settings were not correct. One result was the driver was much more prone to buffer overflows than it needed to be.
I have some experience writing kernel and ALSA drivers and have fixed these problems. I also increased the performance and reduced that background CPU load from simply having the driver loaded.
The way debian package was doing DKMS wasn't working well either. The package didn't uninstall and upgrade correctly. I've re-written that too, trying to follow current Debian best practices for DKMS packages.