diff options
author | Charles Keepax <ckeepax@opensource.cirrus.com> | 2023-12-11 19:00:19 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2023-12-11 20:26:01 +0300 |
commit | bbbc18d8c27cc9d40cc9a3b03b61e4df85311146 (patch) | |
tree | b71366c40dab8498302d28fb9fdc83304ceace4a /sound/soc/codecs/cs42l43-jack.c | |
parent | 28b0b18d53469833bf513a87732c638775073ba4 (diff) | |
download | linux-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.c | 4 |
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); |