From 040037f493c030c5ceae15a79ab93b759534e77e Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Fri, 1 Aug 2025 19:48:55 -0400 Subject: [PATCH] Fixes for 6.6 Signed-off-by: Sasha Levin --- ...-dmi-entries-to-support-hp-15-fb1xxx.patch | 41 +++++++ ...md-yc-add-dmi-quirk-for-asus-m6501rm.patch | 41 +++++++ ...dmi-quirk-for-hp-laptop-17-cp-2033dx.patch | 40 +++++++ ...c-intel-fix-snd_soc_sof-dependencies.patch | 64 +++++++++++ ...ntel-fix-building-with-large-nr_cpus.patch | 100 ++++++++++++++++++ queue-6.6/series | 5 + 6 files changed, 291 insertions(+) create mode 100644 queue-6.6/asoc-amd-yc-add-dmi-entries-to-support-hp-15-fb1xxx.patch create mode 100644 queue-6.6/asoc-amd-yc-add-dmi-quirk-for-asus-m6501rm.patch create mode 100644 queue-6.6/asoc-amd-yc-add-dmi-quirk-for-hp-laptop-17-cp-2033dx.patch create mode 100644 queue-6.6/asoc-intel-fix-snd_soc_sof-dependencies.patch create mode 100644 queue-6.6/ethernet-intel-fix-building-with-large-nr_cpus.patch create mode 100644 queue-6.6/series diff --git a/queue-6.6/asoc-amd-yc-add-dmi-entries-to-support-hp-15-fb1xxx.patch b/queue-6.6/asoc-amd-yc-add-dmi-entries-to-support-hp-15-fb1xxx.patch new file mode 100644 index 0000000000..f8417a4257 --- /dev/null +++ b/queue-6.6/asoc-amd-yc-add-dmi-entries-to-support-hp-15-fb1xxx.patch @@ -0,0 +1,41 @@ +From 863bfe952a4f9f212f6ab8c752fc471f2e0f54a3 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 14 Jul 2025 23:14:24 -0400 +Subject: ASoC: amd: yc: Add DMI entries to support HP 15-fb1xxx + +From: Adam Queler + +[ Upstream commit 949ddec3728f3a793a13c1c9003028b9b159aefc ] + +This model requires an additional detection quirk to +enable the internal microphone. + +Signed-off-by: Adam Queler +Link: https://patch.msgid.link/20250715031434.222062-1-queler+k@gmail.com +Signed-off-by: Mark Brown +Signed-off-by: Sasha Levin +--- + sound/soc/amd/yc/acp6x-mach.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/sound/soc/amd/yc/acp6x-mach.c b/sound/soc/amd/yc/acp6x-mach.c +index 74f8e12aa710..1063a19b39aa 100644 +--- a/sound/soc/amd/yc/acp6x-mach.c ++++ b/sound/soc/amd/yc/acp6x-mach.c +@@ -528,6 +528,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = { + DMI_MATCH(DMI_PRODUCT_NAME, "OMEN by HP Gaming Laptop 16z-n000"), + } + }, ++ { ++ .driver_data = &acp6x_card, ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "HP"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "Victus by HP Gaming Laptop 15-fb1xxx"), ++ } ++ }, + { + .driver_data = &acp6x_card, + .matches = { +-- +2.39.5 + diff --git a/queue-6.6/asoc-amd-yc-add-dmi-quirk-for-asus-m6501rm.patch b/queue-6.6/asoc-amd-yc-add-dmi-quirk-for-asus-m6501rm.patch new file mode 100644 index 0000000000..e91f1c4061 --- /dev/null +++ b/queue-6.6/asoc-amd-yc-add-dmi-quirk-for-asus-m6501rm.patch @@ -0,0 +1,41 @@ +From e452a21f11c70433bb8c58a6655c42df6b3da07c Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 8 Jul 2025 01:07:30 +0300 +Subject: ASoC: amd: yc: add DMI quirk for ASUS M6501RM + +From: Alexandru Andries + +[ Upstream commit 6f80be548588429100eb1f5e25dc2a714d583ffe ] + +add DMI entry for ASUS Vivobook PRO 15X (M6501RM) +to make the internal microphone function + +Signed-off-by: Alexandru Andries +Link: https://patch.msgid.link/20250707220730.361290-1-alex.andries.aa@gmail.com +Signed-off-by: Mark Brown +Signed-off-by: Sasha Levin +--- + sound/soc/amd/yc/acp6x-mach.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/sound/soc/amd/yc/acp6x-mach.c b/sound/soc/amd/yc/acp6x-mach.c +index 1063a19b39aa..24919e68b346 100644 +--- a/sound/soc/amd/yc/acp6x-mach.c ++++ b/sound/soc/amd/yc/acp6x-mach.c +@@ -409,6 +409,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = { + DMI_MATCH(DMI_PRODUCT_NAME, "M6500RC"), + } + }, ++ { ++ .driver_data = &acp6x_card, ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."), ++ DMI_MATCH(DMI_PRODUCT_NAME, "M6501RM"), ++ } ++ }, + { + .driver_data = &acp6x_card, + .matches = { +-- +2.39.5 + diff --git a/queue-6.6/asoc-amd-yc-add-dmi-quirk-for-hp-laptop-17-cp-2033dx.patch b/queue-6.6/asoc-amd-yc-add-dmi-quirk-for-hp-laptop-17-cp-2033dx.patch new file mode 100644 index 0000000000..49c8f0271d --- /dev/null +++ b/queue-6.6/asoc-amd-yc-add-dmi-quirk-for-hp-laptop-17-cp-2033dx.patch @@ -0,0 +1,40 @@ +From 41e6558def1d0c5e03c82a46729d3df4041287a0 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 15 Jul 2025 13:20:38 -0500 +Subject: ASoC: amd: yc: Add DMI quirk for HP Laptop 17 cp-2033dx + +From: Lane Odenbach + +[ Upstream commit 7bab1bd9fdf15b9fa7e6a4b0151deab93df3c80d ] + +This fixes the internal microphone in the stated device + +Signed-off-by: Lane Odenbach +Link: https://patch.msgid.link/20250715182038.10048-1-laodenbach@gmail.com +Signed-off-by: Mark Brown +Signed-off-by: Sasha Levin +--- + sound/soc/amd/yc/acp6x-mach.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/sound/soc/amd/yc/acp6x-mach.c b/sound/soc/amd/yc/acp6x-mach.c +index 66ef8f4fd02c..74f8e12aa710 100644 +--- a/sound/soc/amd/yc/acp6x-mach.c ++++ b/sound/soc/amd/yc/acp6x-mach.c +@@ -577,6 +577,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = { + DMI_MATCH(DMI_BOARD_NAME, "8A7F"), + } + }, ++ { ++ .driver_data = &acp6x_card, ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "HP"), ++ DMI_MATCH(DMI_BOARD_NAME, "8A81"), ++ } ++ }, + { + .driver_data = &acp6x_card, + .matches = { +-- +2.39.5 + diff --git a/queue-6.6/asoc-intel-fix-snd_soc_sof-dependencies.patch b/queue-6.6/asoc-intel-fix-snd_soc_sof-dependencies.patch new file mode 100644 index 0000000000..0d74d49d29 --- /dev/null +++ b/queue-6.6/asoc-intel-fix-snd_soc_sof-dependencies.patch @@ -0,0 +1,64 @@ +From 9beaa6dd2bf9cf3c2aea35d8b61fd178927dbd5b Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 9 Jul 2025 16:56:07 +0200 +Subject: ASoC: Intel: fix SND_SOC_SOF dependencies + +From: Arnd Bergmann + +[ Upstream commit e837b59f8b411b5baf5e3de7a5aea10b1c545a63 ] + +It is currently possible to configure a kernel with all Intel SoC +configs as loadable modules, but the board config as built-in. This +causes a link failure in the reference to the snd_soc_sof.ko module: + +x86_64-linux-ld: sound/soc/intel/boards/sof_rt5682.o: in function `sof_rt5682_hw_params': +sof_rt5682.c:(.text+0x1f9): undefined reference to `sof_dai_get_mclk' +x86_64-linux-ld: sof_rt5682.c:(.text+0x234): undefined reference to `sof_dai_get_bclk' +x86_64-linux-ld: sound/soc/intel/boards/sof_rt5682.o: in function `sof_rt5682_codec_init': +sof_rt5682.c:(.text+0x3e0): undefined reference to `sof_dai_get_mclk' +x86_64-linux-ld: sound/soc/intel/boards/sof_cs42l42.o: in function `sof_cs42l42_hw_params': +sof_cs42l42.c:(.text+0x2a): undefined reference to `sof_dai_get_bclk' +x86_64-linux-ld: sound/soc/intel/boards/sof_nau8825.o: in function `sof_nau8825_hw_params': +sof_nau8825.c:(.text+0x7f): undefined reference to `sof_dai_get_bclk' +x86_64-linux-ld: sound/soc/intel/boards/sof_da7219.o: in function `da7219_codec_init': +sof_da7219.c:(.text+0xbf): undefined reference to `sof_dai_get_mclk' +x86_64-linux-ld: sound/soc/intel/boards/sof_maxim_common.o: in function `max_98373_hw_params': +sof_maxim_common.c:(.text+0x6f9): undefined reference to `sof_dai_get_tdm_slots' +x86_64-linux-ld: sound/soc/intel/boards/sof_realtek_common.o: in function `rt1015_hw_params': +sof_realtek_common.c:(.text+0x54c): undefined reference to `sof_dai_get_bclk' +x86_64-linux-ld: sound/soc/intel/boards/sof_realtek_common.o: in function `rt1308_hw_params': +sof_realtek_common.c:(.text+0x702): undefined reference to `sof_dai_get_mclk' +x86_64-linux-ld: sound/soc/intel/boards/sof_cirrus_common.o: in function `cs35l41_hw_params': +sof_cirrus_common.c:(.text+0x2f): undefined reference to `sof_dai_get_bclk' + +Add an optional dependency on SND_SOC_SOF_INTEL_COMMON, to ensure that whenever +the SOF support is in a loadable module, none of the board code can be built-in. + +This may be be a little heavy-handed, but I also don't see a reason why one would +want the boards to be built-in but not the SoC, so it shouldn't actually cause +any usability problems. + +Signed-off-by: Arnd Bergmann +Link: https://patch.msgid.link/20250709145626.64125-1-arnd@kernel.org +Signed-off-by: Mark Brown +Signed-off-by: Sasha Levin +--- + sound/soc/intel/boards/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig +index 0ae6eecc8851..033be4d3e02d 100644 +--- a/sound/soc/intel/boards/Kconfig ++++ b/sound/soc/intel/boards/Kconfig +@@ -11,7 +11,7 @@ menuconfig SND_SOC_INTEL_MACH + kernel: saying N will just cause the configurator to skip all + the questions about Intel ASoC machine drivers. + +-if SND_SOC_INTEL_MACH ++if SND_SOC_INTEL_MACH && (SND_SOC_SOF_INTEL_COMMON || !SND_SOC_SOF_INTEL_COMMON) + + config SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES + bool "Use more user friendly long card names" +-- +2.39.5 + diff --git a/queue-6.6/ethernet-intel-fix-building-with-large-nr_cpus.patch b/queue-6.6/ethernet-intel-fix-building-with-large-nr_cpus.patch new file mode 100644 index 0000000000..f3e6c55c2d --- /dev/null +++ b/queue-6.6/ethernet-intel-fix-building-with-large-nr_cpus.patch @@ -0,0 +1,100 @@ +From 08a394d051a591ed0436b38beae302ea7df600fa Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 20 Jun 2025 19:31:24 +0200 +Subject: ethernet: intel: fix building with large NR_CPUS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Arnd Bergmann + +[ Upstream commit 24171a5a4a952c26568ff0d2a0bc8c4708a95e1d ] + +With large values of CONFIG_NR_CPUS, three Intel ethernet drivers fail to +compile like: + +In function ‘i40e_free_q_vector’, + inlined from ‘i40e_vsi_alloc_q_vectors’ at drivers/net/ethernet/intel/i40e/i40e_main.c:12112:3: + 571 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) +include/linux/rcupdate.h:1084:17: note: in expansion of macro ‘BUILD_BUG_ON’ + 1084 | BUILD_BUG_ON(offsetof(typeof(*(ptr)), rhf) >= 4096); \ +drivers/net/ethernet/intel/i40e/i40e_main.c:5113:9: note: in expansion of macro ‘kfree_rcu’ + 5113 | kfree_rcu(q_vector, rcu); + | ^~~~~~~~~ + +The problem is that the 'rcu' member in 'q_vector' is too far from the start +of the structure. Move this member before the CPU mask instead, in all three +drivers. + +Signed-off-by: Arnd Bergmann +Acked-by: David S. Miller +Reviewed-by: Aleksandr Loktionov +Reviewed-by: Alexander Lobakin +Tested-by: Sunitha Mekala (A Contingent worker at Intel) +Signed-off-by: Tony Nguyen +Signed-off-by: Sasha Levin +--- + drivers/net/ethernet/intel/fm10k/fm10k.h | 3 ++- + drivers/net/ethernet/intel/i40e/i40e.h | 2 +- + drivers/net/ethernet/intel/ixgbe/ixgbe.h | 3 ++- + 3 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/drivers/net/ethernet/intel/fm10k/fm10k.h b/drivers/net/ethernet/intel/fm10k/fm10k.h +index 6119a4108838..65a2816142d9 100644 +--- a/drivers/net/ethernet/intel/fm10k/fm10k.h ++++ b/drivers/net/ethernet/intel/fm10k/fm10k.h +@@ -189,13 +189,14 @@ struct fm10k_q_vector { + struct fm10k_ring_container rx, tx; + + struct napi_struct napi; ++ struct rcu_head rcu; /* to avoid race with update stats on free */ ++ + cpumask_t affinity_mask; + char name[IFNAMSIZ + 9]; + + #ifdef CONFIG_DEBUG_FS + struct dentry *dbg_q_vector; + #endif /* CONFIG_DEBUG_FS */ +- struct rcu_head rcu; /* to avoid race with update stats on free */ + + /* for dynamic allocation of rings associated with this q_vector */ + struct fm10k_ring ring[] ____cacheline_internodealigned_in_smp; +diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h +index 68f403dd2f52..9fb7c5fe05d1 100644 +--- a/drivers/net/ethernet/intel/i40e/i40e.h ++++ b/drivers/net/ethernet/intel/i40e/i40e.h +@@ -953,6 +953,7 @@ struct i40e_q_vector { + u16 reg_idx; /* register index of the interrupt */ + + struct napi_struct napi; ++ struct rcu_head rcu; /* to avoid race with update stats on free */ + + struct i40e_ring_container rx; + struct i40e_ring_container tx; +@@ -963,7 +964,6 @@ struct i40e_q_vector { + cpumask_t affinity_mask; + struct irq_affinity_notify affinity_notify; + +- struct rcu_head rcu; /* to avoid race with update stats on free */ + char name[I40E_INT_NAME_STR_LEN]; + bool arm_wb_state; + bool in_busy_poll; +diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe.h b/drivers/net/ethernet/intel/ixgbe/ixgbe.h +index b6f0376e42f4..d15182657cea 100644 +--- a/drivers/net/ethernet/intel/ixgbe/ixgbe.h ++++ b/drivers/net/ethernet/intel/ixgbe/ixgbe.h +@@ -503,9 +503,10 @@ struct ixgbe_q_vector { + struct ixgbe_ring_container rx, tx; + + struct napi_struct napi; ++ struct rcu_head rcu; /* to avoid race with update stats on free */ ++ + cpumask_t affinity_mask; + int numa_node; +- struct rcu_head rcu; /* to avoid race with update stats on free */ + char name[IFNAMSIZ + 9]; + + /* for dynamic allocation of rings associated with this q_vector */ +-- +2.39.5 + diff --git a/queue-6.6/series b/queue-6.6/series new file mode 100644 index 0000000000..a52535909c --- /dev/null +++ b/queue-6.6/series @@ -0,0 +1,5 @@ +asoc-amd-yc-add-dmi-quirk-for-hp-laptop-17-cp-2033dx.patch +ethernet-intel-fix-building-with-large-nr_cpus.patch +asoc-amd-yc-add-dmi-entries-to-support-hp-15-fb1xxx.patch +asoc-intel-fix-snd_soc_sof-dependencies.patch +asoc-amd-yc-add-dmi-quirk-for-asus-m6501rm.patch -- 2.47.2