[PATCH] ALSA: hda/realtek: add more delay time before determine_headset_type

Hui Wang hui.wang at canonical.com
Fri Mar 19 08:54:46 CET 2021


Will send the v2 patch, in the v2, only extend the delay time for a 
specific codec series instead of all codec series, and the delay time is 
not two seconds, it is only 850ms.

And we found another issue about update_headset_mode() today, will send 
the fix in the v2 too.

Thanks.

Hui.

On 3/17/21 10:15 AM, Hui Wang wrote:
>
> On 3/16/21 10:17 PM, Takashi Iwai wrote:
>> On Tue, 16 Mar 2021 12:55:49 +0100,
>> Hui Wang wrote:
>>> We found a recording issue on the headset-mic recently, sometimes
>>> users plug a headset and select headset-mic from UI, but can't record
>>> any sound from headset-mic. The root cause is the
>>> determine_headset_type() returns a wrong type, e.g. users plug a ctia
>>> type headset, but that function returns omtp type.
>>>
>>> In the past, determine_headset_type() worked well because the internal
>>> mic is connected to the codec, so the "Input Source" or
>>> "Capture Source" is internal mic by default when users plug a headset,
>>> the determine_headset_type() will not be called unless users select
>>> headset-mic from UI, when users select headset-mic, the plugging
>>> action already finished and the headset is completely plugged into the
>>> jack, so determine_headset_type() could return a correct type.
>>>
>>> But more and more machines connect the internal mic to the PCH now,
>>> and the "Input Source" is headset mic by default, when users plug a
>>> headset, the determine_headset_type() will be called immediately, if
>>> the headset is not completely plugged in, it will return a wrong type.
>>>
>>> Here add 2s delay before calling determine_headset_type(), and since
>>> there is a pop-up dialogue when users do plugging action, to avoid
>>> freezing the UI, use the deleyed_work to call that function.
>> Hm, two seconds are quite long, IMHO.  How is this delay determined?
>>
>>
>> Takashi
>
> Two seconds delay is for a latest Dell AIO machine, and this issue is 
> exposed on that machine. The audio jack is designed to the left side 
> of that AIO machine, users need to use left hand to plug a headset, 
> and since it is an AIO, it is similar to plug sth to the left side on 
> a monitor, users usually don't use the great force to plug otherwise 
> they could introduce the movement of monitor; sometimes they use left 
> hand to plug a headset, the headset is not 100% plugged in, meanwhile 
> they need to put the right hand to the right side of the monitor to 
> fix the monitor. All these actions make the plugging not finished as 
> fast as on laptops or normal desktops. Our QA tested different delays, 
> it has a pretty good chance to return the correct type after adding 
> two seconds delay on that AIO machine. And I guess all Dell AIO 
> machines will face the same issue since they all have multi-function 
> audio jack.
>
>
> And I did a test on some Dell laptops, on which the internal mic 
> connects to the PCH, if I plug the headset a bit slower than normal 
> speed on purpose, the determine_headset_type() has some chance to 
> return the wrong type and make the headset-mic can't record sound. 
> Adding two seconds delay could make them work more stable.
>
>
> Thanks,
>
> Hui.
>
>


More information about the Alsa-devel mailing list