alsa-project / alsa-lib

The Advanced Linux Sound Architecture (ALSA) - library
GNU Lesser General Public License v2.1
357 stars 176 forks source link

missing sound on kernel-5.15 #264

Closed chihhao-chen closed 2 years ago

chihhao-chen commented 2 years ago

I am testing many types of headsets on Android platform with different kernel versions.

On kernel-5.10, calling sequence before playback is snd_usb_hw_params -> set highest sampling rate, no SAMPLING_FREQ_CONTROL USB request in this stage snd_pcm_release snd_usb_hw_params -> set proper sampling rate, still no SAMPLING_FREQ_CONTROL USB request snd_usb_pcm_parepare -> in configure_endpoint SAMPLING_FREQ_CONTROL USB request was sent

With the same calling sequence, a slightly behavior change on kernel-5.15 is snd_usb_hw_params -> set highest sampling rate, SAMPLING_FREQ_CONTROL USB request was sent snd_pcm_release snd_usb_hw_params -> set proper sampling rate, SAMPLING_FREQ_CONTROL USB request was sent too (because configure_endpoint was moved to snd_usb_hw_params function) snd_usb_pcm_parepare -> no SAMPLING_FREQ_CONTROL USB request because of USB EP flag check

I checked all USB packets and confirmed audio data output was correct. But there may be missing sound problem for the first sound with many headsets (for example Samsung headset). I found this issue is related to two-times sampling rate set request. (I tried forcibly skip first USB request, everything became okay.) So do you guys know why configure_endpoint was moved to snd_usb_hw_params? Or could you provide patch for this problem?

Many thanks Chihhao

perexg commented 2 years ago

The kernel issues should be entered to the kernel's bugzilla - https://bugzilla.kernel.org (Audio group). If you like to discuss something , we have alsa-devel mailing list: https://www.alsa-project.org/main/index.php?title=Mailing-lists