+++ /dev/null
-From fd62d604c951959773031004e5447146abc041c9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 21 Apr 2022 17:57:24 +0200
-Subject: ASoC: meson: axg-tdm-interface: Fix formatters in trigger"
-
-From: Neil Armstrong <narmstrong@baylibre.com>
-
-[ Upstream commit c26830b6c5c534d273ce007eb33d5a2d2ad4e969 ]
-
-This reverts commit bf5e4887eeddb48480568466536aa08ec7f179a5 because
-the following and required commit e138233e56e9829e65b6293887063a1a3ccb2d68
-causes the following system crash when using audio:
- BUG: sleeping function called from invalid context at kernel/locking/mutex.c:282
-
-Fixes: bf5e4887eeddb4848056846 ("ASoC: meson: axg-tdm-interface: manage formatters in trigger")
-Reported-by: Dmitry Shmidt <dimitrysh@google.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Acked-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20220421155725.2589089-1-narmstrong@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-tdm-interface.c | 26 +++++---------------------
- 1 file changed, 5 insertions(+), 21 deletions(-)
-
-diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c
-index 05d63cd7ac8ba..2a7ea41fc49e5 100644
---- a/sound/soc/meson/axg-tdm-interface.c
-+++ b/sound/soc/meson/axg-tdm-interface.c
-@@ -343,29 +343,13 @@ static int axg_tdm_iface_hw_free(struct snd_pcm_substream *substream,
- return 0;
- }
-
--static int axg_tdm_iface_trigger(struct snd_pcm_substream *substream,
-- int cmd,
-+static int axg_tdm_iface_prepare(struct snd_pcm_substream *substream,
- struct snd_soc_dai *dai)
- {
-- struct axg_tdm_stream *ts =
-- snd_soc_dai_get_dma_data(dai, substream);
--
-- switch (cmd) {
-- case SNDRV_PCM_TRIGGER_START:
-- case SNDRV_PCM_TRIGGER_RESUME:
-- case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-- axg_tdm_stream_start(ts);
-- break;
-- case SNDRV_PCM_TRIGGER_SUSPEND:
-- case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-- case SNDRV_PCM_TRIGGER_STOP:
-- axg_tdm_stream_stop(ts);
-- break;
-- default:
-- return -EINVAL;
-- }
-+ struct axg_tdm_stream *ts = snd_soc_dai_get_dma_data(dai, substream);
-
-- return 0;
-+ /* Force all attached formatters to update */
-+ return axg_tdm_stream_reset(ts);
- }
-
- static int axg_tdm_iface_remove_dai(struct snd_soc_dai *dai)
-@@ -405,8 +389,8 @@ static const struct snd_soc_dai_ops axg_tdm_iface_ops = {
- .set_fmt = axg_tdm_iface_set_fmt,
- .startup = axg_tdm_iface_startup,
- .hw_params = axg_tdm_iface_hw_params,
-+ .prepare = axg_tdm_iface_prepare,
- .hw_free = axg_tdm_iface_hw_free,
-- .trigger = axg_tdm_iface_trigger,
- };
-
- /* TDM Backend DAIs */
---
-2.43.0
-
+++ /dev/null
-From 0e7fe499b43e8f378c3a0adf2ebbb4fc91c18a20 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 20 Oct 2021 13:42:17 +0200
-Subject: ASoC: meson: axg-tdm-interface: manage formatters in trigger
-
-From: Jerome Brunet <jbrunet@baylibre.com>
-
-[ Upstream commit bf5e4887eeddb48480568466536aa08ec7f179a5 ]
-
-So far, the formatters have been reset/enabled using the .prepare()
-callback. This was done in this callback because walking the formatters use
-a mutex so it could not be done in .trigger(), which is atomic by default.
-
-It turns out there is a problem on capture path of the AXG series.
-The FIFO may get out of sync with the TDM decoder if the IP are not enabled
-in a specific order. The FIFO must be enabled before the formatter starts
-producing data. IOW, we must deal with FE before the BE. The .prepare()
-callback is called on the BEs before the FE so it is not OK for the AXG.
-
-The .trigger() callback order can be configured, and it deals with the FE
-before the BEs by default. To solve our problem, we just need to start and
-stop the formatters from the .trigger() callback. It is OK do so now that
-the links have been made 'nonatomic' in the card driver.
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20211020114217.133153-3-jbrunet@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-tdm-interface.c | 26 +++++++++++++++++++++-----
- 1 file changed, 21 insertions(+), 5 deletions(-)
-
-diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c
-index 2a7ea41fc49e5..05d63cd7ac8ba 100644
---- a/sound/soc/meson/axg-tdm-interface.c
-+++ b/sound/soc/meson/axg-tdm-interface.c
-@@ -343,13 +343,29 @@ static int axg_tdm_iface_hw_free(struct snd_pcm_substream *substream,
- return 0;
- }
-
--static int axg_tdm_iface_prepare(struct snd_pcm_substream *substream,
-+static int axg_tdm_iface_trigger(struct snd_pcm_substream *substream,
-+ int cmd,
- struct snd_soc_dai *dai)
- {
-- struct axg_tdm_stream *ts = snd_soc_dai_get_dma_data(dai, substream);
-+ struct axg_tdm_stream *ts =
-+ snd_soc_dai_get_dma_data(dai, substream);
-+
-+ switch (cmd) {
-+ case SNDRV_PCM_TRIGGER_START:
-+ case SNDRV_PCM_TRIGGER_RESUME:
-+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-+ axg_tdm_stream_start(ts);
-+ break;
-+ case SNDRV_PCM_TRIGGER_SUSPEND:
-+ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-+ case SNDRV_PCM_TRIGGER_STOP:
-+ axg_tdm_stream_stop(ts);
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-
-- /* Force all attached formatters to update */
-- return axg_tdm_stream_reset(ts);
-+ return 0;
- }
-
- static int axg_tdm_iface_remove_dai(struct snd_soc_dai *dai)
-@@ -389,8 +405,8 @@ static const struct snd_soc_dai_ops axg_tdm_iface_ops = {
- .set_fmt = axg_tdm_iface_set_fmt,
- .startup = axg_tdm_iface_startup,
- .hw_params = axg_tdm_iface_hw_params,
-- .prepare = axg_tdm_iface_prepare,
- .hw_free = axg_tdm_iface_hw_free,
-+ .trigger = axg_tdm_iface_trigger,
- };
-
- /* TDM Backend DAIs */
---
-2.43.0
-
bna-ensure-the-copied-buf-is-nul-terminated.patch
nsh-restore-skb-protocol-data-mac_header-for-outer-h.patch
net-l2tp-drop-flow-hash-on-forward.patch
-asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch
net-dsa-mv88e6xxx-add-number-of-macs-in-the-atu.patch
net-dsa-mv88e6xxx-fix-number-of-databases-for-88e614.patch
net-bridge-fix-multicast-to-unicast-with-fraglist-gs.patch
gpio-crystalcove-use-enotsupp-consistently.patch
fs-9p-drop-inodes-immediately-on-non-.l-too.patch
net-usb-qmi_wwan-support-rolling-modules.patch
-asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch
tcp-remove-redundant-check-on-tskb.patch
tcp-defer-shutdown-send_shutdown-for-tcp_syn_recv-so.patch
tcp-use-refcount_inc_not_zero-in-tcp_twsk_unique.patch
+++ /dev/null
-From 657196199cee56dfe4fdfa5ead06d439b1d19e39 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 21 Apr 2022 17:57:25 +0200
-Subject: ASoC: meson: axg-card: Fix nonatomic links
-
-From: Neil Armstrong <narmstrong@baylibre.com>
-
-[ Upstream commit 0c9b152c72e53016e96593bdbb8cffe2176694b9 ]
-
-This commit e138233e56e9829e65b6293887063a1a3ccb2d68 causes the
-following system crash when using audio on G12A/G12B & SM1 systems:
-
- BUG: sleeping function called from invalid context at kernel/locking/mutex.c:282
- in_atomic(): 1, irqs_disabled(): 128, non_block: 0, pid: 0, name: swapper/0
- preempt_count: 10001, expected: 0
- RCU nest depth: 0, expected: 0
- Preemption disabled at:
- schedule_preempt_disabled+0x20/0x2c
-
- mutex_lock+0x24/0x60
- _snd_pcm_stream_lock_irqsave+0x20/0x3c
- snd_pcm_period_elapsed+0x24/0xa4
- axg_fifo_pcm_irq_block+0x64/0xdc
- __handle_irq_event_percpu+0x104/0x264
- handle_irq_event+0x48/0xb4
- ...
- start_kernel+0x3f0/0x484
- __primary_switched+0xc0/0xc8
-
-Revert this commit until the crash is fixed.
-
-Fixes: e138233e56e9829e65b6 ("ASoC: meson: axg-card: make links nonatomic")
-Reported-by: Dmitry Shmidt <dimitrysh@google.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Acked-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20220421155725.2589089-2-narmstrong@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-card.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c
-index cbbaa55d92a66..2b77010c2c5ce 100644
---- a/sound/soc/meson/axg-card.c
-+++ b/sound/soc/meson/axg-card.c
-@@ -320,7 +320,6 @@ static int axg_card_add_link(struct snd_soc_card *card, struct device_node *np,
-
- dai_link->cpus = cpu;
- dai_link->num_cpus = 1;
-- dai_link->nonatomic = true;
-
- ret = meson_card_parse_dai(card, np, &dai_link->cpus->of_node,
- &dai_link->cpus->dai_name);
---
-2.43.0
-
+++ /dev/null
-From bad1b472293169ece1716e3a5b2630945e6331ef Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 20 Oct 2021 13:42:16 +0200
-Subject: ASoC: meson: axg-card: make links nonatomic
-
-From: Jerome Brunet <jbrunet@baylibre.com>
-
-[ Upstream commit e138233e56e9829e65b6293887063a1a3ccb2d68 ]
-
-Non atomic operations need to be performed in the trigger callback
-of the TDM interfaces. Those are BEs but what matters is the nonatomic
-flag of the FE in the DPCM context. Just set nonatomic for everything so,
-at least, it is clear.
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20211020114217.133153-2-jbrunet@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-card.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c
-index 2b77010c2c5ce..cbbaa55d92a66 100644
---- a/sound/soc/meson/axg-card.c
-+++ b/sound/soc/meson/axg-card.c
-@@ -320,6 +320,7 @@ static int axg_card_add_link(struct snd_soc_card *card, struct device_node *np,
-
- dai_link->cpus = cpu;
- dai_link->num_cpus = 1;
-+ dai_link->nonatomic = true;
-
- ret = meson_card_parse_dai(card, np, &dai_link->cpus->of_node,
- &dai_link->cpus->dai_name);
---
-2.43.0
-
+++ /dev/null
-From 1a7018bebe25c6a7e10a44ba31b5e7702947474f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 21 Apr 2022 17:57:24 +0200
-Subject: ASoC: meson: axg-tdm-interface: Fix formatters in trigger"
-
-From: Neil Armstrong <narmstrong@baylibre.com>
-
-[ Upstream commit c26830b6c5c534d273ce007eb33d5a2d2ad4e969 ]
-
-This reverts commit bf5e4887eeddb48480568466536aa08ec7f179a5 because
-the following and required commit e138233e56e9829e65b6293887063a1a3ccb2d68
-causes the following system crash when using audio:
- BUG: sleeping function called from invalid context at kernel/locking/mutex.c:282
-
-Fixes: bf5e4887eeddb4848056846 ("ASoC: meson: axg-tdm-interface: manage formatters in trigger")
-Reported-by: Dmitry Shmidt <dimitrysh@google.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Acked-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20220421155725.2589089-1-narmstrong@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-tdm-interface.c | 26 +++++---------------------
- 1 file changed, 5 insertions(+), 21 deletions(-)
-
-diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c
-index f5145902360de..60d132ab1ab78 100644
---- a/sound/soc/meson/axg-tdm-interface.c
-+++ b/sound/soc/meson/axg-tdm-interface.c
-@@ -362,29 +362,13 @@ static int axg_tdm_iface_hw_free(struct snd_pcm_substream *substream,
- return 0;
- }
-
--static int axg_tdm_iface_trigger(struct snd_pcm_substream *substream,
-- int cmd,
-+static int axg_tdm_iface_prepare(struct snd_pcm_substream *substream,
- struct snd_soc_dai *dai)
- {
-- struct axg_tdm_stream *ts =
-- snd_soc_dai_get_dma_data(dai, substream);
--
-- switch (cmd) {
-- case SNDRV_PCM_TRIGGER_START:
-- case SNDRV_PCM_TRIGGER_RESUME:
-- case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-- axg_tdm_stream_start(ts);
-- break;
-- case SNDRV_PCM_TRIGGER_SUSPEND:
-- case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-- case SNDRV_PCM_TRIGGER_STOP:
-- axg_tdm_stream_stop(ts);
-- break;
-- default:
-- return -EINVAL;
-- }
-+ struct axg_tdm_stream *ts = snd_soc_dai_get_dma_data(dai, substream);
-
-- return 0;
-+ /* Force all attached formatters to update */
-+ return axg_tdm_stream_reset(ts);
- }
-
- static int axg_tdm_iface_remove_dai(struct snd_soc_dai *dai)
-@@ -424,8 +408,8 @@ static const struct snd_soc_dai_ops axg_tdm_iface_ops = {
- .set_fmt = axg_tdm_iface_set_fmt,
- .startup = axg_tdm_iface_startup,
- .hw_params = axg_tdm_iface_hw_params,
-+ .prepare = axg_tdm_iface_prepare,
- .hw_free = axg_tdm_iface_hw_free,
-- .trigger = axg_tdm_iface_trigger,
- };
-
- /* TDM Backend DAIs */
---
-2.43.0
-
+++ /dev/null
-From aedbfd21870fe60f3f71ae3a248934913763512d Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 20 Oct 2021 13:42:17 +0200
-Subject: ASoC: meson: axg-tdm-interface: manage formatters in trigger
-
-From: Jerome Brunet <jbrunet@baylibre.com>
-
-[ Upstream commit bf5e4887eeddb48480568466536aa08ec7f179a5 ]
-
-So far, the formatters have been reset/enabled using the .prepare()
-callback. This was done in this callback because walking the formatters use
-a mutex so it could not be done in .trigger(), which is atomic by default.
-
-It turns out there is a problem on capture path of the AXG series.
-The FIFO may get out of sync with the TDM decoder if the IP are not enabled
-in a specific order. The FIFO must be enabled before the formatter starts
-producing data. IOW, we must deal with FE before the BE. The .prepare()
-callback is called on the BEs before the FE so it is not OK for the AXG.
-
-The .trigger() callback order can be configured, and it deals with the FE
-before the BEs by default. To solve our problem, we just need to start and
-stop the formatters from the .trigger() callback. It is OK do so now that
-the links have been made 'nonatomic' in the card driver.
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20211020114217.133153-3-jbrunet@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-tdm-interface.c | 26 +++++++++++++++++++++-----
- 1 file changed, 21 insertions(+), 5 deletions(-)
-
-diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c
-index 60d132ab1ab78..f5145902360de 100644
---- a/sound/soc/meson/axg-tdm-interface.c
-+++ b/sound/soc/meson/axg-tdm-interface.c
-@@ -362,13 +362,29 @@ static int axg_tdm_iface_hw_free(struct snd_pcm_substream *substream,
- return 0;
- }
-
--static int axg_tdm_iface_prepare(struct snd_pcm_substream *substream,
-+static int axg_tdm_iface_trigger(struct snd_pcm_substream *substream,
-+ int cmd,
- struct snd_soc_dai *dai)
- {
-- struct axg_tdm_stream *ts = snd_soc_dai_get_dma_data(dai, substream);
-+ struct axg_tdm_stream *ts =
-+ snd_soc_dai_get_dma_data(dai, substream);
-+
-+ switch (cmd) {
-+ case SNDRV_PCM_TRIGGER_START:
-+ case SNDRV_PCM_TRIGGER_RESUME:
-+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-+ axg_tdm_stream_start(ts);
-+ break;
-+ case SNDRV_PCM_TRIGGER_SUSPEND:
-+ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-+ case SNDRV_PCM_TRIGGER_STOP:
-+ axg_tdm_stream_stop(ts);
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-
-- /* Force all attached formatters to update */
-- return axg_tdm_stream_reset(ts);
-+ return 0;
- }
-
- static int axg_tdm_iface_remove_dai(struct snd_soc_dai *dai)
-@@ -408,8 +424,8 @@ static const struct snd_soc_dai_ops axg_tdm_iface_ops = {
- .set_fmt = axg_tdm_iface_set_fmt,
- .startup = axg_tdm_iface_startup,
- .hw_params = axg_tdm_iface_hw_params,
-- .prepare = axg_tdm_iface_prepare,
- .hw_free = axg_tdm_iface_hw_free,
-+ .trigger = axg_tdm_iface_trigger,
- };
-
- /* TDM Backend DAIs */
---
-2.43.0
-
net-qede-use-return-from-qede_parse_flow_attr-for-fl.patch
net-qede-use-return-from-qede_parse_flow_attr-for-fl.patch-32632
net-qede-use-return-from-qede_parse_actions.patch
-asoc-meson-axg-card-make-links-nonatomic.patch
-asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch
asoc-fix-7-8-spaces-indentation-in-kconfig.patch
asoc-meson-cards-select-snd_dynamic_minors.patch
cxgb4-properly-lock-tx-queue-for-the-selftest.patch
fs-9p-drop-inodes-immediately-on-non-.l-too.patch
drm-nouveau-dp-don-t-probe-edp-ports-twice-harder.patch
net-usb-qmi_wwan-support-rolling-modules.patch
-asoc-meson-axg-card-fix-nonatomic-links.patch
-asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch
xfrm-preserve-vlan-tags-for-transport-mode-software-.patch
tcp-defer-shutdown-send_shutdown-for-tcp_syn_recv-so.patch
tcp-use-refcount_inc_not_zero-in-tcp_twsk_unique.patch
+++ /dev/null
-From 196e54ec5e43481fa366a62d764e0b6e27e899e2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 21 Apr 2022 17:57:25 +0200
-Subject: ASoC: meson: axg-card: Fix nonatomic links
-
-From: Neil Armstrong <narmstrong@baylibre.com>
-
-[ Upstream commit 0c9b152c72e53016e96593bdbb8cffe2176694b9 ]
-
-This commit e138233e56e9829e65b6293887063a1a3ccb2d68 causes the
-following system crash when using audio on G12A/G12B & SM1 systems:
-
- BUG: sleeping function called from invalid context at kernel/locking/mutex.c:282
- in_atomic(): 1, irqs_disabled(): 128, non_block: 0, pid: 0, name: swapper/0
- preempt_count: 10001, expected: 0
- RCU nest depth: 0, expected: 0
- Preemption disabled at:
- schedule_preempt_disabled+0x20/0x2c
-
- mutex_lock+0x24/0x60
- _snd_pcm_stream_lock_irqsave+0x20/0x3c
- snd_pcm_period_elapsed+0x24/0xa4
- axg_fifo_pcm_irq_block+0x64/0xdc
- __handle_irq_event_percpu+0x104/0x264
- handle_irq_event+0x48/0xb4
- ...
- start_kernel+0x3f0/0x484
- __primary_switched+0xc0/0xc8
-
-Revert this commit until the crash is fixed.
-
-Fixes: e138233e56e9829e65b6 ("ASoC: meson: axg-card: make links nonatomic")
-Reported-by: Dmitry Shmidt <dimitrysh@google.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Acked-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20220421155725.2589089-2-narmstrong@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-card.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c
-index cbbaa55d92a66..2b77010c2c5ce 100644
---- a/sound/soc/meson/axg-card.c
-+++ b/sound/soc/meson/axg-card.c
-@@ -320,7 +320,6 @@ static int axg_card_add_link(struct snd_soc_card *card, struct device_node *np,
-
- dai_link->cpus = cpu;
- dai_link->num_cpus = 1;
-- dai_link->nonatomic = true;
-
- ret = meson_card_parse_dai(card, np, &dai_link->cpus->of_node,
- &dai_link->cpus->dai_name);
---
-2.43.0
-
+++ /dev/null
-From eb2cd42efa1a3c0c8cab97605f0b7afadb47d14c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 21 Apr 2022 17:57:24 +0200
-Subject: ASoC: meson: axg-tdm-interface: Fix formatters in trigger"
-
-From: Neil Armstrong <narmstrong@baylibre.com>
-
-[ Upstream commit c26830b6c5c534d273ce007eb33d5a2d2ad4e969 ]
-
-This reverts commit bf5e4887eeddb48480568466536aa08ec7f179a5 because
-the following and required commit e138233e56e9829e65b6293887063a1a3ccb2d68
-causes the following system crash when using audio:
- BUG: sleeping function called from invalid context at kernel/locking/mutex.c:282
-
-Fixes: bf5e4887eeddb4848056846 ("ASoC: meson: axg-tdm-interface: manage formatters in trigger")
-Reported-by: Dmitry Shmidt <dimitrysh@google.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Acked-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20220421155725.2589089-1-narmstrong@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-tdm-interface.c | 26 +++++---------------------
- 1 file changed, 5 insertions(+), 21 deletions(-)
-
-diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c
-index f5145902360de..60d132ab1ab78 100644
---- a/sound/soc/meson/axg-tdm-interface.c
-+++ b/sound/soc/meson/axg-tdm-interface.c
-@@ -362,29 +362,13 @@ static int axg_tdm_iface_hw_free(struct snd_pcm_substream *substream,
- return 0;
- }
-
--static int axg_tdm_iface_trigger(struct snd_pcm_substream *substream,
-- int cmd,
-+static int axg_tdm_iface_prepare(struct snd_pcm_substream *substream,
- struct snd_soc_dai *dai)
- {
-- struct axg_tdm_stream *ts =
-- snd_soc_dai_get_dma_data(dai, substream);
--
-- switch (cmd) {
-- case SNDRV_PCM_TRIGGER_START:
-- case SNDRV_PCM_TRIGGER_RESUME:
-- case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-- axg_tdm_stream_start(ts);
-- break;
-- case SNDRV_PCM_TRIGGER_SUSPEND:
-- case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-- case SNDRV_PCM_TRIGGER_STOP:
-- axg_tdm_stream_stop(ts);
-- break;
-- default:
-- return -EINVAL;
-- }
-+ struct axg_tdm_stream *ts = snd_soc_dai_get_dma_data(dai, substream);
-
-- return 0;
-+ /* Force all attached formatters to update */
-+ return axg_tdm_stream_reset(ts);
- }
-
- static int axg_tdm_iface_remove_dai(struct snd_soc_dai *dai)
-@@ -424,8 +408,8 @@ static const struct snd_soc_dai_ops axg_tdm_iface_ops = {
- .set_fmt = axg_tdm_iface_set_fmt,
- .startup = axg_tdm_iface_startup,
- .hw_params = axg_tdm_iface_hw_params,
-+ .prepare = axg_tdm_iface_prepare,
- .hw_free = axg_tdm_iface_hw_free,
-- .trigger = axg_tdm_iface_trigger,
- };
-
- /* TDM Backend DAIs */
---
-2.43.0
-
bpf-sockmap-convert-schedule_work-into-delayed_work.patch
bpf-sockmap-reschedule-is-now-done-through-backlog.patch
bpf-sockmap-improved-check-for-empty-queue.patch
-asoc-meson-axg-card-fix-nonatomic-links.patch
-asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch
qibfs-fix-dentry-leak.patch
xfrm-preserve-vlan-tags-for-transport-mode-software-.patch
arm-9381-1-kasan-clear-stale-stack-poison.patch
+++ /dev/null
-From 103f41e5e68957d251c876b0a90aa710a968b369 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 21 Apr 2022 17:57:25 +0200
-Subject: ASoC: meson: axg-card: Fix nonatomic links
-
-From: Neil Armstrong <narmstrong@baylibre.com>
-
-[ Upstream commit 0c9b152c72e53016e96593bdbb8cffe2176694b9 ]
-
-This commit e138233e56e9829e65b6293887063a1a3ccb2d68 causes the
-following system crash when using audio on G12A/G12B & SM1 systems:
-
- BUG: sleeping function called from invalid context at kernel/locking/mutex.c:282
- in_atomic(): 1, irqs_disabled(): 128, non_block: 0, pid: 0, name: swapper/0
- preempt_count: 10001, expected: 0
- RCU nest depth: 0, expected: 0
- Preemption disabled at:
- schedule_preempt_disabled+0x20/0x2c
-
- mutex_lock+0x24/0x60
- _snd_pcm_stream_lock_irqsave+0x20/0x3c
- snd_pcm_period_elapsed+0x24/0xa4
- axg_fifo_pcm_irq_block+0x64/0xdc
- __handle_irq_event_percpu+0x104/0x264
- handle_irq_event+0x48/0xb4
- ...
- start_kernel+0x3f0/0x484
- __primary_switched+0xc0/0xc8
-
-Revert this commit until the crash is fixed.
-
-Fixes: e138233e56e9829e65b6 ("ASoC: meson: axg-card: make links nonatomic")
-Reported-by: Dmitry Shmidt <dimitrysh@google.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Acked-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20220421155725.2589089-2-narmstrong@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-card.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c
-index 36a004192b562..7126344017fa6 100644
---- a/sound/soc/meson/axg-card.c
-+++ b/sound/soc/meson/axg-card.c
-@@ -568,7 +568,6 @@ static int axg_card_add_link(struct snd_soc_card *card, struct device_node *np,
-
- dai_link->cpus = cpu;
- dai_link->num_cpus = 1;
-- dai_link->nonatomic = true;
-
- ret = axg_card_parse_dai(card, np, &dai_link->cpus->of_node,
- &dai_link->cpus->dai_name);
---
-2.43.0
-
+++ /dev/null
-From e7dd4a4a477117acab24a7ef08e9ae0f8715238b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 20 Oct 2021 13:42:16 +0200
-Subject: ASoC: meson: axg-card: make links nonatomic
-
-From: Jerome Brunet <jbrunet@baylibre.com>
-
-[ Upstream commit e138233e56e9829e65b6293887063a1a3ccb2d68 ]
-
-Non atomic operations need to be performed in the trigger callback
-of the TDM interfaces. Those are BEs but what matters is the nonatomic
-flag of the FE in the DPCM context. Just set nonatomic for everything so,
-at least, it is clear.
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20211020114217.133153-2-jbrunet@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-card.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c
-index 7126344017fa6..36a004192b562 100644
---- a/sound/soc/meson/axg-card.c
-+++ b/sound/soc/meson/axg-card.c
-@@ -568,6 +568,7 @@ static int axg_card_add_link(struct snd_soc_card *card, struct device_node *np,
-
- dai_link->cpus = cpu;
- dai_link->num_cpus = 1;
-+ dai_link->nonatomic = true;
-
- ret = axg_card_parse_dai(card, np, &dai_link->cpus->of_node,
- &dai_link->cpus->dai_name);
---
-2.43.0
-
+++ /dev/null
-From 90b64d88b3ffa59ecf6e28b96437ab3421c05f6e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 21 Apr 2022 17:57:24 +0200
-Subject: ASoC: meson: axg-tdm-interface: Fix formatters in trigger"
-
-From: Neil Armstrong <narmstrong@baylibre.com>
-
-[ Upstream commit c26830b6c5c534d273ce007eb33d5a2d2ad4e969 ]
-
-This reverts commit bf5e4887eeddb48480568466536aa08ec7f179a5 because
-the following and required commit e138233e56e9829e65b6293887063a1a3ccb2d68
-causes the following system crash when using audio:
- BUG: sleeping function called from invalid context at kernel/locking/mutex.c:282
-
-Fixes: bf5e4887eeddb4848056846 ("ASoC: meson: axg-tdm-interface: manage formatters in trigger")
-Reported-by: Dmitry Shmidt <dimitrysh@google.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Acked-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20220421155725.2589089-1-narmstrong@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-tdm-interface.c | 26 +++++---------------------
- 1 file changed, 5 insertions(+), 21 deletions(-)
-
-diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c
-index dc2fe9e2baadd..34aff050caf25 100644
---- a/sound/soc/meson/axg-tdm-interface.c
-+++ b/sound/soc/meson/axg-tdm-interface.c
-@@ -351,29 +351,13 @@ static int axg_tdm_iface_hw_free(struct snd_pcm_substream *substream,
- return 0;
- }
-
--static int axg_tdm_iface_trigger(struct snd_pcm_substream *substream,
-- int cmd,
-+static int axg_tdm_iface_prepare(struct snd_pcm_substream *substream,
- struct snd_soc_dai *dai)
- {
-- struct axg_tdm_stream *ts =
-- snd_soc_dai_get_dma_data(dai, substream);
--
-- switch (cmd) {
-- case SNDRV_PCM_TRIGGER_START:
-- case SNDRV_PCM_TRIGGER_RESUME:
-- case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-- axg_tdm_stream_start(ts);
-- break;
-- case SNDRV_PCM_TRIGGER_SUSPEND:
-- case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-- case SNDRV_PCM_TRIGGER_STOP:
-- axg_tdm_stream_stop(ts);
-- break;
-- default:
-- return -EINVAL;
-- }
-+ struct axg_tdm_stream *ts = snd_soc_dai_get_dma_data(dai, substream);
-
-- return 0;
-+ /* Force all attached formatters to update */
-+ return axg_tdm_stream_reset(ts);
- }
-
- static int axg_tdm_iface_remove_dai(struct snd_soc_dai *dai)
-@@ -413,8 +397,8 @@ static const struct snd_soc_dai_ops axg_tdm_iface_ops = {
- .set_fmt = axg_tdm_iface_set_fmt,
- .startup = axg_tdm_iface_startup,
- .hw_params = axg_tdm_iface_hw_params,
-+ .prepare = axg_tdm_iface_prepare,
- .hw_free = axg_tdm_iface_hw_free,
-- .trigger = axg_tdm_iface_trigger,
- };
-
- /* TDM Backend DAIs */
---
-2.43.0
-
+++ /dev/null
-From bd47aa017fbf8cc0dd54f1f8013caabe04878dc4 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 20 Oct 2021 13:42:17 +0200
-Subject: ASoC: meson: axg-tdm-interface: manage formatters in trigger
-
-From: Jerome Brunet <jbrunet@baylibre.com>
-
-[ Upstream commit bf5e4887eeddb48480568466536aa08ec7f179a5 ]
-
-So far, the formatters have been reset/enabled using the .prepare()
-callback. This was done in this callback because walking the formatters use
-a mutex so it could not be done in .trigger(), which is atomic by default.
-
-It turns out there is a problem on capture path of the AXG series.
-The FIFO may get out of sync with the TDM decoder if the IP are not enabled
-in a specific order. The FIFO must be enabled before the formatter starts
-producing data. IOW, we must deal with FE before the BE. The .prepare()
-callback is called on the BEs before the FE so it is not OK for the AXG.
-
-The .trigger() callback order can be configured, and it deals with the FE
-before the BEs by default. To solve our problem, we just need to start and
-stop the formatters from the .trigger() callback. It is OK do so now that
-the links have been made 'nonatomic' in the card driver.
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20211020114217.133153-3-jbrunet@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-tdm-interface.c | 26 +++++++++++++++++++++-----
- 1 file changed, 21 insertions(+), 5 deletions(-)
-
-diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c
-index 34aff050caf25..dc2fe9e2baadd 100644
---- a/sound/soc/meson/axg-tdm-interface.c
-+++ b/sound/soc/meson/axg-tdm-interface.c
-@@ -351,13 +351,29 @@ static int axg_tdm_iface_hw_free(struct snd_pcm_substream *substream,
- return 0;
- }
-
--static int axg_tdm_iface_prepare(struct snd_pcm_substream *substream,
-+static int axg_tdm_iface_trigger(struct snd_pcm_substream *substream,
-+ int cmd,
- struct snd_soc_dai *dai)
- {
-- struct axg_tdm_stream *ts = snd_soc_dai_get_dma_data(dai, substream);
-+ struct axg_tdm_stream *ts =
-+ snd_soc_dai_get_dma_data(dai, substream);
-+
-+ switch (cmd) {
-+ case SNDRV_PCM_TRIGGER_START:
-+ case SNDRV_PCM_TRIGGER_RESUME:
-+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-+ axg_tdm_stream_start(ts);
-+ break;
-+ case SNDRV_PCM_TRIGGER_SUSPEND:
-+ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-+ case SNDRV_PCM_TRIGGER_STOP:
-+ axg_tdm_stream_stop(ts);
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-
-- /* Force all attached formatters to update */
-- return axg_tdm_stream_reset(ts);
-+ return 0;
- }
-
- static int axg_tdm_iface_remove_dai(struct snd_soc_dai *dai)
-@@ -397,8 +413,8 @@ static const struct snd_soc_dai_ops axg_tdm_iface_ops = {
- .set_fmt = axg_tdm_iface_set_fmt,
- .startup = axg_tdm_iface_startup,
- .hw_params = axg_tdm_iface_hw_params,
-- .prepare = axg_tdm_iface_prepare,
- .hw_free = axg_tdm_iface_hw_free,
-+ .trigger = axg_tdm_iface_trigger,
- };
-
- /* TDM Backend DAIs */
---
-2.43.0
-
nsh-restore-skb-protocol-data-mac_header-for-outer-h.patch
net-l2tp-drop-flow-hash-on-forward.patch
net-qede-use-return-from-qede_parse_flow_attr-for-fl.patch
-asoc-meson-axg-card-make-links-nonatomic.patch
-asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch
net-dsa-mv88e6xxx-add-number-of-macs-in-the-atu.patch
net-dsa-mv88e6xxx-fix-number-of-databases-for-88e614.patch
net-bridge-fix-multicast-to-unicast-with-fraglist-gs.patch
fs-9p-drop-inodes-immediately-on-non-.l-too.patch
net-usb-qmi_wwan-support-rolling-modules.patch
pinctrl-mediatek-fix-fallback-call-path.patch
-asoc-meson-axg-card-fix-nonatomic-links.patch
-asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch
xfrm-preserve-vlan-tags-for-transport-mode-software-.patch
tcp-defer-shutdown-send_shutdown-for-tcp_syn_recv-so.patch
tcp-use-refcount_inc_not_zero-in-tcp_twsk_unique.patch