ASoC: cs42l43: Reset clamp override on jack removal
authorCharles Keepax <ckeepax@opensource.cirrus.com>
Wed, 9 Apr 2025 12:07:17 +0000 (13:07 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Apr 2025 08:45:40 +0000 (10:45 +0200)
[ Upstream commit 5fc7d2b5cab47f2ac712f689140b1fed978fb91c ]

Some of the manually selected jack configurations will disable the
headphone clamp override. Restore this on jack removal, such that
the state is consistent for a new insert.

Fixes: fc918cbe874e ("ASoC: cs42l43: Add support for the cs42l43")
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20250409120717.1294528-1-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/codecs/cs42l43-jack.c

index 9f5f1a92561d1ee3df8d79a467652f54e844c28e..0b8e88b19888ec36013f6ef47946a28a98f170a6 100644 (file)
@@ -690,6 +690,9 @@ static void cs42l43_clear_jack(struct cs42l43_codec *priv)
                           CS42L43_PGA_WIDESWING_MODE_EN_MASK, 0);
        regmap_update_bits(cs42l43->regmap, CS42L43_STEREO_MIC_CTRL,
                           CS42L43_JACK_STEREO_CONFIG_MASK, 0);
+       regmap_update_bits(cs42l43->regmap, CS42L43_STEREO_MIC_CLAMP_CTRL,
+                          CS42L43_SMIC_HPAMP_CLAMP_DIS_FRC_MASK,
+                          CS42L43_SMIC_HPAMP_CLAMP_DIS_FRC_MASK);
        regmap_update_bits(cs42l43->regmap, CS42L43_HS2,
                           CS42L43_HSDET_MODE_MASK | CS42L43_HSDET_MANUAL_MODE_MASK,
                           0x2 << CS42L43_HSDET_MODE_SHIFT);