]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.5-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Apr 2020 08:38:13 +0000 (10:38 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Apr 2020 08:38:13 +0000 (10:38 +0200)
added patches:
asoc-dapm-connect-virtual-mux-with-default-value.patch
asoc-dpcm-allow-start-or-stop-during-pause-for-backend.patch
asoc-fix-regwmask.patch
asoc-topology-use-name_prefix-for-new-kcontrol.patch

queue-5.5/asoc-dapm-connect-virtual-mux-with-default-value.patch [new file with mode: 0644]
queue-5.5/asoc-dpcm-allow-start-or-stop-during-pause-for-backend.patch [new file with mode: 0644]
queue-5.5/asoc-fix-regwmask.patch [new file with mode: 0644]
queue-5.5/asoc-topology-use-name_prefix-for-new-kcontrol.patch [new file with mode: 0644]
queue-5.5/series

diff --git a/queue-5.5/asoc-dapm-connect-virtual-mux-with-default-value.patch b/queue-5.5/asoc-dapm-connect-virtual-mux-with-default-value.patch
new file mode 100644 (file)
index 0000000..a32755f
--- /dev/null
@@ -0,0 +1,44 @@
+From 3bbbb7728fc853d71dbce4073fef9f281fbfb4dd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=EC=9D=B4=EA=B2=BD=ED=83=9D?= <gt82.lee@samsung.com>
+Date: Tue, 31 Mar 2020 16:55:16 +0900
+Subject: ASoC: dapm: connect virtual mux with default value
+
+From: 이경택 <gt82.lee@samsung.com>
+
+commit 3bbbb7728fc853d71dbce4073fef9f281fbfb4dd upstream.
+
+Since a virtual mixer has no backing registers
+to decide which path to connect,
+it will try to match with initial state.
+This is to ensure that the default mixer choice will be
+correctly powered up during initialization.
+Invert flag is used to select initial state of the virtual switch.
+Since actual hardware can't be disconnected by virtual switch,
+connected is better choice as initial state in many cases.
+
+Signed-off-by: Gyeongtaek Lee <gt82.lee@samsung.com>
+Link: https://lore.kernel.org/r/01a301d60731$b724ea10$256ebe30$@samsung.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/soc-dapm.c |    8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+--- a/sound/soc/soc-dapm.c
++++ b/sound/soc/soc-dapm.c
+@@ -802,7 +802,13 @@ static void dapm_set_mixer_path_status(s
+                       val = max - val;
+               p->connect = !!val;
+       } else {
+-              p->connect = 0;
++              /* since a virtual mixer has no backing registers to
++               * decide which path to connect, it will try to match
++               * with initial state.  This is to ensure
++               * that the default mixer choice will be
++               * correctly powered up during initialization.
++               */
++              p->connect = invert;
+       }
+ }
diff --git a/queue-5.5/asoc-dpcm-allow-start-or-stop-during-pause-for-backend.patch b/queue-5.5/asoc-dpcm-allow-start-or-stop-during-pause-for-backend.patch
new file mode 100644 (file)
index 0000000..4b3bc29
--- /dev/null
@@ -0,0 +1,49 @@
+From 21fca8bdbb64df1297e8c65a746c4c9f4a689751 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=EC=9D=B4=EA=B2=BD=ED=83=9D?= <gt82.lee@samsung.com>
+Date: Wed, 1 Apr 2020 10:04:21 +0900
+Subject: ASoC: dpcm: allow start or stop during pause for backend
+
+From: 이경택 <gt82.lee@samsung.com>
+
+commit 21fca8bdbb64df1297e8c65a746c4c9f4a689751 upstream.
+
+soc_compr_trigger_fe() allows start or stop after pause_push.
+In dpcm_be_dai_trigger(), however, only pause_release is allowed
+command after pause_push.
+So, start or stop after pause in compress offload is always
+returned as error if the compress offload is used with dpcm.
+To fix the problem, SND_SOC_DPCM_STATE_PAUSED should be allowed
+for start or stop command.
+
+Signed-off-by: Gyeongtaek Lee <gt82.lee@samsung.com>
+Reviewed-by: Vinod Koul <vkoul@kernel.org>
+Link: https://lore.kernel.org/r/004d01d607c1$7a3d5250$6eb7f6f0$@samsung.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/soc-pcm.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/sound/soc/soc-pcm.c
++++ b/sound/soc/soc-pcm.c
+@@ -2256,7 +2256,8 @@ int dpcm_be_dai_trigger(struct snd_soc_p
+               switch (cmd) {
+               case SNDRV_PCM_TRIGGER_START:
+                       if ((be->dpcm[stream].state != SND_SOC_DPCM_STATE_PREPARE) &&
+-                          (be->dpcm[stream].state != SND_SOC_DPCM_STATE_STOP))
++                          (be->dpcm[stream].state != SND_SOC_DPCM_STATE_STOP) &&
++                          (be->dpcm[stream].state != SND_SOC_DPCM_STATE_PAUSED))
+                               continue;
+                       ret = dpcm_do_trigger(dpcm, be_substream, cmd);
+@@ -2286,7 +2287,8 @@ int dpcm_be_dai_trigger(struct snd_soc_p
+                       be->dpcm[stream].state = SND_SOC_DPCM_STATE_START;
+                       break;
+               case SNDRV_PCM_TRIGGER_STOP:
+-                      if (be->dpcm[stream].state != SND_SOC_DPCM_STATE_START)
++                      if ((be->dpcm[stream].state != SND_SOC_DPCM_STATE_START) &&
++                          (be->dpcm[stream].state != SND_SOC_DPCM_STATE_PAUSED))
+                               continue;
+                       if (!snd_soc_dpcm_can_be_free_stop(fe, be, stream))
diff --git a/queue-5.5/asoc-fix-regwmask.patch b/queue-5.5/asoc-fix-regwmask.patch
new file mode 100644 (file)
index 0000000..856cee6
--- /dev/null
@@ -0,0 +1,43 @@
+From 0ab070917afdc93670c2d0ea02ab6defb6246a7c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=EC=9D=B4=EA=B2=BD=ED=83=9D?= <gt82.lee@samsung.com>
+Date: Mon, 30 Mar 2020 16:35:59 +0900
+Subject: ASoC: fix regwmask
+
+From: 이경택 <gt82.lee@samsung.com>
+
+commit 0ab070917afdc93670c2d0ea02ab6defb6246a7c upstream.
+
+If regwshift is 32 and the selected architecture compiles '<<' operator
+for signed int literal into rotating shift, '1<<regwshift' became 1 and
+it makes regwmask to 0x0.
+The literal is set to unsigned long to get intended regwmask.
+
+Signed-off-by: Gyeongtaek Lee <gt82.lee@samsung.com>
+Link: https://lore.kernel.org/r/001001d60665$db7af3e0$9270dba0$@samsung.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/soc-ops.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/sound/soc/soc-ops.c
++++ b/sound/soc/soc-ops.c
+@@ -825,7 +825,7 @@ int snd_soc_get_xr_sx(struct snd_kcontro
+       unsigned int regbase = mc->regbase;
+       unsigned int regcount = mc->regcount;
+       unsigned int regwshift = component->val_bytes * BITS_PER_BYTE;
+-      unsigned int regwmask = (1<<regwshift)-1;
++      unsigned int regwmask = (1UL<<regwshift)-1;
+       unsigned int invert = mc->invert;
+       unsigned long mask = (1UL<<mc->nbits)-1;
+       long min = mc->min;
+@@ -874,7 +874,7 @@ int snd_soc_put_xr_sx(struct snd_kcontro
+       unsigned int regbase = mc->regbase;
+       unsigned int regcount = mc->regcount;
+       unsigned int regwshift = component->val_bytes * BITS_PER_BYTE;
+-      unsigned int regwmask = (1<<regwshift)-1;
++      unsigned int regwmask = (1UL<<regwshift)-1;
+       unsigned int invert = mc->invert;
+       unsigned long mask = (1UL<<mc->nbits)-1;
+       long max = mc->max;
diff --git a/queue-5.5/asoc-topology-use-name_prefix-for-new-kcontrol.patch b/queue-5.5/asoc-topology-use-name_prefix-for-new-kcontrol.patch
new file mode 100644 (file)
index 0000000..980b2c1
--- /dev/null
@@ -0,0 +1,31 @@
+From abca9e4a04fbe9c6df4d48ca7517e1611812af25 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=EC=9D=B4=EA=B2=BD=ED=83=9D?= <gt82.lee@samsung.com>
+Date: Wed, 1 Apr 2020 18:05:24 +0900
+Subject: ASoC: topology: use name_prefix for new kcontrol
+
+From: 이경택 <gt82.lee@samsung.com>
+
+commit abca9e4a04fbe9c6df4d48ca7517e1611812af25 upstream.
+
+Current topology doesn't add prefix of component to new kcontrol.
+
+Signed-off-by: Gyeongtaek Lee <gt82.lee@samsung.com>
+Link: https://lore.kernel.org/r/009b01d60804$ae25c2d0$0a714870$@samsung.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/soc-topology.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/soc/soc-topology.c
++++ b/sound/soc/soc-topology.c
+@@ -362,7 +362,7 @@ static int soc_tplg_add_kcontrol(struct
+       struct snd_soc_component *comp = tplg->comp;
+       return soc_tplg_add_dcontrol(comp->card->snd_card,
+-                              comp->dev, k, NULL, comp, kcontrol);
++                              comp->dev, k, comp->name_prefix, comp, kcontrol);
+ }
+ /* remove a mixer kcontrol */
index 516dd3295c980ed9ba30741129706fdb7a6e1901..d01e2f6bb8ffb48fcafc066b925c4f886cf74984 100644 (file)
@@ -78,3 +78,7 @@ btrfs-qgroup-ensure-qgroup_rescan_running-is-only-se.patch
 btrfs-remove-a-bug_on-from-merge_reloc_roots.patch
 btrfs-restart-relocate_tree_blocks-properly.patch
 btrfs-track-reloc-roots-based-on-their-commit-root-b.patch
+asoc-fix-regwmask.patch
+asoc-dapm-connect-virtual-mux-with-default-value.patch
+asoc-dpcm-allow-start-or-stop-during-pause-for-backend.patch
+asoc-topology-use-name_prefix-for-new-kcontrol.patch