Re: issue with jack detect using rt5645

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux