diff options
author | Takashi Iwai <tiwai@suse.de> | 2021-12-06 17:25:10 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2021-12-06 17:25:10 +0100 |
commit | 38ddfb2699d524b85929aa7da93bfc3a7f2c9275 (patch) | |
tree | 8c03696cd79f4a0c7f7e494dbf2be6313e248c7a /sound/soc/qcom/qdsp6/q6routing.c | |
parent | fb1af5bea4670c835e42fc0c14c49d3499468774 (diff) | |
parent | 3fc27e9a1f619b50700f020e6cd270c1b74755f0 (diff) |
Merge tag 'asoc-fix-v5.16-rc4' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v5.16
A relatively large collection of updates, the size is increased quite a
bit by there being some repetitive changes for similar issues that occur
multiple times with both notifying control value changes and runtime PM.
The Rockchip update looks at first glance like a cleanup but fixes
instantiation of the hardware on some systems.
Diffstat (limited to 'sound/soc/qcom/qdsp6/q6routing.c')
-rw-r--r-- | sound/soc/qcom/qdsp6/q6routing.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sound/soc/qcom/qdsp6/q6routing.c b/sound/soc/qcom/qdsp6/q6routing.c index cd74681e811e..928fd23e2c27 100644 --- a/sound/soc/qcom/qdsp6/q6routing.c +++ b/sound/soc/qcom/qdsp6/q6routing.c @@ -498,14 +498,16 @@ static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol, struct session_data *session = &data->sessions[session_id]; if (ucontrol->value.integer.value[0]) { + if (session->port_id == be_id) + return 0; + session->port_id = be_id; snd_soc_dapm_mixer_update_power(dapm, kcontrol, 1, update); } else { - if (session->port_id == be_id) { - session->port_id = -1; + if (session->port_id == -1 || session->port_id != be_id) return 0; - } + session->port_id = -1; snd_soc_dapm_mixer_update_power(dapm, kcontrol, 0, update); } |