From f58df7c3a2cf00836823b14cefdbeabe30e7b616 Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Sat, 23 Nov 2024 05:44:07 -0500 Subject: [PATCH] Fixes for 5.15 Signed-off-by: Sasha Levin --- ...-add-subwoofer-quirk-for-infinix-zer.patch | 67 ++++++++ ...b-audio-fix-yamaha-p-125-quirk-entry.patch | 56 +++++++ ...m-9420-1-smp-fix-smp-for-xip-kernels.patch | 84 ++++++++++ ..._rt5640-add-dmi-quirk-for-vexia-edu-.patch | 53 +++++++ ..._rt5640-add-support-for-non-acpi-ins.patch | 93 +++++++++++ ...c-intel-sst-support-lpe0f28-acpi-hid.patch | 146 ++++++++++++++++++ ...-potential-division-by-zero-in-stm32.patch | 40 +++++ ...tial-division-by-zero-in-stm32.patch-10468 | 39 +++++ ...939-fix-error-in-j1939-documentation.patch | 40 +++++ ...-to-mfc_cache_list-without-lock-held.patch | 76 +++++++++ ...ix-user-power-when-emulating-chanctx.patch | 37 +++++ .../net-usb-qmi_wwan-add-quectel-rg650v.patch | 65 ++++++++ ...l-smbios-base-extends-support-to-ali.patch | 51 ++++++ ...l-wmi-base-handle-meta-key-lock-unlo.patch | 52 +++++++ ...place-seq_printf-with-seq_put_decima.patch | 39 +++++ ...808-add-apply_bit-for-buck3-on-rk809.patch | 43 ++++++ ...og-test-fix-system-accidentally-rese.patch | 58 +++++++ queue-5.15/series | 21 +++ ...-check-devm_kasprintf-returned-value.patch | 45 ++++++ ...for-new-usb-device-id-0x17ef-0x3098-.patch | 41 +++++ ...-use-the-sync-timepoint-api-in-suspe.patch | 64 ++++++++ ...ompile-testing-without-config_amd_nb.patch | 53 +++++++ 22 files changed, 1263 insertions(+) create mode 100644 queue-5.15/alsa-hda-realtek-add-subwoofer-quirk-for-infinix-zer.patch create mode 100644 queue-5.15/alsa-usb-audio-fix-yamaha-p-125-quirk-entry.patch create mode 100644 queue-5.15/arm-9420-1-smp-fix-smp-for-xip-kernels.patch create mode 100644 queue-5.15/asoc-intel-bytcr_rt5640-add-dmi-quirk-for-vexia-edu-.patch create mode 100644 queue-5.15/asoc-intel-bytcr_rt5640-add-support-for-non-acpi-ins.patch create mode 100644 queue-5.15/asoc-intel-sst-support-lpe0f28-acpi-hid.patch create mode 100644 queue-5.15/asoc-stm-prevent-potential-division-by-zero-in-stm32.patch create mode 100644 queue-5.15/asoc-stm-prevent-potential-division-by-zero-in-stm32.patch-10468 create mode 100644 queue-5.15/can-j1939-fix-error-in-j1939-documentation.patch create mode 100644 queue-5.15/ipmr-fix-access-to-mfc_cache_list-without-lock-held.patch create mode 100644 queue-5.15/mac80211-fix-user-power-when-emulating-chanctx.patch create mode 100644 queue-5.15/net-usb-qmi_wwan-add-quectel-rg650v.patch create mode 100644 queue-5.15/platform-x86-dell-smbios-base-extends-support-to-ali.patch create mode 100644 queue-5.15/platform-x86-dell-wmi-base-handle-meta-key-lock-unlo.patch create mode 100644 queue-5.15/proc-softirqs-replace-seq_printf-with-seq_put_decima.patch create mode 100644 queue-5.15/regulator-rk808-add-apply_bit-for-buck3-on-rk809.patch create mode 100644 queue-5.15/selftests-watchdog-test-fix-system-accidentally-rese.patch create mode 100644 queue-5.15/soc-qcom-add-check-devm_kasprintf-returned-value.patch create mode 100644 queue-5.15/usb-add-support-for-new-usb-device-id-0x17ef-0x3098-.patch create mode 100644 queue-5.15/wifi-iwlwifi-mvm-use-the-sync-timepoint-api-in-suspe.patch create mode 100644 queue-5.15/x86-amd_nb-fix-compile-testing-without-config_amd_nb.patch diff --git a/queue-5.15/alsa-hda-realtek-add-subwoofer-quirk-for-infinix-zer.patch b/queue-5.15/alsa-hda-realtek-add-subwoofer-quirk-for-infinix-zer.patch new file mode 100644 index 00000000000..914d7686f1b --- /dev/null +++ b/queue-5.15/alsa-hda-realtek-add-subwoofer-quirk-for-infinix-zer.patch @@ -0,0 +1,67 @@ +From aa7ec0e26bc2ccbdc9450818147bbcc08085d515 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 28 Oct 2024 15:55:16 +0000 +Subject: ALSA: hda/realtek: Add subwoofer quirk for Infinix ZERO BOOK 13 + +From: Piyush Raj Chouhan + +[ Upstream commit ef5fbdf732a158ec27eeba69d8be851351f29f73 ] + +Infinix ZERO BOOK 13 has a 2+2 speaker system which isn't probed correctly. +This patch adds a quirk with the proper pin connections. +Also The mic in this laptop suffers too high gain resulting in mostly +fan noise being recorded, +This patch Also limit mic boost. + +HW Probe for device; https://linux-hardware.org/?probe=a2e892c47b + +Test: All 4 speaker works, Mic has low noise. + +Signed-off-by: Piyush Raj Chouhan +Link: https://patch.msgid.link/20241028155516.15552-1-piyuschouhan1598@gmail.com +Signed-off-by: Takashi Iwai +Signed-off-by: Sasha Levin +--- + sound/pci/hda/patch_realtek.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c +index 6b0d9e006f2a3..637180c774d7d 100644 +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -6935,6 +6935,7 @@ enum { + ALC290_FIXUP_SUBWOOFER_HSJACK, + ALC269_FIXUP_THINKPAD_ACPI, + ALC269_FIXUP_DMIC_THINKPAD_ACPI, ++ ALC269VB_FIXUP_INFINIX_ZERO_BOOK_13, + ALC269VB_FIXUP_CHUWI_COREBOOK_XPRO, + ALC255_FIXUP_ACER_MIC_NO_PRESENCE, + ALC255_FIXUP_ASUS_MIC_NO_PRESENCE, +@@ -7237,6 +7238,16 @@ static const struct hda_fixup alc269_fixups[] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc269_fixup_pincfg_U7x7_headset_mic, + }, ++ [ALC269VB_FIXUP_INFINIX_ZERO_BOOK_13] = { ++ .type = HDA_FIXUP_PINS, ++ .v.pins = (const struct hda_pintbl[]) { ++ { 0x14, 0x90170151 }, /* use as internal speaker (LFE) */ ++ { 0x1b, 0x90170152 }, /* use as internal speaker (back) */ ++ { } ++ }, ++ .chained = true, ++ .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST ++ }, + [ALC269VB_FIXUP_CHUWI_COREBOOK_XPRO] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { +@@ -9533,6 +9544,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { + SND_PCI_QUIRK(0x1d72, 0x1945, "Redmi G", ALC256_FIXUP_ASUS_HEADSET_MIC), + SND_PCI_QUIRK(0x1d72, 0x1947, "RedmiBook Air", ALC255_FIXUP_XIAOMI_HEADSET_MIC), + SND_PCI_QUIRK(0x2782, 0x0214, "VAIO VJFE-CL", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), ++ SND_PCI_QUIRK(0x2782, 0x0228, "Infinix ZERO BOOK 13", ALC269VB_FIXUP_INFINIX_ZERO_BOOK_13), + SND_PCI_QUIRK(0x2782, 0x0232, "CHUWI CoreBook XPro", ALC269VB_FIXUP_CHUWI_COREBOOK_XPRO), + SND_PCI_QUIRK(0x2782, 0x1707, "Vaio VJFE-ADL", ALC298_FIXUP_SPK_VOLUME), + SND_PCI_QUIRK(0x8086, 0x2074, "Intel NUC 8", ALC233_FIXUP_INTEL_NUC8_DMIC), +-- +2.43.0 + diff --git a/queue-5.15/alsa-usb-audio-fix-yamaha-p-125-quirk-entry.patch b/queue-5.15/alsa-usb-audio-fix-yamaha-p-125-quirk-entry.patch new file mode 100644 index 00000000000..3f72bbcf14f --- /dev/null +++ b/queue-5.15/alsa-usb-audio-fix-yamaha-p-125-quirk-entry.patch @@ -0,0 +1,56 @@ +From 04a34faf25dbdac017e79ff315241249c56588f4 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 11 Nov 2024 11:45:21 -0500 +Subject: ALSA: usb-audio: Fix Yamaha P-125 Quirk Entry + +From: Eryk Zagorski + +[ Upstream commit 6f891ca15b017707840c9e7f5afd9fc6cfd7d8b1 ] + +This patch switches the P-125 quirk entry to use a composite quirk as the +P-125 supplies both MIDI and Audio like many of the other Yamaha +keyboards + +Signed-off-by: Eryk Zagorski +Link: https://patch.msgid.link/20241111164520.9079-2-erykzagorski@gmail.com +Signed-off-by: Takashi Iwai +Signed-off-by: Sasha Levin +--- + sound/usb/quirks-table.h | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h +index dd98b4e13edac..4690b44987c05 100644 +--- a/sound/usb/quirks-table.h ++++ b/sound/usb/quirks-table.h +@@ -350,7 +350,6 @@ YAMAHA_DEVICE(0x105a, NULL), + YAMAHA_DEVICE(0x105b, NULL), + YAMAHA_DEVICE(0x105c, NULL), + YAMAHA_DEVICE(0x105d, NULL), +-YAMAHA_DEVICE(0x1718, "P-125"), + { + USB_DEVICE(0x0499, 0x1503), + .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { +@@ -485,6 +484,19 @@ YAMAHA_DEVICE(0x1718, "P-125"), + } + } + }, ++{ ++ USB_DEVICE(0x0499, 0x1718), ++ QUIRK_DRIVER_INFO { ++ /* .vendor_name = "Yamaha", */ ++ /* .product_name = "P-125", */ ++ QUIRK_DATA_COMPOSITE { ++ { QUIRK_DATA_STANDARD_AUDIO(1) }, ++ { QUIRK_DATA_STANDARD_AUDIO(2) }, ++ { QUIRK_DATA_MIDI_YAMAHA(3) }, ++ QUIRK_COMPOSITE_END ++ } ++ } ++}, + YAMAHA_DEVICE(0x2000, "DGP-7"), + YAMAHA_DEVICE(0x2001, "DGP-5"), + YAMAHA_DEVICE(0x2002, NULL), +-- +2.43.0 + diff --git a/queue-5.15/arm-9420-1-smp-fix-smp-for-xip-kernels.patch b/queue-5.15/arm-9420-1-smp-fix-smp-for-xip-kernels.patch new file mode 100644 index 00000000000..d22c12a5c45 --- /dev/null +++ b/queue-5.15/arm-9420-1-smp-fix-smp-for-xip-kernels.patch @@ -0,0 +1,84 @@ +From f23bfa5506c8f2a56d83f110a5cfb7805ddfb1a8 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 18 Sep 2024 06:57:53 +0100 +Subject: ARM: 9420/1: smp: Fix SMP for xip kernels + +From: Harith G + +[ Upstream commit 9e9b0cf9319b4db143014477b0bc4b39894248f1 ] + +Fix the physical address calculation of the following to get smp working +on xip kernels. +- secondary_data needed for secondary cpu bootup. +- secondary_startup address passed through psci. +- identity mapped code region needed for enabling mmu for secondary cpus. + +Signed-off-by: Harith George +Reviewed-by: Linus Walleij +Signed-off-by: Russell King (Oracle) +Signed-off-by: Sasha Levin +--- + arch/arm/kernel/head.S | 4 ++++ + arch/arm/kernel/psci_smp.c | 7 +++++++ + arch/arm/mm/idmap.c | 7 +++++++ + 3 files changed, 18 insertions(+) + +diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S +index 0638d20061d8c..6b6fa86593dec 100644 +--- a/arch/arm/kernel/head.S ++++ b/arch/arm/kernel/head.S +@@ -411,7 +411,11 @@ ENTRY(secondary_startup) + /* + * Use the page tables supplied from __cpu_up. + */ ++#ifdef CONFIG_XIP_KERNEL ++ ldr r3, =(secondary_data + PLAT_PHYS_OFFSET - PAGE_OFFSET) ++#else + adr_l r3, secondary_data ++#endif + mov_l r12, __secondary_switched + ldrd r4, r5, [r3, #0] @ get secondary_data.pgdir + ARM_BE8(eor r4, r4, r5) @ Swap r5 and r4 in BE: +diff --git a/arch/arm/kernel/psci_smp.c b/arch/arm/kernel/psci_smp.c +index d4392e1774848..3bb0c4dcfc5c9 100644 +--- a/arch/arm/kernel/psci_smp.c ++++ b/arch/arm/kernel/psci_smp.c +@@ -45,8 +45,15 @@ extern void secondary_startup(void); + static int psci_boot_secondary(unsigned int cpu, struct task_struct *idle) + { + if (psci_ops.cpu_on) ++#ifdef CONFIG_XIP_KERNEL ++ return psci_ops.cpu_on(cpu_logical_map(cpu), ++ ((phys_addr_t)(&secondary_startup) ++ - XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR) ++ + CONFIG_XIP_PHYS_ADDR)); ++#else + return psci_ops.cpu_on(cpu_logical_map(cpu), + virt_to_idmap(&secondary_startup)); ++#endif + return -ENODEV; + } + +diff --git a/arch/arm/mm/idmap.c b/arch/arm/mm/idmap.c +index 448e57c6f6534..4a833e89782aa 100644 +--- a/arch/arm/mm/idmap.c ++++ b/arch/arm/mm/idmap.c +@@ -84,8 +84,15 @@ static void identity_mapping_add(pgd_t *pgd, const char *text_start, + unsigned long addr, end; + unsigned long next; + ++#ifdef CONFIG_XIP_KERNEL ++ addr = (phys_addr_t)(text_start) - XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR) ++ + CONFIG_XIP_PHYS_ADDR; ++ end = (phys_addr_t)(text_end) - XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR) ++ + CONFIG_XIP_PHYS_ADDR; ++#else + addr = virt_to_idmap(text_start); + end = virt_to_idmap(text_end); ++#endif + pr_info("Setting up static identity map for 0x%lx - 0x%lx\n", addr, end); + + prot |= PMD_TYPE_SECT | PMD_SECT_AP_WRITE | PMD_SECT_AF; +-- +2.43.0 + diff --git a/queue-5.15/asoc-intel-bytcr_rt5640-add-dmi-quirk-for-vexia-edu-.patch b/queue-5.15/asoc-intel-bytcr_rt5640-add-dmi-quirk-for-vexia-edu-.patch new file mode 100644 index 00000000000..b48c5250fa0 --- /dev/null +++ b/queue-5.15/asoc-intel-bytcr_rt5640-add-dmi-quirk-for-vexia-edu-.patch @@ -0,0 +1,53 @@ +From 6b2820e2967299a650a91c4cacf4d2accb3d01e0 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 24 Oct 2024 23:16:15 +0200 +Subject: ASoC: Intel: bytcr_rt5640: Add DMI quirk for Vexia Edu Atla 10 tablet + +From: Hans de Goede + +[ Upstream commit 0107f28f135231da22a9ad5756bb16bd5cada4d5 ] + +The Vexia Edu Atla 10 tablet mostly uses the BYTCR tablet defaults, +but as happens on more models it is using IN1 instead of IN3 for +its internal mic and JD_SRC_JD2_IN4N instead of JD_SRC_JD1_IN4P +for jack-detection. + +Add a DMI quirk for this to fix the internal-mic and jack-detection. + +Signed-off-by: Hans de Goede +Link: https://patch.msgid.link/20241024211615.79518-2-hdegoede@redhat.com +Signed-off-by: Mark Brown +Signed-off-by: Sasha Levin +--- + sound/soc/intel/boards/bytcr_rt5640.c | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c +index 899a8435a1eb8..8706fef8ccce8 100644 +--- a/sound/soc/intel/boards/bytcr_rt5640.c ++++ b/sound/soc/intel/boards/bytcr_rt5640.c +@@ -1102,6 +1102,21 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = { + BYT_RT5640_SSP0_AIF2 | + BYT_RT5640_MCLK_EN), + }, ++ { /* Vexia Edu Atla 10 tablet */ ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"), ++ DMI_MATCH(DMI_BOARD_NAME, "Aptio CRB"), ++ /* Above strings are too generic, also match on BIOS date */ ++ DMI_MATCH(DMI_BIOS_DATE, "08/25/2014"), ++ }, ++ .driver_data = (void *)(BYT_RT5640_IN1_MAP | ++ BYT_RT5640_JD_SRC_JD2_IN4N | ++ BYT_RT5640_OVCD_TH_2000UA | ++ BYT_RT5640_OVCD_SF_0P75 | ++ BYT_RT5640_DIFF_MIC | ++ BYT_RT5640_SSP0_AIF2 | ++ BYT_RT5640_MCLK_EN), ++ }, + { /* Voyo Winpad A15 */ + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"), +-- +2.43.0 + diff --git a/queue-5.15/asoc-intel-bytcr_rt5640-add-support-for-non-acpi-ins.patch b/queue-5.15/asoc-intel-bytcr_rt5640-add-support-for-non-acpi-ins.patch new file mode 100644 index 00000000000..556e0e5ba8a --- /dev/null +++ b/queue-5.15/asoc-intel-bytcr_rt5640-add-support-for-non-acpi-ins.patch @@ -0,0 +1,93 @@ +From 20c3b4cd6a5aca556dd76136588d723933f779e6 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 24 Oct 2024 23:16:14 +0200 +Subject: ASoC: Intel: bytcr_rt5640: Add support for non ACPI instantiated + codec +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Hans de Goede + +[ Upstream commit d48696b915527b5bcdd207a299aec03fb037eb17 ] + +On some x86 Bay Trail tablets which shipped with Android as factory OS, +the DSDT is so broken that the codec needs to be manually instantatiated +by the special x86-android-tablets.ko "fixup" driver for cases like this. + +This means that the codec-dev cannot be retrieved through its ACPI fwnode, +add support to the bytcr_rt5640 machine driver for such manually +instantiated rt5640 i2c_clients. + +An example of a tablet which needs this is the Vexia EDU ATLA 10 tablet, +which has been distributed to schools in the Spanish Andalucía region. + +Signed-off-by: Hans de Goede +Link: https://patch.msgid.link/20241024211615.79518-1-hdegoede@redhat.com +Signed-off-by: Mark Brown +Signed-off-by: Sasha Levin +--- + sound/soc/intel/boards/bytcr_rt5640.c | 33 ++++++++++++++++++++++++--- + 1 file changed, 30 insertions(+), 3 deletions(-) + +diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c +index 3d2a0e8cad9a5..899a8435a1eb8 100644 +--- a/sound/soc/intel/boards/bytcr_rt5640.c ++++ b/sound/soc/intel/boards/bytcr_rt5640.c +@@ -17,6 +17,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -32,6 +33,8 @@ + #include "../atom/sst-atom-controls.h" + #include "../common/soc-intel-quirks.h" + ++#define BYT_RT5640_FALLBACK_CODEC_DEV_NAME "i2c-rt5640" ++ + enum { + BYT_RT5640_DMIC1_MAP, + BYT_RT5640_DMIC2_MAP, +@@ -1616,9 +1619,33 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev) + + codec_dev = acpi_get_first_physical_node(adev); + acpi_dev_put(adev); +- if (!codec_dev) +- return -EPROBE_DEFER; +- priv->codec_dev = get_device(codec_dev); ++ ++ if (codec_dev) { ++ priv->codec_dev = get_device(codec_dev); ++ } else { ++ /* ++ * Special case for Android tablets where the codec i2c_client ++ * has been manually instantiated by x86_android_tablets.ko due ++ * to a broken DSDT. ++ */ ++ codec_dev = bus_find_device_by_name(&i2c_bus_type, NULL, ++ BYT_RT5640_FALLBACK_CODEC_DEV_NAME); ++ if (!codec_dev) ++ return -EPROBE_DEFER; ++ ++ if (!i2c_verify_client(codec_dev)) { ++ dev_err(dev, "Error '%s' is not an i2c_client\n", ++ BYT_RT5640_FALLBACK_CODEC_DEV_NAME); ++ put_device(codec_dev); ++ } ++ ++ /* fixup codec name */ ++ strscpy(byt_rt5640_codec_name, BYT_RT5640_FALLBACK_CODEC_DEV_NAME, ++ sizeof(byt_rt5640_codec_name)); ++ ++ /* bus_find_device() returns a reference no need to get() */ ++ priv->codec_dev = codec_dev; ++ } + + /* + * swap SSP0 if bytcr is detected +-- +2.43.0 + diff --git a/queue-5.15/asoc-intel-sst-support-lpe0f28-acpi-hid.patch b/queue-5.15/asoc-intel-sst-support-lpe0f28-acpi-hid.patch new file mode 100644 index 00000000000..590f3697e2e --- /dev/null +++ b/queue-5.15/asoc-intel-sst-support-lpe0f28-acpi-hid.patch @@ -0,0 +1,146 @@ +From c71012da4d4c4b83044f8791f90e81f7bd1f3f8b Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 25 Oct 2024 11:02:21 +0200 +Subject: ASoC: Intel: sst: Support LPE0F28 ACPI HID +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Hans de Goede + +[ Upstream commit 6668610b4d8ce9a3ee3ed61a9471f62fb5f05bf9 ] + +Some old Bay Trail tablets which shipped with Android as factory OS +have the SST/LPE audio engine described by an ACPI device with a +HID (Hardware-ID) of LPE0F28 instead of 80860F28. + +Add support for this. Note this uses a new sst_res_info for just +the LPE0F28 case because it has a different layout for the IO-mem ACPI +resources then the 80860F28. + +An example of a tablet which needs this is the Vexia EDU ATLA 10 tablet, +which has been distributed to schools in the Spanish Andalucía region. + +Signed-off-by: Hans de Goede +Link: https://patch.msgid.link/20241025090221.52198-1-hdegoede@redhat.com +Signed-off-by: Mark Brown +Signed-off-by: Sasha Levin +--- + sound/hda/intel-dsp-config.c | 4 ++ + sound/soc/intel/atom/sst/sst_acpi.c | 64 +++++++++++++++++++++++++---- + 2 files changed, 59 insertions(+), 9 deletions(-) + +diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c +index e4cd6f0c686fc..6aa1be124ee8d 100644 +--- a/sound/hda/intel-dsp-config.c ++++ b/sound/hda/intel-dsp-config.c +@@ -559,6 +559,10 @@ static const struct config_entry acpi_config_table[] = { + #if IS_ENABLED(CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI) || \ + IS_ENABLED(CONFIG_SND_SOC_SOF_BAYTRAIL) + /* BayTrail */ ++ { ++ .flags = FLAG_SST_OR_SOF_BYT, ++ .acpi_hid = "LPE0F28", ++ }, + { + .flags = FLAG_SST_OR_SOF_BYT, + .acpi_hid = "80860F28", +diff --git a/sound/soc/intel/atom/sst/sst_acpi.c b/sound/soc/intel/atom/sst/sst_acpi.c +index 3be64430c2567..53d04c7ff6831 100644 +--- a/sound/soc/intel/atom/sst/sst_acpi.c ++++ b/sound/soc/intel/atom/sst/sst_acpi.c +@@ -126,6 +126,28 @@ static const struct sst_res_info bytcr_res_info = { + .acpi_ipc_irq_index = 0 + }; + ++/* For "LPE0F28" ACPI device found on some Android factory OS models */ ++static const struct sst_res_info lpe8086_res_info = { ++ .shim_offset = 0x140000, ++ .shim_size = 0x000100, ++ .shim_phy_addr = SST_BYT_SHIM_PHY_ADDR, ++ .ssp0_offset = 0xa0000, ++ .ssp0_size = 0x1000, ++ .dma0_offset = 0x98000, ++ .dma0_size = 0x4000, ++ .dma1_offset = 0x9c000, ++ .dma1_size = 0x4000, ++ .iram_offset = 0x0c0000, ++ .iram_size = 0x14000, ++ .dram_offset = 0x100000, ++ .dram_size = 0x28000, ++ .mbox_offset = 0x144000, ++ .mbox_size = 0x1000, ++ .acpi_lpe_res_index = 1, ++ .acpi_ddr_index = 0, ++ .acpi_ipc_irq_index = 0 ++}; ++ + static struct sst_platform_info byt_rvp_platform_data = { + .probe_data = &byt_fwparse_info, + .ipc_info = &byt_ipc_info, +@@ -269,10 +291,38 @@ static int sst_acpi_probe(struct platform_device *pdev) + mach->pdata = &chv_platform_data; + pdata = mach->pdata; + +- ret = kstrtouint(id->id, 16, &dev_id); +- if (ret < 0) { +- dev_err(dev, "Unique device id conversion error: %d\n", ret); +- return ret; ++ if (!strcmp(id->id, "LPE0F28")) { ++ struct resource *rsrc; ++ ++ /* Use regular BYT SST PCI VID:PID */ ++ dev_id = 0x80860F28; ++ byt_rvp_platform_data.res_info = &lpe8086_res_info; ++ ++ /* ++ * The "LPE0F28" ACPI device has separate IO-mem resources for: ++ * DDR, SHIM, MBOX, IRAM, DRAM, CFG ++ * None of which covers the entire LPE base address range. ++ * lpe8086_res_info.acpi_lpe_res_index points to the SHIM. ++ * Patch this to cover the entire base address range as expected ++ * by sst_platform_get_resources(). ++ */ ++ rsrc = platform_get_resource(pdev, IORESOURCE_MEM, ++ pdata->res_info->acpi_lpe_res_index); ++ if (!rsrc) { ++ dev_err(ctx->dev, "Invalid SHIM base\n"); ++ return -EIO; ++ } ++ rsrc->start -= pdata->res_info->shim_offset; ++ rsrc->end = rsrc->start + 0x200000 - 1; ++ } else { ++ ret = kstrtouint(id->id, 16, &dev_id); ++ if (ret < 0) { ++ dev_err(dev, "Unique device id conversion error: %d\n", ret); ++ return ret; ++ } ++ ++ if (soc_intel_is_byt_cr(pdev)) ++ byt_rvp_platform_data.res_info = &bytcr_res_info; + } + + dev_dbg(dev, "ACPI device id: %x\n", dev_id); +@@ -281,11 +331,6 @@ static int sst_acpi_probe(struct platform_device *pdev) + if (ret < 0) + return ret; + +- if (soc_intel_is_byt_cr(pdev)) { +- /* override resource info */ +- byt_rvp_platform_data.res_info = &bytcr_res_info; +- } +- + /* update machine parameters */ + mach->mach_params.acpi_ipc_irq_index = + pdata->res_info->acpi_ipc_irq_index; +@@ -346,6 +391,7 @@ static int sst_acpi_remove(struct platform_device *pdev) + } + + static const struct acpi_device_id sst_acpi_ids[] = { ++ { "LPE0F28", (unsigned long)&snd_soc_acpi_intel_baytrail_machines}, + { "80860F28", (unsigned long)&snd_soc_acpi_intel_baytrail_machines}, + { "808622A8", (unsigned long)&snd_soc_acpi_intel_cherrytrail_machines}, + { }, +-- +2.43.0 + diff --git a/queue-5.15/asoc-stm-prevent-potential-division-by-zero-in-stm32.patch b/queue-5.15/asoc-stm-prevent-potential-division-by-zero-in-stm32.patch new file mode 100644 index 00000000000..0d2408fdd32 --- /dev/null +++ b/queue-5.15/asoc-stm-prevent-potential-division-by-zero-in-stm32.patch @@ -0,0 +1,40 @@ +From 4eef468d6b22c8ca43b578086b9932f62fd52b45 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 6 Nov 2024 09:46:54 +0800 +Subject: ASoC: stm: Prevent potential division by zero in + stm32_sai_mclk_round_rate() + +From: Luo Yifan + +[ Upstream commit 63c1c87993e0e5bb11bced3d8224446a2bc62338 ] + +This patch checks if div is less than or equal to zero (div <= 0). If +div is zero or negative, the function returns -EINVAL, ensuring the +division operation (*prate / div) is safe to perform. + +Signed-off-by: Luo Yifan +Link: https://patch.msgid.link/20241106014654.206860-1-luoyifan@cmss.chinamobile.com +Signed-off-by: Mark Brown +Signed-off-by: Sasha Levin +--- + sound/soc/stm/stm32_sai_sub.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/sound/soc/stm/stm32_sai_sub.c b/sound/soc/stm/stm32_sai_sub.c +index 9c3b8e2096565..aa9cdd93b5778 100644 +--- a/sound/soc/stm/stm32_sai_sub.c ++++ b/sound/soc/stm/stm32_sai_sub.c +@@ -380,8 +380,8 @@ static long stm32_sai_mclk_round_rate(struct clk_hw *hw, unsigned long rate, + int div; + + div = stm32_sai_get_clk_div(sai, *prate, rate); +- if (div < 0) +- return div; ++ if (div <= 0) ++ return -EINVAL; + + mclk->freq = *prate / div; + +-- +2.43.0 + diff --git a/queue-5.15/asoc-stm-prevent-potential-division-by-zero-in-stm32.patch-10468 b/queue-5.15/asoc-stm-prevent-potential-division-by-zero-in-stm32.patch-10468 new file mode 100644 index 00000000000..b8f774432c9 --- /dev/null +++ b/queue-5.15/asoc-stm-prevent-potential-division-by-zero-in-stm32.patch-10468 @@ -0,0 +1,39 @@ +From 5c92434682ed0abb67f42032d05f133e0cc523af Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 7 Nov 2024 09:59:36 +0800 +Subject: ASoC: stm: Prevent potential division by zero in + stm32_sai_get_clk_div() + +From: Luo Yifan + +[ Upstream commit 23569c8b314925bdb70dd1a7b63cfe6100868315 ] + +This patch checks if div is less than or equal to zero (div <= 0). If +div is zero or negative, the function returns -EINVAL, ensuring the +division operation is safe to perform. + +Signed-off-by: Luo Yifan +Reviewed-by: Olivier Moysan +Link: https://patch.msgid.link/20241107015936.211902-1-luoyifan@cmss.chinamobile.com +Signed-off-by: Mark Brown +Signed-off-by: Sasha Levin +--- + sound/soc/stm/stm32_sai_sub.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sound/soc/stm/stm32_sai_sub.c b/sound/soc/stm/stm32_sai_sub.c +index aa9cdd93b5778..d71b4aecd269f 100644 +--- a/sound/soc/stm/stm32_sai_sub.c ++++ b/sound/soc/stm/stm32_sai_sub.c +@@ -319,7 +319,7 @@ static int stm32_sai_get_clk_div(struct stm32_sai_sub_data *sai, + int div; + + div = DIV_ROUND_CLOSEST(input_rate, output_rate); +- if (div > SAI_XCR1_MCKDIV_MAX(version)) { ++ if (div > SAI_XCR1_MCKDIV_MAX(version) || div <= 0) { + dev_err(&sai->pdev->dev, "Divider %d out of range\n", div); + return -EINVAL; + } +-- +2.43.0 + diff --git a/queue-5.15/can-j1939-fix-error-in-j1939-documentation.patch b/queue-5.15/can-j1939-fix-error-in-j1939-documentation.patch new file mode 100644 index 00000000000..2a32c326aaa --- /dev/null +++ b/queue-5.15/can-j1939-fix-error-in-j1939-documentation.patch @@ -0,0 +1,40 @@ +From b52a57c3f127761142ed7ae0d308c70eb4e1cd59 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 23 Oct 2024 16:52:57 +0200 +Subject: can: j1939: fix error in J1939 documentation. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Alexander Hölzl + +[ Upstream commit b6ec62e01aa4229bc9d3861d1073806767ea7838 ] + +The description of PDU1 format usage mistakenly referred to PDU2 format. + +Signed-off-by: Alexander Hölzl +Acked-by: Oleksij Rempel +Acked-by: Vincent Mailhol +Link: https://patch.msgid.link/20241023145257.82709-1-alexander.hoelzl@gmx.net +Signed-off-by: Marc Kleine-Budde +Signed-off-by: Sasha Levin +--- + Documentation/networking/j1939.rst | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Documentation/networking/j1939.rst b/Documentation/networking/j1939.rst +index b705d2801e9c3..80b1c5e19fd53 100644 +--- a/Documentation/networking/j1939.rst ++++ b/Documentation/networking/j1939.rst +@@ -121,7 +121,7 @@ format, the Group Extension is set in the PS-field. + + On the other hand, when using PDU1 format, the PS-field contains a so-called + Destination Address, which is _not_ part of the PGN. When communicating a PGN +-from user space to kernel (or vice versa) and PDU2 format is used, the PS-field ++from user space to kernel (or vice versa) and PDU1 format is used, the PS-field + of the PGN shall be set to zero. The Destination Address shall be set + elsewhere. + +-- +2.43.0 + diff --git a/queue-5.15/ipmr-fix-access-to-mfc_cache_list-without-lock-held.patch b/queue-5.15/ipmr-fix-access-to-mfc_cache_list-without-lock-held.patch new file mode 100644 index 00000000000..ad9ce75eae8 --- /dev/null +++ b/queue-5.15/ipmr-fix-access-to-mfc_cache_list-without-lock-held.patch @@ -0,0 +1,76 @@ +From 9df1a41adea6047bc178dfff6cbc3a55d9d788a9 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 8 Nov 2024 06:08:36 -0800 +Subject: ipmr: Fix access to mfc_cache_list without lock held + +From: Breno Leitao + +[ Upstream commit e28acc9c1ccfcb24c08e020828f69d0a915b06ae ] + +Accessing `mr_table->mfc_cache_list` is protected by an RCU lock. In the +following code flow, the RCU read lock is not held, causing the +following error when `RCU_PROVE` is not held. The same problem might +show up in the IPv6 code path. + + 6.12.0-rc5-kbuilder-01145-gbac17284bdcb #33 Tainted: G E N + ----------------------------- + net/ipv4/ipmr_base.c:313 RCU-list traversed in non-reader section!! + + rcu_scheduler_active = 2, debug_locks = 1 + 2 locks held by RetransmitAggre/3519: + #0: ffff88816188c6c0 (nlk_cb_mutex-ROUTE){+.+.}-{3:3}, at: __netlink_dump_start+0x8a/0x290 + #1: ffffffff83fcf7a8 (rtnl_mutex){+.+.}-{3:3}, at: rtnl_dumpit+0x6b/0x90 + + stack backtrace: + lockdep_rcu_suspicious + mr_table_dump + ipmr_rtm_dumproute + rtnl_dump_all + rtnl_dumpit + netlink_dump + __netlink_dump_start + rtnetlink_rcv_msg + netlink_rcv_skb + netlink_unicast + netlink_sendmsg + +This is not a problem per see, since the RTNL lock is held here, so, it +is safe to iterate in the list without the RCU read lock, as suggested +by Eric. + +To alleviate the concern, modify the code to use +list_for_each_entry_rcu() with the RTNL-held argument. + +The annotation will raise an error only if RTNL or RCU read lock are +missing during iteration, signaling a legitimate problem, otherwise it +will avoid this false positive. + +This will solve the IPv6 case as well, since ip6mr_rtm_dumproute() calls +this function as well. + +Signed-off-by: Breno Leitao +Reviewed-by: David Ahern +Link: https://patch.msgid.link/20241108-ipmr_rcu-v2-1-c718998e209b@debian.org +Signed-off-by: Jakub Kicinski +Signed-off-by: Sasha Levin +--- + net/ipv4/ipmr_base.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/net/ipv4/ipmr_base.c b/net/ipv4/ipmr_base.c +index aa8738a91210a..c45cb7cb57590 100644 +--- a/net/ipv4/ipmr_base.c ++++ b/net/ipv4/ipmr_base.c +@@ -301,7 +301,8 @@ int mr_table_dump(struct mr_table *mrt, struct sk_buff *skb, + if (filter->filter_set) + flags |= NLM_F_DUMP_FILTERED; + +- list_for_each_entry_rcu(mfc, &mrt->mfc_cache_list, list) { ++ list_for_each_entry_rcu(mfc, &mrt->mfc_cache_list, list, ++ lockdep_rtnl_is_held()) { + if (e < s_e) + goto next_entry; + if (filter->dev && +-- +2.43.0 + diff --git a/queue-5.15/mac80211-fix-user-power-when-emulating-chanctx.patch b/queue-5.15/mac80211-fix-user-power-when-emulating-chanctx.patch new file mode 100644 index 00000000000..0137c4182cc --- /dev/null +++ b/queue-5.15/mac80211-fix-user-power-when-emulating-chanctx.patch @@ -0,0 +1,37 @@ +From 91b02b35cfda8ccc217f68ea040ed690bb88e2a8 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 10 Oct 2024 13:39:54 -0700 +Subject: mac80211: fix user-power when emulating chanctx + +From: Ben Greear + +[ Upstream commit 9b15c6cf8d2e82c8427cd06f535d8de93b5b995c ] + +ieee80211_calc_hw_conf_chan was ignoring the configured +user_txpower. If it is set, use it to potentially decrease +txpower as requested. + +Signed-off-by: Ben Greear +Link: https://patch.msgid.link/20241010203954.1219686-1-greearb@candelatech.com +Signed-off-by: Johannes Berg +Signed-off-by: Sasha Levin +--- + net/mac80211/main.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/net/mac80211/main.c b/net/mac80211/main.c +index 1c2cdaeb353b0..6253a89411cbe 100644 +--- a/net/mac80211/main.c ++++ b/net/mac80211/main.c +@@ -144,6 +144,8 @@ static u32 ieee80211_hw_conf_chan(struct ieee80211_local *local) + } + + power = ieee80211_chandef_max_power(&chandef); ++ if (local->user_power_level != IEEE80211_UNSET_POWER_LEVEL) ++ power = min(local->user_power_level, power); + + rcu_read_lock(); + list_for_each_entry_rcu(sdata, &local->interfaces, list) { +-- +2.43.0 + diff --git a/queue-5.15/net-usb-qmi_wwan-add-quectel-rg650v.patch b/queue-5.15/net-usb-qmi_wwan-add-quectel-rg650v.patch new file mode 100644 index 00000000000..e542d424cc2 --- /dev/null +++ b/queue-5.15/net-usb-qmi_wwan-add-quectel-rg650v.patch @@ -0,0 +1,65 @@ +From a56d5801f36ccc10b2023cbb8c12de9e9e8386f5 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 24 Oct 2024 17:11:13 +0200 +Subject: net: usb: qmi_wwan: add Quectel RG650V +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Benoît Monin + +[ Upstream commit 6b3f18a76be6bbd237c7594cf0bf2912b68084fe ] + +Add support for Quectel RG650V which is based on Qualcomm SDX65 chip. +The composition is DIAG / NMEA / AT / AT / QMI. + +T: Bus=02 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#= 4 Spd=5000 MxCh= 0 +D: Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1 +P: Vendor=2c7c ProdID=0122 Rev=05.15 +S: Manufacturer=Quectel +S: Product=RG650V-EU +S: SerialNumber=xxxxxxx +C: #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=896mA +I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option +E: Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms +E: Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms +I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option +E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms +E: Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms +I: If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option +E: Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms +E: Ad=83(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms +E: Ad=84(I) Atr=03(Int.) MxPS= 10 Ivl=9ms +I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option +E: Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms +E: Ad=85(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms +E: Ad=86(I) Atr=03(Int.) MxPS= 10 Ivl=9ms +I: If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan +E: Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms +E: Ad=87(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms +E: Ad=88(I) Atr=03(Int.) MxPS= 8 Ivl=9ms + +Signed-off-by: Benoît Monin +Reviewed-by: Simon Horman +Link: https://patch.msgid.link/20241024151113.53203-1-benoit.monin@gmx.fr +Signed-off-by: Jakub Kicinski +Signed-off-by: Sasha Levin +--- + drivers/net/usb/qmi_wwan.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c +index 74e3ba53f5b44..758af6ea861ba 100644 +--- a/drivers/net/usb/qmi_wwan.c ++++ b/drivers/net/usb/qmi_wwan.c +@@ -1081,6 +1081,7 @@ static const struct usb_device_id products[] = { + USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0x581d, USB_CLASS_VENDOR_SPEC, 1, 7), + .driver_info = (unsigned long)&qmi_wwan_info, + }, ++ {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0122)}, /* Quectel RG650V */ + {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0125)}, /* Quectel EC25, EC20 R2.0 Mini PCIe */ + {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0306)}, /* Quectel EP06/EG06/EM06 */ + {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0512)}, /* Quectel EG12/EM12 */ +-- +2.43.0 + diff --git a/queue-5.15/platform-x86-dell-smbios-base-extends-support-to-ali.patch b/queue-5.15/platform-x86-dell-smbios-base-extends-support-to-ali.patch new file mode 100644 index 00000000000..ea54d890bf0 --- /dev/null +++ b/queue-5.15/platform-x86-dell-smbios-base-extends-support-to-ali.patch @@ -0,0 +1,51 @@ +From fdbbd318c4b2b2de3076c15dd9109c9cbd80749d Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 31 Oct 2024 12:40:24 -0300 +Subject: platform/x86: dell-smbios-base: Extends support to Alienware products +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Kurt Borja + +[ Upstream commit a36b8b84ac4327b90ef5a22bc97cc96a92073330 ] + +Fixes the following error: + +dell_smbios: Unable to run on non-Dell system + +Which is triggered after dell-wmi driver fails to initialize on +Alienware systems, as it depends on dell-smbios. + +This effectively extends dell-wmi, dell-smbios and dcdbas support to +Alienware devices, that might share some features of the SMBIOS intereface +calling interface with other Dell products. + +Tested on an Alienware X15 R1. + +Signed-off-by: Kurt Borja +Reviewed-by: Mario Limonciello +Acked-by: Pali Rohár +Link: https://lore.kernel.org/r/20241031154023.6149-2-kuurtb@gmail.com +Reviewed-by: Hans de Goede +Signed-off-by: Hans de Goede +Signed-off-by: Sasha Levin +--- + drivers/platform/x86/dell/dell-smbios-base.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/platform/x86/dell/dell-smbios-base.c b/drivers/platform/x86/dell/dell-smbios-base.c +index b19c5ff31a703..5b8783a7b0455 100644 +--- a/drivers/platform/x86/dell/dell-smbios-base.c ++++ b/drivers/platform/x86/dell/dell-smbios-base.c +@@ -543,6 +543,7 @@ static int __init dell_smbios_init(void) + int ret, wmi, smm; + + if (!dmi_find_device(DMI_DEV_TYPE_OEM_STRING, "Dell System", NULL) && ++ !dmi_find_device(DMI_DEV_TYPE_OEM_STRING, "Alienware", NULL) && + !dmi_find_device(DMI_DEV_TYPE_OEM_STRING, "www.dell.com", NULL)) { + pr_err("Unable to run on non-Dell system\n"); + return -ENODEV; +-- +2.43.0 + diff --git a/queue-5.15/platform-x86-dell-wmi-base-handle-meta-key-lock-unlo.patch b/queue-5.15/platform-x86-dell-wmi-base-handle-meta-key-lock-unlo.patch new file mode 100644 index 00000000000..e1457f429dc --- /dev/null +++ b/queue-5.15/platform-x86-dell-wmi-base-handle-meta-key-lock-unlo.patch @@ -0,0 +1,52 @@ +From db3304c3684005602d17e1e12ceb3b8bedcc9bb0 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 31 Oct 2024 12:44:42 -0300 +Subject: platform/x86: dell-wmi-base: Handle META key Lock/Unlock events +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Kurt Borja + +[ Upstream commit ec61f0bb4feec3345626a2b93b970b6719743997 ] + +Some Alienware devices have a key that locks/unlocks the Meta key. This +key triggers a WMI event that should be ignored by the kernel, as it's +handled by internally the firmware. + +There is no known way of changing this default behavior. The firmware +would lock/unlock the Meta key, regardless of how the event is handled. + +Tested on an Alienware x15 R1. + +Signed-off-by: Kurt Borja +Reviewed-by: Mario Limonciello +Acked-by: Pali Rohár +Link: https://lore.kernel.org/r/20241031154441.6663-2-kuurtb@gmail.com +Reviewed-by: Hans de Goede +Signed-off-by: Hans de Goede +Signed-off-by: Sasha Levin +--- + drivers/platform/x86/dell/dell-wmi-base.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/drivers/platform/x86/dell/dell-wmi-base.c b/drivers/platform/x86/dell/dell-wmi-base.c +index b12e6ebd10dd6..c853b429b9d73 100644 +--- a/drivers/platform/x86/dell/dell-wmi-base.c ++++ b/drivers/platform/x86/dell/dell-wmi-base.c +@@ -79,6 +79,12 @@ static const struct dmi_system_id dell_wmi_smbios_list[] __initconst = { + static const struct key_entry dell_wmi_keymap_type_0000[] = { + { KE_IGNORE, 0x003a, { KEY_CAPSLOCK } }, + ++ /* Meta key lock */ ++ { KE_IGNORE, 0xe000, { KEY_RIGHTMETA } }, ++ ++ /* Meta key unlock */ ++ { KE_IGNORE, 0xe001, { KEY_RIGHTMETA } }, ++ + /* Key code is followed by brightness level */ + { KE_KEY, 0xe005, { KEY_BRIGHTNESSDOWN } }, + { KE_KEY, 0xe006, { KEY_BRIGHTNESSUP } }, +-- +2.43.0 + diff --git a/queue-5.15/proc-softirqs-replace-seq_printf-with-seq_put_decima.patch b/queue-5.15/proc-softirqs-replace-seq_printf-with-seq_put_decima.patch new file mode 100644 index 00000000000..234d2e42495 --- /dev/null +++ b/queue-5.15/proc-softirqs-replace-seq_printf-with-seq_put_decima.patch @@ -0,0 +1,39 @@ +From 33ddb7f6982c84bb9c6f24b1da7adcb7d874ef81 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 6 Nov 2024 10:12:28 +0800 +Subject: proc/softirqs: replace seq_printf with seq_put_decimal_ull_width + +From: David Wang <00107082@163.com> + +[ Upstream commit 84b9749a3a704dcc824a88aa8267247c801d51e4 ] + +seq_printf is costy, on a system with n CPUs, reading /proc/softirqs +would yield 10*n decimal values, and the extra cost parsing format string +grows linearly with number of cpus. Replace seq_printf with +seq_put_decimal_ull_width have significant performance improvement. +On an 8CPUs system, reading /proc/softirqs show ~40% performance +gain with this patch. + +Signed-off-by: David Wang <00107082@163.com> +Signed-off-by: Linus Torvalds +Signed-off-by: Sasha Levin +--- + fs/proc/softirqs.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/fs/proc/softirqs.c b/fs/proc/softirqs.c +index 12901dcf57e2b..d8f4e7d54d002 100644 +--- a/fs/proc/softirqs.c ++++ b/fs/proc/softirqs.c +@@ -19,7 +19,7 @@ static int show_softirqs(struct seq_file *p, void *v) + for (i = 0; i < NR_SOFTIRQS; i++) { + seq_printf(p, "%12s:", softirq_to_name[i]); + for_each_possible_cpu(j) +- seq_printf(p, " %10u", kstat_softirqs_cpu(i, j)); ++ seq_put_decimal_ull_width(p, " ", kstat_softirqs_cpu(i, j), 10); + seq_putc(p, '\n'); + } + return 0; +-- +2.43.0 + diff --git a/queue-5.15/regulator-rk808-add-apply_bit-for-buck3-on-rk809.patch b/queue-5.15/regulator-rk808-add-apply_bit-for-buck3-on-rk809.patch new file mode 100644 index 00000000000..bbd6022cba8 --- /dev/null +++ b/queue-5.15/regulator-rk808-add-apply_bit-for-buck3-on-rk809.patch @@ -0,0 +1,43 @@ +From a5c3d3c85cc21f79b736fc8ccad51dbb397962b9 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 17 Oct 2024 21:37:28 +0300 +Subject: regulator: rk808: Add apply_bit for BUCK3 on RK809 + +From: Mikhail Rudenko + +[ Upstream commit 5e53e4a66bc7430dd2d11c18a86410e3a38d2940 ] + +Currently, RK809's BUCK3 regulator is modelled in the driver as a +configurable regulator with 0.5-2.4V voltage range. But the voltage +setting is not actually applied, because when bit 6 of +PMIC_POWER_CONFIG register is set to 0 (default), BUCK3 output voltage +is determined by the external feedback resistor. Fix this, by setting +bit 6 when voltage selection is set. Existing users which do not +specify voltage constraints in their device trees will not be affected +by this change, since no voltage setting is applied in those cases, +and bit 6 is not enabled. + +Signed-off-by: Mikhail Rudenko +Link: https://patch.msgid.link/20241017-rk809-dcdc3-v1-1-e3c3de92f39c@gmail.com +Signed-off-by: Mark Brown +Signed-off-by: Sasha Levin +--- + drivers/regulator/rk808-regulator.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/regulator/rk808-regulator.c b/drivers/regulator/rk808-regulator.c +index 127dc2e2e6903..0763a5bbee2f5 100644 +--- a/drivers/regulator/rk808-regulator.c ++++ b/drivers/regulator/rk808-regulator.c +@@ -906,6 +906,8 @@ static const struct regulator_desc rk809_reg[] = { + .n_linear_ranges = ARRAY_SIZE(rk817_buck1_voltage_ranges), + .vsel_reg = RK817_BUCK3_ON_VSEL_REG, + .vsel_mask = RK817_BUCK_VSEL_MASK, ++ .apply_reg = RK817_POWER_CONFIG, ++ .apply_bit = RK817_BUCK3_FB_RES_INTER, + .enable_reg = RK817_POWER_EN_REG(0), + .enable_mask = ENABLE_MASK(RK817_ID_DCDC3), + .enable_val = ENABLE_MASK(RK817_ID_DCDC3), +-- +2.43.0 + diff --git a/queue-5.15/selftests-watchdog-test-fix-system-accidentally-rese.patch b/queue-5.15/selftests-watchdog-test-fix-system-accidentally-rese.patch new file mode 100644 index 00000000000..fe4238c5678 --- /dev/null +++ b/queue-5.15/selftests-watchdog-test-fix-system-accidentally-rese.patch @@ -0,0 +1,58 @@ +From 97fc5d5c89f4f0839e5cda5af6ded22033bd2940 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 29 Oct 2024 11:13:24 +0800 +Subject: selftests/watchdog-test: Fix system accidentally reset after + watchdog-test + +From: Li Zhijian + +[ Upstream commit dc1308bee1ed03b4d698d77c8bd670d399dcd04d ] + +When running watchdog-test with 'make run_tests', the watchdog-test will +be terminated by a timeout signal(SIGTERM) due to the test timemout. + +And then, a system reboot would happen due to watchdog not stop. see +the dmesg as below: +``` +[ 1367.185172] watchdog: watchdog0: watchdog did not stop! +``` + +Fix it by registering more signals(including SIGTERM) in watchdog-test, +where its signal handler will stop the watchdog. + +After that + # timeout 1 ./watchdog-test + Watchdog Ticking Away! + . + Stopping watchdog ticks... + +Link: https://lore.kernel.org/all/20241029031324.482800-1-lizhijian@fujitsu.com/ +Signed-off-by: Li Zhijian +Reviewed-by: Shuah Khan +Signed-off-by: Shuah Khan +Signed-off-by: Sasha Levin +--- + tools/testing/selftests/watchdog/watchdog-test.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/tools/testing/selftests/watchdog/watchdog-test.c b/tools/testing/selftests/watchdog/watchdog-test.c +index f45e510500c0d..09773695d219f 100644 +--- a/tools/testing/selftests/watchdog/watchdog-test.c ++++ b/tools/testing/selftests/watchdog/watchdog-test.c +@@ -242,7 +242,13 @@ int main(int argc, char *argv[]) + + printf("Watchdog Ticking Away!\n"); + ++ /* ++ * Register the signals ++ */ + signal(SIGINT, term); ++ signal(SIGTERM, term); ++ signal(SIGKILL, term); ++ signal(SIGQUIT, term); + + while (1) { + keep_alive(); +-- +2.43.0 + diff --git a/queue-5.15/series b/queue-5.15/series index 77b0ad699bc..9e0c6043eb0 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -32,3 +32,24 @@ mm-unconditionally-close-vmas-on-error.patch mm-refactor-arch_calc_vm_flag_bits-and-arm64-mte-handling.patch mm-resolve-faulty-mmap_region-error-path-behaviour.patch nfs-nfs_async_write_reschedule_io-must-not-recurse-into-the-writeback-code.patch +asoc-intel-bytcr_rt5640-add-support-for-non-acpi-ins.patch +asoc-intel-bytcr_rt5640-add-dmi-quirk-for-vexia-edu-.patch +asoc-intel-sst-support-lpe0f28-acpi-hid.patch +wifi-iwlwifi-mvm-use-the-sync-timepoint-api-in-suspe.patch +mac80211-fix-user-power-when-emulating-chanctx.patch +usb-add-support-for-new-usb-device-id-0x17ef-0x3098-.patch +selftests-watchdog-test-fix-system-accidentally-rese.patch +alsa-hda-realtek-add-subwoofer-quirk-for-infinix-zer.patch +x86-amd_nb-fix-compile-testing-without-config_amd_nb.patch +net-usb-qmi_wwan-add-quectel-rg650v.patch +soc-qcom-add-check-devm_kasprintf-returned-value.patch +regulator-rk808-add-apply_bit-for-buck3-on-rk809.patch +platform-x86-dell-smbios-base-extends-support-to-ali.patch +platform-x86-dell-wmi-base-handle-meta-key-lock-unlo.patch +can-j1939-fix-error-in-j1939-documentation.patch +asoc-stm-prevent-potential-division-by-zero-in-stm32.patch +asoc-stm-prevent-potential-division-by-zero-in-stm32.patch-10468 +proc-softirqs-replace-seq_printf-with-seq_put_decima.patch +alsa-usb-audio-fix-yamaha-p-125-quirk-entry.patch +arm-9420-1-smp-fix-smp-for-xip-kernels.patch +ipmr-fix-access-to-mfc_cache_list-without-lock-held.patch diff --git a/queue-5.15/soc-qcom-add-check-devm_kasprintf-returned-value.patch b/queue-5.15/soc-qcom-add-check-devm_kasprintf-returned-value.patch new file mode 100644 index 00000000000..a81885cb13a --- /dev/null +++ b/queue-5.15/soc-qcom-add-check-devm_kasprintf-returned-value.patch @@ -0,0 +1,45 @@ +From c91b055d37fee57c35567aee772e62404fabb27b Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sun, 29 Sep 2024 15:23:49 +0800 +Subject: soc: qcom: Add check devm_kasprintf() returned value + +From: Charles Han + +[ Upstream commit e694d2b5c58ba2d1e995d068707c8d966e7f5f2a ] + +devm_kasprintf() can return a NULL pointer on failure but this +returned value in qcom_socinfo_probe() is not checked. + +Signed-off-by: Charles Han +Link: https://lore.kernel.org/r/20240929072349.202520-1-hanchunchao@inspur.com +Signed-off-by: Bjorn Andersson +Signed-off-by: Sasha Levin +--- + drivers/soc/qcom/socinfo.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/drivers/soc/qcom/socinfo.c b/drivers/soc/qcom/socinfo.c +index 5beb452f24013..491f33973aa0c 100644 +--- a/drivers/soc/qcom/socinfo.c ++++ b/drivers/soc/qcom/socinfo.c +@@ -614,10 +614,16 @@ static int qcom_socinfo_probe(struct platform_device *pdev) + qs->attr.revision = devm_kasprintf(&pdev->dev, GFP_KERNEL, "%u.%u", + SOCINFO_MAJOR(le32_to_cpu(info->ver)), + SOCINFO_MINOR(le32_to_cpu(info->ver))); +- if (offsetof(struct socinfo, serial_num) <= item_size) ++ if (!qs->attr.soc_id || qs->attr.revision) ++ return -ENOMEM; ++ ++ if (offsetof(struct socinfo, serial_num) <= item_size) { + qs->attr.serial_number = devm_kasprintf(&pdev->dev, GFP_KERNEL, + "%u", + le32_to_cpu(info->serial_num)); ++ if (!qs->attr.serial_number) ++ return -ENOMEM; ++ } + + qs->soc_dev = soc_device_register(&qs->attr); + if (IS_ERR(qs->soc_dev)) +-- +2.43.0 + diff --git a/queue-5.15/usb-add-support-for-new-usb-device-id-0x17ef-0x3098-.patch b/queue-5.15/usb-add-support-for-new-usb-device-id-0x17ef-0x3098-.patch new file mode 100644 index 00000000000..8851e7c68f5 --- /dev/null +++ b/queue-5.15/usb-add-support-for-new-usb-device-id-0x17ef-0x3098-.patch @@ -0,0 +1,41 @@ +From 2803da8b6906624660b66cea23b9279be7180e81 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sun, 20 Oct 2024 18:41:28 +0100 +Subject: usb: add support for new USB device ID 0x17EF:0x3098 for the r8152 + driver +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Benjamin Große + +[ Upstream commit 94c11e852955b2eef5c4f0b36cfeae7dcf11a759 ] + +This patch adds support for another Lenovo Mini dock 0x17EF:0x3098 to the +r8152 driver. The device has been tested on NixOS, hotplugging and sleep +included. + +Signed-off-by: Benjamin Große +Reviewed-by: Simon Horman +Link: https://patch.msgid.link/20241020174128.160898-1-ste3ls@gmail.com +Signed-off-by: Jakub Kicinski +Signed-off-by: Sasha Levin +--- + drivers/net/usb/r8152.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c +index e8fd743a1509d..abf4a488075ef 100644 +--- a/drivers/net/usb/r8152.c ++++ b/drivers/net/usb/r8152.c +@@ -9843,6 +9843,7 @@ static const struct usb_device_id rtl8152_table[] = { + { USB_DEVICE(VENDOR_ID_LENOVO, 0x3062) }, + { USB_DEVICE(VENDOR_ID_LENOVO, 0x3069) }, + { USB_DEVICE(VENDOR_ID_LENOVO, 0x3082) }, ++ { USB_DEVICE(VENDOR_ID_LENOVO, 0x3098) }, + { USB_DEVICE(VENDOR_ID_LENOVO, 0x7205) }, + { USB_DEVICE(VENDOR_ID_LENOVO, 0x720c) }, + { USB_DEVICE(VENDOR_ID_LENOVO, 0x7214) }, +-- +2.43.0 + diff --git a/queue-5.15/wifi-iwlwifi-mvm-use-the-sync-timepoint-api-in-suspe.patch b/queue-5.15/wifi-iwlwifi-mvm-use-the-sync-timepoint-api-in-suspe.patch new file mode 100644 index 00000000000..3eb2a77f4ee --- /dev/null +++ b/queue-5.15/wifi-iwlwifi-mvm-use-the-sync-timepoint-api-in-suspe.patch @@ -0,0 +1,64 @@ +From 5284a50c9cae5353f6852ae91cd5cac35e0f3f0f Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 10 Oct 2024 14:05:03 +0300 +Subject: wifi: iwlwifi: mvm: Use the sync timepoint API in suspend + +From: Daniel Gabay + +[ Upstream commit 9715246ca0bfc9feaec1b4ff5b3d38de65a7025d ] + +When starting the suspend flow, HOST_D3_START triggers an _async_ +firmware dump collection for debugging purposes. The async worker +may race with suspend flow and fail to get NIC access, resulting in +the following warning: +"Timeout waiting for hardware access (CSR_GP_CNTRL 0xffffffff)" + +Fix this by switching to the sync version to ensure the dump +completes before proceeding with the suspend flow, avoiding +potential race issues. + +Signed-off-by: Daniel Gabay +Signed-off-by: Miri Korenblit +Link: https://patch.msgid.link/20241010140328.9aae318cd593.I4b322009f39489c0b1d8893495c887870f73ed9c@changeid +Signed-off-by: Johannes Berg +Signed-off-by: Sasha Levin +--- + drivers/net/wireless/intel/iwlwifi/fw/init.c | 4 +++- + drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 2 ++ + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/drivers/net/wireless/intel/iwlwifi/fw/init.c b/drivers/net/wireless/intel/iwlwifi/fw/init.c +index 2ecec00db9da7..263560f259778 100644 +--- a/drivers/net/wireless/intel/iwlwifi/fw/init.c ++++ b/drivers/net/wireless/intel/iwlwifi/fw/init.c +@@ -35,10 +35,12 @@ void iwl_fw_runtime_init(struct iwl_fw_runtime *fwrt, struct iwl_trans *trans, + } + IWL_EXPORT_SYMBOL(iwl_fw_runtime_init); + ++/* Assumes the appropriate lock is held by the caller */ + void iwl_fw_runtime_suspend(struct iwl_fw_runtime *fwrt) + { + iwl_fw_suspend_timestamp(fwrt); +- iwl_dbg_tlv_time_point(fwrt, IWL_FW_INI_TIME_POINT_HOST_D3_START, NULL); ++ iwl_dbg_tlv_time_point_sync(fwrt, IWL_FW_INI_TIME_POINT_HOST_D3_START, ++ NULL); + } + IWL_EXPORT_SYMBOL(iwl_fw_runtime_suspend); + +diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c +index 24c1666b2c88a..80b6e646abe18 100644 +--- a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c ++++ b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c +@@ -1380,7 +1380,9 @@ int iwl_mvm_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan) + + iwl_mvm_pause_tcm(mvm, true); + ++ mutex_lock(&mvm->mutex); + iwl_fw_runtime_suspend(&mvm->fwrt); ++ mutex_unlock(&mvm->mutex); + + return __iwl_mvm_suspend(hw, wowlan, false); + } +-- +2.43.0 + diff --git a/queue-5.15/x86-amd_nb-fix-compile-testing-without-config_amd_nb.patch b/queue-5.15/x86-amd_nb-fix-compile-testing-without-config_amd_nb.patch new file mode 100644 index 00000000000..5a3160759c7 --- /dev/null +++ b/queue-5.15/x86-amd_nb-fix-compile-testing-without-config_amd_nb.patch @@ -0,0 +1,53 @@ +From a55861aa4ae598e37c1d770ec2d60f542618bd2a Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 29 Oct 2024 09:23:20 +0000 +Subject: x86/amd_nb: Fix compile-testing without CONFIG_AMD_NB +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Arnd Bergmann + +[ Upstream commit fce9642c765a18abd1db0339a7d832c29b68456a ] + +node_to_amd_nb() is defined to NULL in non-AMD configs: + + drivers/platform/x86/amd/hsmp/plat.c: In function 'init_platform_device': + drivers/platform/x86/amd/hsmp/plat.c:165:68: error: dereferencing 'void *' pointer [-Werror] + 165 | sock->root = node_to_amd_nb(i)->root; + | ^~ + drivers/platform/x86/amd/hsmp/plat.c:165:68: error: request for member 'root' in something not a structure or union + +Users of the interface who also allow COMPILE_TEST will cause the above build +error so provide an inline stub to fix that. + + [ bp: Massage commit message. ] + +Signed-off-by: Arnd Bergmann +Signed-off-by: Borislav Petkov (AMD) +Reviewed-by: Ilpo Järvinen +Link: https://lore.kernel.org/r/20241029092329.3857004-1-arnd@kernel.org +Signed-off-by: Sasha Levin +--- + arch/x86/include/asm/amd_nb.h | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/arch/x86/include/asm/amd_nb.h b/arch/x86/include/asm/amd_nb.h +index 455066a06f607..d561f7866fa16 100644 +--- a/arch/x86/include/asm/amd_nb.h ++++ b/arch/x86/include/asm/amd_nb.h +@@ -118,7 +118,10 @@ static inline bool amd_gart_present(void) + + #define amd_nb_num(x) 0 + #define amd_nb_has_feature(x) false +-#define node_to_amd_nb(x) NULL ++static inline struct amd_northbridge *node_to_amd_nb(int node) ++{ ++ return NULL; ++} + #define amd_gart_present(x) false + + #endif +-- +2.43.0 + -- 2.47.3