[alsa-devel] issue with jack detect using rt5645
Jacob Rasmussen
jacobraz at google.com
Fri Nov 8 18:28:02 CET 2019
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?
More information about the Alsa-devel
mailing list