Hi Takashi, Yes. To issue SAMPLING_FREQ_CONTROL USB request two times is root cause of this issue. K5.15 new behavior snd_usb_hw_params -> configure_endpoints() -> issue SAMPLING_FREQ_CONTROL USB request Thanks On Mon, 2022-08-29 at 10:06 +0200, Takashi Iwai wrote: > On Mon, 29 Aug 2022 09:56:42 +0200, > chihhao chen wrote: > > > > Hi Takashi, > > > > Because of this problem, is it okay to remove configure_endpoints > > function call in snd_usb_hw_params? > > > > Then configure_endpoints would be called in snd_usb_pcm_prepare and > > USB > > control transfers become the same as which in kernel-5.10. There > > will > > be only one SAMPLING_FREQ_CONTROL request and no sound-missing > > phenomenon. > > Are you sure that removing the configure_endpoints() fixes the > problem? > > > Takashi > > > > > Thanks > > > > > > On Mon, 2022-08-22 at 08:57 -0300, Geraldo Nascimento wrote: > > > 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 > > > >