[<prev] [next>] [day] [month] [year] [list]
Message-ID: <CABTNMG2ipP4m4T084QRrHMLL_cGfyVdb_dBNf_E8pruMSDRHJQ@mail.gmail.com>
Date: Wed, 13 Oct 2021 18:01:07 +0800
From: Chris Chiu <chris.chiu@...onical.com>
To: pierre-louis.bossart@...ux.intel.com, broonie@...nel.org,
rander.wang@...ux.intel.com, yung-chuan.liao@...ux.intel.com,
liam.r.girdwood@...ux.intel.com, yang.jie@...ux.intel.com
Cc: alsa-devel@...a-project.org,
Linux Kernel <linux-kernel@...r.kernel.org>
Subject: The default jack detection type overridden by sof_sdw_quirk
Hi,
I have an Intel AlderLake machine which uses the sof-soundwire
driver for audio functions. When the headset is plugged in, it will
incorrectly trigger the event KEY_PLAYPAUSE and never stops. To fix
the problem, I used to apply the quirk RT711_JD2 proposed in
sound/soc/intel/boards/sof_sdw.c and the jack detect function will
work as expected.
However, when I look into the code of sound/soc/codecs/rt711.c and
rt711-sdca.c, the default value for jd_src
(https://github.com/torvalds/linux/blob/master/sound/soc/codecs/rt711.c#L1209)
is already RT711_JD2, which means it is overridden by other drivers.
After digging deeper, the jd_src value is overridden by
rt711_add_codec_device_props() with the value RT711_JD1 comes from
sof_sdw_quirk.
Is there any reason why sof_sdw_quirk is assigned with RT711_JD1
by default? Can I simply fix it by assigning the sof_sdw_quirk to
RT711_JD_NULL as follows?
-unsigned long sof_sdw_quirk = RT711_JD1;
+unsigned long sof_sdw_quirk = RT711_JD_NULL;
Please let me know if there's any potential problem I didn't
notice and suggest if there's any better solution. Thanks
Chris
Powered by blists - more mailing lists