Patch "ASoC: qdsp6: q6routing: Conditionally reset FrontEnd Mixer" has been added to the 4.19-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ASoC: qdsp6: q6routing: Conditionally reset FrontEnd Mixer

to the 4.19-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     asoc-qdsp6-q6routing-conditionally-reset-frontend-mi.patch
and it can be found in the queue-4.19 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 9f1b7a9824a207f344e8f76d731fb1f54843535b
Author: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
Date:   Tue Nov 16 11:47:18 2021 +0000

    ASoC: qdsp6: q6routing: Conditionally reset FrontEnd Mixer
    
    [ Upstream commit 861afeac7990587588d057b2c0b3222331c3da29 ]
    
    Stream IDs are reused across multiple BackEnd mixers, do not reset the
    stream mixers if they are not already set for that particular FrontEnd.
    
    Ex:
    amixer cset iface=MIXER,name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1
    
    would set the MultiMedia1 steam for SLIMBUS_0_RX, however doing below
    command will reset previously setup MultiMedia1 stream, because both of them
    are using MultiMedia1 PCM stream.
    
    amixer cset iface=MIXER,name='SLIMBUS_2_RX Audio Mixer MultiMedia1' 0
    
    reset the FrontEnd Mixers conditionally to fix this issue.
    
    This is more noticeable in desktop setup, where in alsactl tries to restore
    the alsa state and overwriting the previous mixer settings.
    
    Fixes: e3a33673e845 ("ASoC: qdsp6: q6routing: Add q6routing driver")
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20211116114721.12517-3-srinivas.kandagatla@xxxxxxxxxx
    Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/sound/soc/qcom/qdsp6/q6routing.c b/sound/soc/qcom/qdsp6/q6routing.c
index 44eee18c658ae..7d2c5de380317 100644
--- a/sound/soc/qcom/qdsp6/q6routing.c
+++ b/sound/soc/qcom/qdsp6/q6routing.c
@@ -443,7 +443,11 @@ static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
 		session->port_id = be_id;
 		snd_soc_dapm_mixer_update_power(dapm, kcontrol, 1, update);
 	} else {
-		session->port_id = -1;
+		if (session->port_id == be_id) {
+			session->port_id = -1;
+			return 0;
+		}
+
 		snd_soc_dapm_mixer_update_power(dapm, kcontrol, 0, update);
 	}
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux