the Hikey960 board has 1024 samples for the audio period size (buffer size): https://android.googlesource.com/device/linaro/hikey/+/master/audio/audio_hw.c
Despite the comment in the source, it’s far from low latency.
I tried changing that value to 240. ALSA happily accepts and confirms it, Android operates well with it. However, the hardware operates with 1024 still, so the audio is garbage.
I also have a Mate 9 phone with the same Kirin chip. It operates with 960 samples for the audio period size. Changing that to 240 has the same behavior, the hardware sticks to the original number of 960.
So it seems like that ALSA has no authority to change the true hardware buffer size, despite of on many other systems it does. I wonder where the true audio hardware period size can be changed?