From: Greg Kroah-Hartman Date: Wed, 15 May 2024 07:52:23 +0000 (+0200) Subject: drop a bunch of asoc meson patches in 5.15 and older based on review X-Git-Tag: v4.19.314~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5861b3c1365adc0c333b5fda702bd5f297284505;p=thirdparty%2Fkernel%2Fstable-queue.git drop a bunch of asoc meson patches in 5.15 and older based on review --- diff --git a/queue-4.19/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch b/queue-4.19/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch deleted file mode 100644 index b9ca5d41915..00000000000 --- a/queue-4.19/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch +++ /dev/null @@ -1,76 +0,0 @@ -From fd62d604c951959773031004e5447146abc041c9 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 21 Apr 2022 17:57:24 +0200 -Subject: ASoC: meson: axg-tdm-interface: Fix formatters in trigger" - -From: Neil Armstrong - -[ 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 -Signed-off-by: Neil Armstrong -Acked-by: Jerome Brunet -Link: https://lore.kernel.org/r/20220421155725.2589089-1-narmstrong@baylibre.com -Signed-off-by: Mark Brown -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-4.19/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch b/queue-4.19/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch deleted file mode 100644 index 4227963fb1f..00000000000 --- a/queue-4.19/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 0e7fe499b43e8f378c3a0adf2ebbb4fc91c18a20 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 20 Oct 2021 13:42:17 +0200 -Subject: ASoC: meson: axg-tdm-interface: manage formatters in trigger - -From: Jerome Brunet - -[ 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 -Link: https://lore.kernel.org/r/20211020114217.133153-3-jbrunet@baylibre.com -Signed-off-by: Mark Brown -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-4.19/series b/queue-4.19/series index 60095e36721..e0b9253ae65 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -14,7 +14,6 @@ s390-mm-fix-clearing-storage-keys-for-huge-pages.patch 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 @@ -41,7 +40,6 @@ gpio-wcove-use-enotsupp-consistently.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 diff --git a/queue-5.10/asoc-meson-axg-card-fix-nonatomic-links.patch b/queue-5.10/asoc-meson-axg-card-fix-nonatomic-links.patch deleted file mode 100644 index 19710c9bf30..00000000000 --- a/queue-5.10/asoc-meson-axg-card-fix-nonatomic-links.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 657196199cee56dfe4fdfa5ead06d439b1d19e39 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 21 Apr 2022 17:57:25 +0200 -Subject: ASoC: meson: axg-card: Fix nonatomic links - -From: Neil Armstrong - -[ 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 -Signed-off-by: Neil Armstrong -Acked-by: Jerome Brunet -Link: https://lore.kernel.org/r/20220421155725.2589089-2-narmstrong@baylibre.com -Signed-off-by: Mark Brown -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-5.10/asoc-meson-axg-card-make-links-nonatomic.patch b/queue-5.10/asoc-meson-axg-card-make-links-nonatomic.patch deleted file mode 100644 index efb66d16a5d..00000000000 --- a/queue-5.10/asoc-meson-axg-card-make-links-nonatomic.patch +++ /dev/null @@ -1,37 +0,0 @@ -From bad1b472293169ece1716e3a5b2630945e6331ef Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 20 Oct 2021 13:42:16 +0200 -Subject: ASoC: meson: axg-card: make links nonatomic - -From: Jerome Brunet - -[ 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 -Link: https://lore.kernel.org/r/20211020114217.133153-2-jbrunet@baylibre.com -Signed-off-by: Mark Brown -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-5.10/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch b/queue-5.10/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch deleted file mode 100644 index 81274dfb0be..00000000000 --- a/queue-5.10/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 1a7018bebe25c6a7e10a44ba31b5e7702947474f Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 21 Apr 2022 17:57:24 +0200 -Subject: ASoC: meson: axg-tdm-interface: Fix formatters in trigger" - -From: Neil Armstrong - -[ 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 -Signed-off-by: Neil Armstrong -Acked-by: Jerome Brunet -Link: https://lore.kernel.org/r/20220421155725.2589089-1-narmstrong@baylibre.com -Signed-off-by: Mark Brown -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-5.10/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch b/queue-5.10/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch deleted file mode 100644 index c9453f49a23..00000000000 --- a/queue-5.10/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch +++ /dev/null @@ -1,83 +0,0 @@ -From aedbfd21870fe60f3f71ae3a248934913763512d Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 20 Oct 2021 13:42:17 +0200 -Subject: ASoC: meson: axg-tdm-interface: manage formatters in trigger - -From: Jerome Brunet - -[ 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 -Link: https://lore.kernel.org/r/20211020114217.133153-3-jbrunet@baylibre.com -Signed-off-by: Mark Brown -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-5.10/series b/queue-5.10/series index 1cee550c27b..db59adf2198 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -28,8 +28,6 @@ net-qede-sanitize-rc-in-qede_add_tc_flower_fltr.patch 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 @@ -70,8 +68,6 @@ clk-don-t-hold-prepare_lock-when-calling-kref_put.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 diff --git a/queue-5.15/asoc-meson-axg-card-fix-nonatomic-links.patch b/queue-5.15/asoc-meson-axg-card-fix-nonatomic-links.patch deleted file mode 100644 index 94b4302ee4a..00000000000 --- a/queue-5.15/asoc-meson-axg-card-fix-nonatomic-links.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 196e54ec5e43481fa366a62d764e0b6e27e899e2 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 21 Apr 2022 17:57:25 +0200 -Subject: ASoC: meson: axg-card: Fix nonatomic links - -From: Neil Armstrong - -[ 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 -Signed-off-by: Neil Armstrong -Acked-by: Jerome Brunet -Link: https://lore.kernel.org/r/20220421155725.2589089-2-narmstrong@baylibre.com -Signed-off-by: Mark Brown -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-5.15/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch b/queue-5.15/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch deleted file mode 100644 index 30984a1f059..00000000000 --- a/queue-5.15/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch +++ /dev/null @@ -1,76 +0,0 @@ -From eb2cd42efa1a3c0c8cab97605f0b7afadb47d14c Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 21 Apr 2022 17:57:24 +0200 -Subject: ASoC: meson: axg-tdm-interface: Fix formatters in trigger" - -From: Neil Armstrong - -[ 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 -Signed-off-by: Neil Armstrong -Acked-by: Jerome Brunet -Link: https://lore.kernel.org/r/20220421155725.2589089-1-narmstrong@baylibre.com -Signed-off-by: Mark Brown -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-5.15/series b/queue-5.15/series index b42b7d54713..733083ec431 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -97,8 +97,6 @@ bpf-sockmap-handle-fin-correctly.patch 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 diff --git a/queue-5.4/asoc-meson-axg-card-fix-nonatomic-links.patch b/queue-5.4/asoc-meson-axg-card-fix-nonatomic-links.patch deleted file mode 100644 index 96084a31106..00000000000 --- a/queue-5.4/asoc-meson-axg-card-fix-nonatomic-links.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 103f41e5e68957d251c876b0a90aa710a968b369 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 21 Apr 2022 17:57:25 +0200 -Subject: ASoC: meson: axg-card: Fix nonatomic links - -From: Neil Armstrong - -[ 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 -Signed-off-by: Neil Armstrong -Acked-by: Jerome Brunet -Link: https://lore.kernel.org/r/20220421155725.2589089-2-narmstrong@baylibre.com -Signed-off-by: Mark Brown -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-5.4/asoc-meson-axg-card-make-links-nonatomic.patch b/queue-5.4/asoc-meson-axg-card-make-links-nonatomic.patch deleted file mode 100644 index 69ba5ed579f..00000000000 --- a/queue-5.4/asoc-meson-axg-card-make-links-nonatomic.patch +++ /dev/null @@ -1,37 +0,0 @@ -From e7dd4a4a477117acab24a7ef08e9ae0f8715238b Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 20 Oct 2021 13:42:16 +0200 -Subject: ASoC: meson: axg-card: make links nonatomic - -From: Jerome Brunet - -[ 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 -Link: https://lore.kernel.org/r/20211020114217.133153-2-jbrunet@baylibre.com -Signed-off-by: Mark Brown -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-5.4/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch b/queue-5.4/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch deleted file mode 100644 index f253965c03f..00000000000 --- a/queue-5.4/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 90b64d88b3ffa59ecf6e28b96437ab3421c05f6e Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 21 Apr 2022 17:57:24 +0200 -Subject: ASoC: meson: axg-tdm-interface: Fix formatters in trigger" - -From: Neil Armstrong - -[ 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 -Signed-off-by: Neil Armstrong -Acked-by: Jerome Brunet -Link: https://lore.kernel.org/r/20220421155725.2589089-1-narmstrong@baylibre.com -Signed-off-by: Mark Brown -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-5.4/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch b/queue-5.4/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch deleted file mode 100644 index 78ecc36e145..00000000000 --- a/queue-5.4/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch +++ /dev/null @@ -1,83 +0,0 @@ -From bd47aa017fbf8cc0dd54f1f8013caabe04878dc4 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 20 Oct 2021 13:42:17 +0200 -Subject: ASoC: meson: axg-tdm-interface: manage formatters in trigger - -From: Jerome Brunet - -[ 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 -Link: https://lore.kernel.org/r/20211020114217.133153-3-jbrunet@baylibre.com -Signed-off-by: Mark Brown -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-5.4/series b/queue-5.4/series index f1b91757922..35ccb2ac3c7 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -23,8 +23,6 @@ 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 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 @@ -57,8 +55,6 @@ clk-don-t-hold-prepare_lock-when-calling-kref_put.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