summaryrefslogtreecommitdiff
path: root/sound/soc/codecs/cs42l43-jack.c
diff options
context:
space:
mode:
authorCharles Keepax <ckeepax@opensource.cirrus.com>2023-12-11 19:00:19 +0300
committerMark Brown <broonie@kernel.org>2023-12-11 20:26:01 +0300
commitbbbc18d8c27cc9d40cc9a3b03b61e4df85311146 (patch)
treeb71366c40dab8498302d28fb9fdc83304ceace4a /sound/soc/codecs/cs42l43-jack.c
parent28b0b18d53469833bf513a87732c638775073ba4 (diff)
downloadlinux-bbbc18d8c27cc9d40cc9a3b03b61e4df85311146.tar.xz
ASoC: cs42l43: Allow HP amp to cool off after current limit
Whilst occasional current limiting is fine, constant current limiting should be avoided. Add a back off system that will disable the headphone amp, if a lot of current limiting is seen in a short window of time. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://msgid.link/r/20231211160019.2034442-2-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/cs42l43-jack.c')
-rw-r--r--sound/soc/codecs/cs42l43-jack.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sound/soc/codecs/cs42l43-jack.c b/sound/soc/codecs/cs42l43-jack.c
index 73454de068cf..929497edb83d 100644
--- a/sound/soc/codecs/cs42l43-jack.c
+++ b/sound/soc/codecs/cs42l43-jack.c
@@ -506,7 +506,7 @@ static void cs42l43_start_load_detect(struct cs42l43_codec *priv)
priv->load_detect_running = true;
- if (priv->hp_ena) {
+ if (priv->hp_ena && !priv->hp_ilimited) {
unsigned long time_left;
reinit_completion(&priv->hp_shutdown);
@@ -571,7 +571,7 @@ static void cs42l43_stop_load_detect(struct cs42l43_codec *priv)
CS42L43_ADC1_EN_MASK | CS42L43_ADC2_EN_MASK,
priv->adc_ena);
- if (priv->hp_ena) {
+ if (priv->hp_ena && !priv->hp_ilimited) {
unsigned long time_left;
reinit_completion(&priv->hp_startup);