[alsa-devel] issue with jack detect using rt5645

Hans de Goede hdegoede at redhat.com
Fri Nov 8 23:51:46 CET 2019


Hi,

On 08-11-2019 18:28, Jacob Rasmussen wrote:
> Hello Hans,
> 
> On Fri, Nov 8, 2019 at 6:16 AM Hans de Goede <hdegoede at redhat.com> wrote:
>>
>> Hi Ross,
>>
>> On 11/7/19 11:31 PM, Ross Zwisler wrote:
>>> We are trying to get a piece of Google hardware which uses the rt5645
>>> driver working correctly with newer kernels (currently one based on
>>> the latest v4.14 stable), and noticed that the following commit:
>>>
>>> commit 6b5da66322c5 ("ASoC: rt5645: read jd1_1 status for jd detection")
>>>
>>> broke jack support for our device.  Basically with that patch we never
>>> correctly see a jack insertion event, and audio is never routed to the
>>> headphones.
>>>
>>> With just that one patch reverted, things work correctly on our
>>> system.  The revert applies cleanly to linus/master.
>>>
>>> Here is the series where that patch was originally upstreamed:
>>>
>>> https://www.spinics.net/lists/alsa-devel/msg64331.html
>>>
>>> If we reverted that patch upstream, would it break other devices (the
>>> "GDP Win" device?) that use the rt5645 driver?
>>
>> Yes likely it will, the commit in question was added to fix jd
>> issue in the GDP win and other Cherry Trail devices using
>> standard Intel reference designs.
>>
>>> If so, how would you
>>> recommend proceeding?
>>>
>>> Does anyone have one of the "GDP Win" devices so we can test that and
>>> our device and make sure whatever solution we end up coming up with
>>> works for everyone?
>>
>> I have acccess to the following devices with a rt5645 codec:
>>
>>
>> rt5645:         Spk     Mic     JDmod   UCM
>> -Acer One S1003 stereo  ana     3       chtrt5645
>> -Asus T100HA    stereo  dmic1   3 inv   custom
>> -GPD Pocket     mono    diff    3 inv   chtrt5645-mono-speaker-analog-mic
>> -GPD win        mono    ana     3 inv   chtrt5645-mono-speaker-analog-mic
>> -Kazam Vision   stereo  ana     3       chtrt5645
>> -Lenovo Miix310 stereo  diff    3       chtrt5645
>> -Lenovo Miix320 stereo  dmic2   3       custom
>> -Teclast X80Pro mono    ana     3       chtrt5645-mono-speaker-analog-mic
>>
>> Which all work fine with the current code, have you tried all the
>> different jdmode values through the quirk moodule param?
> 
> I've tried setting jdmode to 0-7 through the quirk module param but
> none of them fixed the problem.
> 
>> If Playing with the quirk settings does not help, then I believe that
>> the best approach to fix this is to figure out which bit of the
>> pre 6b5da66322c5 behavior you need and to activate this behind a new
>> quirk option and set that quirk for the system in question.
>>
> 
> The part of pre 6b5da66322c5 behavior we need is which register is
> being read from to set val in jack_detect_work(). It looks like all
> the other devices that use this codec have jd_mode = 3, so I was
> thinking we could set buddy's jd_mode to something else and read from
> the old register if jd_mode is that something else. Does that seem
> reasonable?

The QUIRK_JD_MODE macro supports jd_mode 0-7 and we are currently
only using 0-3, so if you call this say mode 4 then yes that sounds
reasonable.

Regards,

Hans



More information about the Alsa-devel mailing list