How we fixed UAC2 issue with Sony Xperia for HenryAudio



Description of the issue:

HenryAudio makes professional USB Audio device, it supports UAC2 USB Audio Class 2.0. The issue was that it did not work with Sony Xperia, it could not be detected by Sony Xperia.

Challenge:

There was no way to set a breakpoint at Sony Xperia to see the error messages. Sony Xperia is Android based, dmesg and logcat did not reveal helpful information.

Our approach:

We carefully reviewed UAC2 specification, checked and tested a bunch of changes to interface descriptors, endpoint descriptors and audio descriptors, but without luck.

We finally found out that the root cause was Sony Xperia with Android 5.1.x only supported 16-bit audio, after changing firmware to support 16-bit (in addition to 24-bit audio) HenryAudio device worked fine with Sony Xperia.