On Mon, Aug 22, 2022 at 04:06:58PM +0800, chihhao chen wrote: > I am testing many headsets on Android platform with different kernel > versions. > > On kernel-5.10, calling sequence for playback is > 1. snd_usb_hw_params -> set highest sampling rate, no > SAMPLING_FREQ_CONTROL USB request sent in this stage > 2. snd_pcm_release > 3. snd_usb_hw_params -> set proper sampling rate, still no > SAMPLING_FREQ_CONTROL USB request > 4. snd_usb_pcm_parepare -> in configure_endpoint SAMPLING_FREQ_CONTROL > USB request was sent on USB bus > > With the same calling sequence, a slightly behavior change on kernel- > 5.15 is > 1. snd_usb_hw_params -> set highest sampling rate, > SAMPLING_FREQ_CONTROL USB request was sent on USB bus > 2. snd_pcm_release > 3. 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) > 4. 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 to forcibly skip first USB request, everything became okay.) > So do you guys know why configure_endpoint was moved to > snd_usb_hw_params? Hi Chihhao, the commit you're looking for is bf6313a0ff766925462e97b4e733d5952de02367 ("ALSA: usb-audio: Refactor endpoint management") Good luck, Geraldo Nascimento > Or could you provide patch for this problem? > > Many thanks > Chihhao >