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@xxxxxxxxxx> 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
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel