summarylogtreecommitdiffstats
path: root/0011-ALSA-hda-cs35l41-Ensure-amp-is-only-unmuted-during-p.patch
diff options
context:
space:
mode:
Diffstat (limited to '0011-ALSA-hda-cs35l41-Ensure-amp-is-only-unmuted-during-p.patch')
-rw-r--r--0011-ALSA-hda-cs35l41-Ensure-amp-is-only-unmuted-during-p.patch73
1 files changed, 0 insertions, 73 deletions
diff --git a/0011-ALSA-hda-cs35l41-Ensure-amp-is-only-unmuted-during-p.patch b/0011-ALSA-hda-cs35l41-Ensure-amp-is-only-unmuted-during-p.patch
deleted file mode 100644
index 5049e3963a51..000000000000
--- a/0011-ALSA-hda-cs35l41-Ensure-amp-is-only-unmuted-during-p.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 6f1a7b41a626a567fcfe915e9dbe3aea34b6c3ec Mon Sep 17 00:00:00 2001
-From: Stefan Binding <sbinding@opensource.cirrus.com>
-Date: Fri, 21 Jul 2023 16:18:16 +0100
-Subject: [PATCH 11/11] ALSA: hda: cs35l41: Ensure amp is only unmuted during
- playback
-
-Currently we only mute after playback has finished, and unmute
-prior to setting global enable. To prevent any possible pops
-and clicks, mute at probe, and then only unmute after global
-enable is set.
-
-Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com>
----
- sound/pci/hda/cs35l41_hda.c | 22 ++++++++++++++++++++--
- 1 file changed, 20 insertions(+), 2 deletions(-)
-
-diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c
-index 175378cdf9df..98feb5ccd586 100644
---- a/sound/pci/hda/cs35l41_hda.c
-+++ b/sound/pci/hda/cs35l41_hda.c
-@@ -58,8 +58,6 @@ static const struct reg_sequence cs35l41_hda_config[] = {
- { CS35L41_DSP1_RX3_SRC, 0x00000018 }, // DSP1RX3 SRC = VMON
- { CS35L41_DSP1_RX4_SRC, 0x00000019 }, // DSP1RX4 SRC = IMON
- { CS35L41_DSP1_RX5_SRC, 0x00000020 }, // DSP1RX5 SRC = ERRVOL
-- { CS35L41_AMP_DIG_VOL_CTRL, 0x00008000 }, // AMP_HPF_PCM_EN = 1, AMP_VOL_PCM 0.0 dB
-- { CS35L41_AMP_GAIN_CTRL, 0x00000084 }, // AMP_GAIN_PCM 4.5 dB
- };
-
- static const struct reg_sequence cs35l41_hda_config_dsp[] = {
-@@ -82,6 +80,14 @@ static const struct reg_sequence cs35l41_hda_config_dsp[] = {
- { CS35L41_DSP1_RX3_SRC, 0x00000018 }, // DSP1RX3 SRC = VMON
- { CS35L41_DSP1_RX4_SRC, 0x00000019 }, // DSP1RX4 SRC = IMON
- { CS35L41_DSP1_RX5_SRC, 0x00000029 }, // DSP1RX5 SRC = VBSTMON
-+};
-+
-+static const struct reg_sequence cs35l41_hda_unmute[] = {
-+ { CS35L41_AMP_DIG_VOL_CTRL, 0x00008000 }, // AMP_HPF_PCM_EN = 1, AMP_VOL_PCM 0.0 dB
-+ { CS35L41_AMP_GAIN_CTRL, 0x00000084 }, // AMP_GAIN_PCM 4.5 dB
-+};
-+
-+static const struct reg_sequence cs35l41_hda_unmute_dsp[] = {
- { CS35L41_AMP_DIG_VOL_CTRL, 0x00008000 }, // AMP_HPF_PCM_EN = 1, AMP_VOL_PCM 0.0 dB
- { CS35L41_AMP_GAIN_CTRL, 0x00000233 }, // AMP_GAIN_PCM = 17.5dB AMP_GAIN_PDM = 19.5dB
- };
-@@ -522,6 +528,13 @@ static void cs35l41_hda_play_done(struct device *dev)
-
- cs35l41_global_enable(dev, reg, cs35l41->hw_cfg.bst_type, 1, NULL,
- cs35l41->firmware_running);
-+ if (cs35l41->firmware_running) {
-+ regmap_multi_reg_write(reg, cs35l41_hda_unmute_dsp,
-+ ARRAY_SIZE(cs35l41_hda_unmute_dsp));
-+ } else {
-+ regmap_multi_reg_write(reg, cs35l41_hda_unmute,
-+ ARRAY_SIZE(cs35l41_hda_unmute));
-+ }
- }
-
- static void cs35l41_hda_pause_start(struct device *dev)
-@@ -1616,6 +1629,11 @@ int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int i
- if (ret)
- goto err;
-
-+ ret = regmap_multi_reg_write(cs35l41->regmap, cs35l41_hda_mute,
-+ ARRAY_SIZE(cs35l41_hda_mute));
-+ if (ret)
-+ goto err;
-+
- INIT_WORK(&cs35l41->fw_load_work, cs35l41_fw_load_work);
- mutex_init(&cs35l41->fw_mutex);
-
---
-2.41.0
-