[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