From: Greg Kroah-Hartman Date: Thu, 12 Oct 2023 18:05:45 +0000 (+0200) Subject: 6.5-stable patches X-Git-Tag: v6.1.58~22 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bda7b8762635784c68d4f35041b374233a001fc9;p=thirdparty%2Fkernel%2Fstable-queue.git 6.5-stable patches added patches: alsa-hda-cs35l41-cleanup-and-fix-double-free-in-firmware-request.patch alsa-hda-realtek-change-model-for-intel-rvp-board.patch alsa-usb-audio-fix-microphone-sound-on-nexigo-webcam.patch alsa-usb-audio-fix-microphone-sound-on-opencomm2-headset.patch arm64-dts-qcom-sm8150-extend-the-size-of-the-pdc-resource.patch asoc-fsl_sai-don-t-disable-bitclock-for-i.mx8mp.patch asoc-intel-soc-acpi-add-entry-for-hdmi_in-capture-support-in-mtl-match-table.patch asoc-intel-soc-acpi-add-entry-for-sof_es8336-in-mtl-match-table.patch asoc-intel-soc-acpi-fix-dell-sku-0b34.patch asoc-intel-sof_sdw-add-support-for-sku-0b14.patch asoc-simple-card-utils-fixup-simple_util_startup-error-handling.patch asoc-sof-amd-fix-for-firmware-reload-failure-after-playback.patch dt-bindings-interrupt-controller-renesas-rzg2l-irqc-update-description-for-interrupt-cells-property.patch irqchip-renesas-rzg2l-fix-logic-to-clear-tint-interrupt-source.patch keys-trusted-remove-redundant-static-calls-usage.patch --- diff --git a/queue-6.5/alsa-hda-cs35l41-cleanup-and-fix-double-free-in-firmware-request.patch b/queue-6.5/alsa-hda-cs35l41-cleanup-and-fix-double-free-in-firmware-request.patch new file mode 100644 index 00000000000..b3f0ebeb4e0 --- /dev/null +++ b/queue-6.5/alsa-hda-cs35l41-cleanup-and-fix-double-free-in-firmware-request.patch @@ -0,0 +1,202 @@ +From 5d542b850d40cb08a38ad4bb2a944dbf1b7b0683 Mon Sep 17 00:00:00 2001 +From: Stefan Binding +Date: Tue, 3 Oct 2023 15:21:38 +0100 +Subject: ALSA: hda: cs35l41: Cleanup and fix double free in firmware request + +From: Stefan Binding + +commit 5d542b850d40cb08a38ad4bb2a944dbf1b7b0683 upstream. + +There is an unlikely but possible double free when loading firmware, +and a missing free calls if a firmware is successfully requested but +the coefficient file request fails, leading to the fallback firmware +request occurring without clearing the previously loaded firmware. + +Fixes: cd40dad2ca91 ("ALSA: hda: cs35l41: Ensure firmware/tuning pairs are always loaded") +Reported-by: kernel test robot +Reported-by: Dan Carpenter +Closes: https://lore.kernel.org/r/202309291331.0JUUQnPT-lkp@intel.com/ +Signed-off-by: Stefan Binding +Link: https://lore.kernel.org/r/20231003142138.180108-1-sbinding@opensource.cirrus.com +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/pci/hda/cs35l41_hda.c | 115 ++++++++++++++++++++++++++++++-------------- + 1 file changed, 79 insertions(+), 36 deletions(-) + +--- a/sound/pci/hda/cs35l41_hda.c ++++ b/sound/pci/hda/cs35l41_hda.c +@@ -178,10 +178,14 @@ static int cs35l41_request_firmware_file + cs35l41->speaker_id, "wmfw"); + if (!ret) { + /* try cirrus/part-dspN-fwtype-sub<-spkidN><-ampname>.bin */ +- return cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, +- CS35L41_FIRMWARE_ROOT, +- cs35l41->acpi_subsystem_id, cs35l41->amp_name, +- cs35l41->speaker_id, "bin"); ++ ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, ++ CS35L41_FIRMWARE_ROOT, ++ cs35l41->acpi_subsystem_id, cs35l41->amp_name, ++ cs35l41->speaker_id, "bin"); ++ if (ret) ++ goto coeff_err; ++ ++ return 0; + } + + /* try cirrus/part-dspN-fwtype-sub<-ampname>.wmfw */ +@@ -190,10 +194,14 @@ static int cs35l41_request_firmware_file + cs35l41->amp_name, -1, "wmfw"); + if (!ret) { + /* try cirrus/part-dspN-fwtype-sub<-spkidN><-ampname>.bin */ +- return cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, +- CS35L41_FIRMWARE_ROOT, +- cs35l41->acpi_subsystem_id, cs35l41->amp_name, +- cs35l41->speaker_id, "bin"); ++ ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, ++ CS35L41_FIRMWARE_ROOT, ++ cs35l41->acpi_subsystem_id, cs35l41->amp_name, ++ cs35l41->speaker_id, "bin"); ++ if (ret) ++ goto coeff_err; ++ ++ return 0; + } + + /* try cirrus/part-dspN-fwtype-sub<-spkidN>.wmfw */ +@@ -208,10 +216,14 @@ static int cs35l41_request_firmware_file + cs35l41->amp_name, cs35l41->speaker_id, "bin"); + if (ret) + /* try cirrus/part-dspN-fwtype-sub<-spkidN>.bin */ +- return cs35l41_request_firmware_file(cs35l41, coeff_firmware, +- coeff_filename, CS35L41_FIRMWARE_ROOT, +- cs35l41->acpi_subsystem_id, NULL, +- cs35l41->speaker_id, "bin"); ++ ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, ++ coeff_filename, CS35L41_FIRMWARE_ROOT, ++ cs35l41->acpi_subsystem_id, NULL, ++ cs35l41->speaker_id, "bin"); ++ if (ret) ++ goto coeff_err; ++ ++ return 0; + } + + /* try cirrus/part-dspN-fwtype-sub.wmfw */ +@@ -226,13 +238,51 @@ static int cs35l41_request_firmware_file + cs35l41->speaker_id, "bin"); + if (ret) + /* try cirrus/part-dspN-fwtype-sub<-spkidN>.bin */ +- return cs35l41_request_firmware_file(cs35l41, coeff_firmware, +- coeff_filename, CS35L41_FIRMWARE_ROOT, +- cs35l41->acpi_subsystem_id, NULL, +- cs35l41->speaker_id, "bin"); ++ ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, ++ coeff_filename, CS35L41_FIRMWARE_ROOT, ++ cs35l41->acpi_subsystem_id, NULL, ++ cs35l41->speaker_id, "bin"); ++ if (ret) ++ goto coeff_err; + } + + return ret; ++coeff_err: ++ release_firmware(*wmfw_firmware); ++ kfree(*wmfw_filename); ++ return ret; ++} ++ ++static int cs35l41_fallback_firmware_file(struct cs35l41_hda *cs35l41, ++ const struct firmware **wmfw_firmware, ++ char **wmfw_filename, ++ const struct firmware **coeff_firmware, ++ char **coeff_filename) ++{ ++ int ret; ++ ++ /* Handle fallback */ ++ dev_warn(cs35l41->dev, "Falling back to default firmware.\n"); ++ ++ /* fallback try cirrus/part-dspN-fwtype.wmfw */ ++ ret = cs35l41_request_firmware_file(cs35l41, wmfw_firmware, wmfw_filename, ++ CS35L41_FIRMWARE_ROOT, NULL, NULL, -1, "wmfw"); ++ if (ret) ++ goto err; ++ ++ /* fallback try cirrus/part-dspN-fwtype.bin */ ++ ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, ++ CS35L41_FIRMWARE_ROOT, NULL, NULL, -1, "bin"); ++ if (ret) { ++ release_firmware(*wmfw_firmware); ++ kfree(*wmfw_filename); ++ goto err; ++ } ++ return 0; ++ ++err: ++ dev_warn(cs35l41->dev, "Unable to find firmware and tuning\n"); ++ return ret; + } + + static int cs35l41_request_firmware_files(struct cs35l41_hda *cs35l41, +@@ -247,7 +297,6 @@ static int cs35l41_request_firmware_file + ret = cs35l41_request_firmware_files_spkid(cs35l41, wmfw_firmware, wmfw_filename, + coeff_firmware, coeff_filename); + goto out; +- + } + + /* try cirrus/part-dspN-fwtype-sub<-ampname>.wmfw */ +@@ -260,6 +309,9 @@ static int cs35l41_request_firmware_file + CS35L41_FIRMWARE_ROOT, + cs35l41->acpi_subsystem_id, cs35l41->amp_name, + -1, "bin"); ++ if (ret) ++ goto coeff_err; ++ + goto out; + } + +@@ -279,32 +331,23 @@ static int cs35l41_request_firmware_file + CS35L41_FIRMWARE_ROOT, + cs35l41->acpi_subsystem_id, NULL, -1, + "bin"); ++ if (ret) ++ goto coeff_err; + } + + out: +- if (!ret) +- return 0; ++ if (ret) ++ /* if all attempts at finding firmware fail, try fallback */ ++ goto fallback; + +- /* Handle fallback */ +- dev_warn(cs35l41->dev, "Falling back to default firmware.\n"); ++ return 0; + ++coeff_err: + release_firmware(*wmfw_firmware); + kfree(*wmfw_filename); +- +- /* fallback try cirrus/part-dspN-fwtype.wmfw */ +- ret = cs35l41_request_firmware_file(cs35l41, wmfw_firmware, wmfw_filename, +- CS35L41_FIRMWARE_ROOT, NULL, NULL, -1, "wmfw"); +- if (!ret) +- /* fallback try cirrus/part-dspN-fwtype.bin */ +- ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, +- CS35L41_FIRMWARE_ROOT, NULL, NULL, -1, "bin"); +- +- if (ret) { +- release_firmware(*wmfw_firmware); +- kfree(*wmfw_filename); +- dev_warn(cs35l41->dev, "Unable to find firmware and tuning\n"); +- } +- return ret; ++fallback: ++ return cs35l41_fallback_firmware_file(cs35l41, wmfw_firmware, wmfw_filename, ++ coeff_firmware, coeff_filename); + } + + #if IS_ENABLED(CONFIG_EFI) diff --git a/queue-6.5/alsa-hda-realtek-change-model-for-intel-rvp-board.patch b/queue-6.5/alsa-hda-realtek-change-model-for-intel-rvp-board.patch new file mode 100644 index 00000000000..a86f412e921 --- /dev/null +++ b/queue-6.5/alsa-hda-realtek-change-model-for-intel-rvp-board.patch @@ -0,0 +1,41 @@ +From ccbd88be057a38531f835e8a04948ebf80cb0c5d Mon Sep 17 00:00:00 2001 +From: Kailang Yang +Date: Fri, 6 Oct 2023 14:47:37 +0800 +Subject: ALSA: hda/realtek: Change model for Intel RVP board + +From: Kailang Yang + +commit ccbd88be057a38531f835e8a04948ebf80cb0c5d upstream. + +Intel RVP board (0x12cc) has Headset Mic issue for reboot. +If system plugged headset when system reboot the headset Mic was gone. + +Fixes: 1a93f10c5b12 ("ALSA: hda/realtek: Add "Intel Reference board" and "NUC 13" SSID in the ALC256") +Signed-off-by: Kailang Yang +Link: https://lore.kernel.org/r/28112f54c0c6496f97ac845645bc0256@realtek.com +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/pci/hda/patch_realtek.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -9720,7 +9720,7 @@ static const struct snd_pci_quirk alc269 + SND_PCI_QUIRK(0x10ec, 0x124c, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), + SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), + SND_PCI_QUIRK(0x10ec, 0x1254, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), +- SND_PCI_QUIRK(0x10ec, 0x12cc, "Intel Reference board", ALC225_FIXUP_HEADSET_JACK), ++ SND_PCI_QUIRK(0x10ec, 0x12cc, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), + SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-SZ6", ALC269_FIXUP_HEADSET_MODE), + SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC), + SND_PCI_QUIRK(0x144d, 0xc169, "Samsung Notebook 9 Pen (NP930SBE-K01US)", ALC298_FIXUP_SAMSUNG_AMP), +@@ -9943,7 +9943,7 @@ static const struct snd_pci_quirk alc269 + SND_PCI_QUIRK(0x8086, 0x2074, "Intel NUC 8", ALC233_FIXUP_INTEL_NUC8_DMIC), + SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NUC8_RUGGED), + SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", ALC256_FIXUP_INTEL_NUC10), +- SND_PCI_QUIRK(0x8086, 0x3038, "Intel NUC 13", ALC225_FIXUP_HEADSET_JACK), ++ SND_PCI_QUIRK(0x8086, 0x3038, "Intel NUC 13", ALC295_FIXUP_CHROME_BOOK), + SND_PCI_QUIRK(0xf111, 0x0001, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE), + + #if 0 diff --git a/queue-6.5/alsa-usb-audio-fix-microphone-sound-on-nexigo-webcam.patch b/queue-6.5/alsa-usb-audio-fix-microphone-sound-on-nexigo-webcam.patch new file mode 100644 index 00000000000..df12f508c18 --- /dev/null +++ b/queue-6.5/alsa-usb-audio-fix-microphone-sound-on-nexigo-webcam.patch @@ -0,0 +1,135 @@ +From 4a63e68a295187ae3c1cb3fa0c583c96a959714f Mon Sep 17 00:00:00 2001 +From: Christos Skevis +Date: Fri, 6 Oct 2023 17:53:30 +0200 +Subject: ALSA: usb-audio: Fix microphone sound on Nexigo webcam. + +From: Christos Skevis + +commit 4a63e68a295187ae3c1cb3fa0c583c96a959714f upstream. + +I own an external usb Webcam, model NexiGo N930AF, which had low mic volume and +inconsistent sound quality. Video works as expected. + +(snip) +[ +0.047857] usb 5-1: new high-speed USB device number 2 using xhci_hcd +[ +0.003406] usb 5-1: New USB device found, idVendor=1bcf, idProduct=2283, bcdDevice=12.17 +[ +0.000007] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 +[ +0.000004] usb 5-1: Product: NexiGo N930AF FHD Webcam +[ +0.000003] usb 5-1: Manufacturer: SHENZHEN AONI ELECTRONIC CO., LTD +[ +0.000004] usb 5-1: SerialNumber: 20201217011 +[ +0.003900] usb 5-1: Found UVC 1.00 device NexiGo N930AF FHD Webcam (1bcf:2283) +[ +0.025726] usb 5-1: 3:1: cannot get usb sound sample rate freq at ep 0x86 +[ +0.071482] usb 5-1: 3:2: cannot get usb sound sample rate freq at ep 0x86 +[ +0.004679] usb 5-1: 3:3: cannot get usb sound sample rate freq at ep 0x86 +[ +0.051607] usb 5-1: Warning! Unlikely big volume range (=4096), cval->res is probably wrong. +[ +0.000005] usb 5-1: [7] FU [Mic Capture Volume] ch = 1, val = 0/4096/1 + +Set up quirk cval->res to 16 for 256 levels, +Set GET_SAMPLE_RATE quirk flag to stop trying to get the sample rate. +Confirmed that happened anyway later due to the backoff mechanism, after 3 failures + +All audio stream on device interfaces share the same values, +apart from wMaxPacketSize and tSamFreq : + +(snip) +Interface Descriptor: + bLength 9 + bDescriptorType 4 + bInterfaceNumber 3 + bAlternateSetting 3 + bNumEndpoints 1 + bInterfaceClass 1 Audio + bInterfaceSubClass 2 Streaming + bInterfaceProtocol 0 + iInterface 0 + AudioStreaming Interface Descriptor: + bLength 7 + bDescriptorType 36 + bDescriptorSubtype 1 (AS_GENERAL) + bTerminalLink 8 + bDelay 1 frames + wFormatTag 0x0001 PCM + AudioStreaming Interface Descriptor: + bLength 11 + bDescriptorType 36 + bDescriptorSubtype 2 (FORMAT_TYPE) + bFormatType 1 (FORMAT_TYPE_I) + bNrChannels 1 + bSubframeSize 2 + bBitResolution 16 + bSamFreqType 1 Discrete + tSamFreq[ 0] 44100 + Endpoint Descriptor: + bLength 9 + bDescriptorType 5 + bEndpointAddress 0x86 EP 6 IN + bmAttributes 5 + Transfer Type Isochronous + Synch Type Asynchronous + Usage Type Data + wMaxPacketSize 0x005c 1x 92 bytes + bInterval 4 + bRefresh 0 + bSynchAddress 0 + AudioStreaming Endpoint Descriptor: + bLength 7 + bDescriptorType 37 + bDescriptorSubtype 1 (EP_GENERAL) + bmAttributes 0x01 + Sampling Frequency + bLockDelayUnits 0 Undefined + wLockDelay 0x0000 +(snip) + +Based on the usb data about manufacturer, SPCA2281B3 is the most likely controller IC +Manufacturer does not provide link for datasheet nor detailed specs. +No way to confirm if the firmware supports any other way of getting the sample rate. + +Testing patch provides consistent good sound recording quality and volume range. + +(snip) +[ +0.045764] usb 5-1: new high-speed USB device number 2 using xhci_hcd +[ +0.106290] usb 5-1: New USB device found, idVendor=1bcf, idProduct=2283, bcdDevice=12.17 +[ +0.000006] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 +[ +0.000004] usb 5-1: Product: NexiGo N930AF FHD Webcam +[ +0.000003] usb 5-1: Manufacturer: SHENZHEN AONI ELECTRONIC CO., LTD +[ +0.000004] usb 5-1: SerialNumber: 20201217011 +[ +0.043700] usb 5-1: set resolution quirk: cval->res = 16 +[ +0.002585] usb 5-1: Found UVC 1.00 device NexiGo N930AF FHD Webcam (1bcf:2283) + +Signed-off-by: Christos Skevis +Link: https://lore.kernel.org/r/20231006155330.399393-1-xristos.thes@gmail.com +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/usb/mixer.c | 7 +++++++ + sound/usb/quirks.c | 2 ++ + 2 files changed, 9 insertions(+) + +--- a/sound/usb/mixer.c ++++ b/sound/usb/mixer.c +@@ -1204,6 +1204,13 @@ static void volume_control_quirks(struct + cval->res = 16; + } + break; ++ case USB_ID(0x1bcf, 0x2283): /* NexiGo N930AF FHD Webcam */ ++ if (!strcmp(kctl->id.name, "Mic Capture Volume")) { ++ usb_audio_info(chip, ++ "set resolution quirk: cval->res = 16\n"); ++ cval->res = 16; ++ } ++ break; + } + } + +--- a/sound/usb/quirks.c ++++ b/sound/usb/quirks.c +@@ -2177,6 +2177,8 @@ static const struct usb_audio_quirk_flag + QUIRK_FLAG_FIXED_RATE), + DEVICE_FLG(0x0ecb, 0x2069, /* JBL Quantum810 Wireless */ + QUIRK_FLAG_FIXED_RATE), ++ DEVICE_FLG(0x1bcf, 0x2283, /* NexiGo N930AF FHD Webcam */ ++ QUIRK_FLAG_GET_SAMPLE_RATE), + + /* Vendor matches */ + VENDOR_FLG(0x045e, /* MS Lifecam */ diff --git a/queue-6.5/alsa-usb-audio-fix-microphone-sound-on-opencomm2-headset.patch b/queue-6.5/alsa-usb-audio-fix-microphone-sound-on-opencomm2-headset.patch new file mode 100644 index 00000000000..10ff6331625 --- /dev/null +++ b/queue-6.5/alsa-usb-audio-fix-microphone-sound-on-opencomm2-headset.patch @@ -0,0 +1,43 @@ +From 6a83d6f3bb3c329a73e3483651fb77b78bac1878 Mon Sep 17 00:00:00 2001 +From: WhaleChang +Date: Fri, 6 Oct 2023 12:48:49 +0800 +Subject: ALSA: usb-audio: Fix microphone sound on Opencomm2 Headset + +From: WhaleChang + +commit 6a83d6f3bb3c329a73e3483651fb77b78bac1878 upstream. + +When a Opencomm2 Headset is connected to a Bluetooth USB dongle, +the audio playback functions properly, but the microphone does not work. + +In the dmesg logs, there are messages indicating that the init_pitch +function fails when the capture process begins. + +The microphone only functions when the ep pitch control is not set. + +Toggling the pitch control off bypasses the init_piatch function +and allows the microphone to work. + +Signed-off-by: WhaleChang +Link: https://lore.kernel.org/r/20231006044852.4181022-1-whalechang@google.com +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/usb/quirks.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +--- a/sound/usb/quirks.c ++++ b/sound/usb/quirks.c +@@ -1994,7 +1994,11 @@ void snd_usb_audioformat_attributes_quir + /* mic works only when ep packet size is set to wMaxPacketSize */ + fp->attributes |= UAC_EP_CS_ATTR_FILL_MAX; + break; +- ++ case USB_ID(0x3511, 0x2b1e): /* Opencomm2 UC USB Bluetooth dongle */ ++ /* mic works only when ep pitch control is not set */ ++ if (stream == SNDRV_PCM_STREAM_CAPTURE) ++ fp->attributes &= ~UAC_EP_CS_ATTR_PITCH_CONTROL; ++ break; + } + } + diff --git a/queue-6.5/arm64-dts-qcom-sm8150-extend-the-size-of-the-pdc-resource.patch b/queue-6.5/arm64-dts-qcom-sm8150-extend-the-size-of-the-pdc-resource.patch new file mode 100644 index 00000000000..d1cede33706 --- /dev/null +++ b/queue-6.5/arm64-dts-qcom-sm8150-extend-the-size-of-the-pdc-resource.patch @@ -0,0 +1,35 @@ +From cf5716acbfc6190b3f97f4614affdf5991aed7b2 Mon Sep 17 00:00:00 2001 +From: Dmitry Baryshkov +Date: Tue, 5 Sep 2023 15:19:26 +0200 +Subject: arm64: dts: qcom: sm8150: extend the size of the PDC resource + +From: Dmitry Baryshkov + +commit cf5716acbfc6190b3f97f4614affdf5991aed7b2 upstream. + +Follow the example of other platforms and extend the PDC resource region +to 0x30000, so that the PDC driver can read the PDC_VERSION register. + +Fixes: 397ad94668c1 ("arm64: dts: qcom: sm8150: Add pdc interrupt controller node") +Reviewed-by: Konrad Dybcio +Signed-off-by: Dmitry Baryshkov +Reviewed-by: Neil Armstrong +Signed-off-by: Neil Armstrong +Signed-off-by: Marc Zyngier +Link: https://lore.kernel.org/r/20230905-topic-sm8x50-upstream-pdc-ver-v4-2-fc633c7df84b@linaro.org +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm64/boot/dts/qcom/sm8150.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm64/boot/dts/qcom/sm8150.dtsi ++++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi +@@ -3958,7 +3958,7 @@ + + pdc: interrupt-controller@b220000 { + compatible = "qcom,sm8150-pdc", "qcom,pdc"; +- reg = <0 0x0b220000 0 0x400>; ++ reg = <0 0x0b220000 0 0x30000>; + qcom,pdc-ranges = <0 480 94>, <94 609 31>, + <125 63 1>; + #interrupt-cells = <2>; diff --git a/queue-6.5/asoc-fsl_sai-don-t-disable-bitclock-for-i.mx8mp.patch b/queue-6.5/asoc-fsl_sai-don-t-disable-bitclock-for-i.mx8mp.patch new file mode 100644 index 00000000000..748d0dc06a6 --- /dev/null +++ b/queue-6.5/asoc-fsl_sai-don-t-disable-bitclock-for-i.mx8mp.patch @@ -0,0 +1,53 @@ +From 197c53c8ecb34f2cd5922f4bdcffa8f701a134eb Mon Sep 17 00:00:00 2001 +From: Shengjiu Wang +Date: Tue, 19 Sep 2023 17:42:13 +0800 +Subject: ASoC: fsl_sai: Don't disable bitclock for i.MX8MP + +From: Shengjiu Wang + +commit 197c53c8ecb34f2cd5922f4bdcffa8f701a134eb upstream. + +On i.MX8MP, the BCE and TERE bit are binding with mclk +enablement, if BCE and TERE are cleared the MCLK also be +disabled on output pin, that cause the external codec (wm8960) +in wrong state. + +Codec (wm8960) is using the mclk to generate PLL clock, +if mclk is disabled before disabling PLL, the codec (wm8960) +won't generate bclk and frameclk when sysclk switch to +MCLK source in next test case. + +The test case: +$aplay -r44100 test1.wav (PLL source) +$aplay -r48000 test2.wav (MCLK source) +aplay: pcm_write:2127: write error: Input/output error + +Fixes: 269f399dc19f ("ASoC: fsl_sai: Disable bit clock with transmitter") +Signed-off-by: Shengjiu Wang +Link: https://lore.kernel.org/r/1695116533-23287-1-git-send-email-shengjiu.wang@nxp.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + sound/soc/fsl/fsl_sai.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +--- a/sound/soc/fsl/fsl_sai.c ++++ b/sound/soc/fsl/fsl_sai.c +@@ -710,10 +710,15 @@ static void fsl_sai_config_disable(struc + { + unsigned int ofs = sai->soc_data->reg_offset; + bool tx = dir == TX; +- u32 xcsr, count = 100; ++ u32 xcsr, count = 100, mask; ++ ++ if (sai->soc_data->mclk_with_tere && sai->mclk_direction_output) ++ mask = FSL_SAI_CSR_TERE; ++ else ++ mask = FSL_SAI_CSR_TERE | FSL_SAI_CSR_BCE; + + regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx, ofs), +- FSL_SAI_CSR_TERE | FSL_SAI_CSR_BCE, 0); ++ mask, 0); + + /* TERE will remain set till the end of current frame */ + do { diff --git a/queue-6.5/asoc-intel-soc-acpi-add-entry-for-hdmi_in-capture-support-in-mtl-match-table.patch b/queue-6.5/asoc-intel-soc-acpi-add-entry-for-hdmi_in-capture-support-in-mtl-match-table.patch new file mode 100644 index 00000000000..20548260efd --- /dev/null +++ b/queue-6.5/asoc-intel-soc-acpi-add-entry-for-hdmi_in-capture-support-in-mtl-match-table.patch @@ -0,0 +1,69 @@ +From d1f67278d4b2de3bf544ea9bcd9f64d03584df87 Mon Sep 17 00:00:00 2001 +From: Balamurugan C +Date: Tue, 19 Sep 2023 17:11:36 +0800 +Subject: ASoC: Intel: soc-acpi: Add entry for HDMI_In capture support in MTL match table + +From: Balamurugan C + +commit d1f67278d4b2de3bf544ea9bcd9f64d03584df87 upstream. + +Adding HDMI-In capture via I2S feature support in MTL platform. + +Signed-off-by: Balamurugan C +Reviewed-by: Pierre-Louis Bossart +Signed-off-by: Bard Liao +Link: https://lore.kernel.org/r/20230919091136.1922253-3-yung-chuan.liao@linux.intel.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + sound/soc/intel/boards/sof_es8336.c | 10 ++++++++++ + sound/soc/intel/common/soc-acpi-intel-mtl-match.c | 12 ++++++++++++ + 2 files changed, 22 insertions(+) + +--- a/sound/soc/intel/boards/sof_es8336.c ++++ b/sound/soc/intel/boards/sof_es8336.c +@@ -798,6 +798,16 @@ static const struct platform_device_id b + SOF_ES8336_SPEAKERS_EN_GPIO1_QUIRK | + SOF_ES8336_JD_INVERTED), + }, ++ { ++ .name = "mtl_es83x6_c1_h02", ++ .driver_data = (kernel_ulong_t)(SOF_ES8336_SSP_CODEC(1) | ++ SOF_NO_OF_HDMI_CAPTURE_SSP(2) | ++ SOF_HDMI_CAPTURE_1_SSP(0) | ++ SOF_HDMI_CAPTURE_2_SSP(2) | ++ SOF_SSP_HDMI_CAPTURE_PRESENT | ++ SOF_ES8336_SPEAKERS_EN_GPIO1_QUIRK | ++ SOF_ES8336_JD_INVERTED), ++ }, + { } + }; + MODULE_DEVICE_TABLE(platform, board_ids); +--- a/sound/soc/intel/common/soc-acpi-intel-mtl-match.c ++++ b/sound/soc/intel/common/soc-acpi-intel-mtl-match.c +@@ -30,6 +30,11 @@ static const struct snd_soc_acpi_codecs + .codecs = {"10EC5682", "RTL5682"}, + }; + ++static const struct snd_soc_acpi_codecs mtl_lt6911_hdmi = { ++ .num_codecs = 1, ++ .codecs = {"INTC10B0"} ++}; ++ + struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_machines[] = { + { + .comp_ids = &mtl_rt5682_rt5682s_hp, +@@ -46,6 +51,13 @@ struct snd_soc_acpi_mach snd_soc_acpi_in + .sof_tplg_filename = "sof-mtl-max98360a-rt5682.tplg", + }, + { ++ .comp_ids = &mtl_essx_83x6, ++ .drv_name = "mtl_es83x6_c1_h02", ++ .machine_quirk = snd_soc_acpi_codec_list, ++ .quirk_data = &mtl_lt6911_hdmi, ++ .sof_tplg_filename = "sof-mtl-es83x6-ssp1-hdmi-ssp02.tplg", ++ }, ++ { + .comp_ids = &mtl_rt5682_rt5682s_hp, + .drv_name = "mtl_rt1019_rt5682", + .machine_quirk = snd_soc_acpi_codec_list, diff --git a/queue-6.5/asoc-intel-soc-acpi-add-entry-for-sof_es8336-in-mtl-match-table.patch b/queue-6.5/asoc-intel-soc-acpi-add-entry-for-sof_es8336-in-mtl-match-table.patch new file mode 100644 index 00000000000..8a86f158223 --- /dev/null +++ b/queue-6.5/asoc-intel-soc-acpi-add-entry-for-sof_es8336-in-mtl-match-table.patch @@ -0,0 +1,50 @@ +From 381ddcd5875e496f2eae06bb65853271b7150fee Mon Sep 17 00:00:00 2001 +From: Balamurugan C +Date: Tue, 19 Sep 2023 17:11:35 +0800 +Subject: ASoC: Intel: soc-acpi: Add entry for sof_es8336 in MTL match table. + +From: Balamurugan C + +commit 381ddcd5875e496f2eae06bb65853271b7150fee upstream. + +Adding support for ES83x6 codec in MTL match table. + +Signed-off-by: Balamurugan C +Reviewed-by: Pierre-Louis Bossart +Signed-off-by: Bard Liao +Link: https://lore.kernel.org/r/20230919091136.1922253-2-yung-chuan.liao@linux.intel.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + sound/soc/intel/common/soc-acpi-intel-mtl-match.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +--- a/sound/soc/intel/common/soc-acpi-intel-mtl-match.c ++++ b/sound/soc/intel/common/soc-acpi-intel-mtl-match.c +@@ -35,6 +35,11 @@ static const struct snd_soc_acpi_codecs + .codecs = {"INTC10B0"} + }; + ++static const struct snd_soc_acpi_codecs mtl_essx_83x6 = { ++ .num_codecs = 3, ++ .codecs = { "ESSX8316", "ESSX8326", "ESSX8336"}, ++}; ++ + struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_machines[] = { + { + .comp_ids = &mtl_rt5682_rt5682s_hp, +@@ -64,6 +69,14 @@ struct snd_soc_acpi_mach snd_soc_acpi_in + .quirk_data = &mtl_rt1019p_amp, + .sof_tplg_filename = "sof-mtl-rt1019-rt5682.tplg", + }, ++ { ++ .comp_ids = &mtl_essx_83x6, ++ .drv_name = "sof-essx8336", ++ .sof_tplg_filename = "sof-mtl-es8336", /* the tplg suffix is added at run time */ ++ .tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER | ++ SND_SOC_ACPI_TPLG_INTEL_SSP_MSB | ++ SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER, ++ }, + {}, + }; + EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_mtl_machines); diff --git a/queue-6.5/asoc-intel-soc-acpi-fix-dell-sku-0b34.patch b/queue-6.5/asoc-intel-soc-acpi-fix-dell-sku-0b34.patch new file mode 100644 index 00000000000..5fb5ed92a38 --- /dev/null +++ b/queue-6.5/asoc-intel-soc-acpi-fix-dell-sku-0b34.patch @@ -0,0 +1,55 @@ +From b399f9706a1cbae42731cc420a46cfb9c3c6b10f Mon Sep 17 00:00:00 2001 +From: Pierre-Louis Bossart +Date: Tue, 19 Sep 2023 16:36:06 +0800 +Subject: ASoC: Intel: soc-acpi: fix Dell SKU 0B34 + +From: Pierre-Louis Bossart + +commit b399f9706a1cbae42731cc420a46cfb9c3c6b10f upstream. + +The rule for the SoundWire tables is that the platforms with more +devices need to be added first. We broke that rule with the Dell SKU +0B34, and caused the second amplifier for SKU 0AF3 to be ignored. + +The fix is simple, we need to move the single-amplifier entry after +the two-amplifier one. + +Fixes: b62a1a839b48 ("ASoC: Intel: soc-acpi: add tables for Dell SKU 0B34") +Closes: https://github.com/thesofproject/linux/issues/4559 +Signed-off-by: Pierre-Louis Bossart +Reviewed-by: Chao Song +Signed-off-by: Bard Liao +Link: https://lore.kernel.org/r/20230919083606.1920202-1-yung-chuan.liao@linux.intel.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + sound/soc/intel/common/soc-acpi-intel-adl-match.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +--- a/sound/soc/intel/common/soc-acpi-intel-adl-match.c ++++ b/sound/soc/intel/common/soc-acpi-intel-adl-match.c +@@ -649,18 +649,18 @@ struct snd_soc_acpi_mach snd_soc_acpi_in + .sof_tplg_filename = "sof-adl-rt1316-l2-mono-rt714-l3.tplg", + }, + { +- .link_mask = 0x3, /* rt1316 on link1 & rt714 on link0 */ +- .links = adl_sdw_rt1316_link1_rt714_link0, +- .drv_name = "sof_sdw", +- .sof_tplg_filename = "sof-adl-rt1316-l1-mono-rt714-l0.tplg", +- }, +- { + .link_mask = 0x7, /* rt714 on link0 & two rt1316s on link1 and link2 */ + .links = adl_sdw_rt1316_link12_rt714_link0, + .drv_name = "sof_sdw", + .sof_tplg_filename = "sof-adl-rt1316-l12-rt714-l0.tplg", + }, + { ++ .link_mask = 0x3, /* rt1316 on link1 & rt714 on link0 */ ++ .links = adl_sdw_rt1316_link1_rt714_link0, ++ .drv_name = "sof_sdw", ++ .sof_tplg_filename = "sof-adl-rt1316-l1-mono-rt714-l0.tplg", ++ }, ++ { + .link_mask = 0x5, /* 2 active links required */ + .links = adl_sdw_rt1316_link2_rt714_link0, + .drv_name = "sof_sdw", diff --git a/queue-6.5/asoc-intel-sof_sdw-add-support-for-sku-0b14.patch b/queue-6.5/asoc-intel-sof_sdw-add-support-for-sku-0b14.patch new file mode 100644 index 00000000000..cfdfaf631da --- /dev/null +++ b/queue-6.5/asoc-intel-sof_sdw-add-support-for-sku-0b14.patch @@ -0,0 +1,41 @@ +From fb0b8d299781be8d46b3612aa96cef28da0d93f4 Mon Sep 17 00:00:00 2001 +From: Pierre-Louis Bossart +Date: Tue, 19 Sep 2023 17:21:25 +0800 +Subject: ASoC: Intel: sof_sdw: add support for SKU 0B14 + +From: Pierre-Louis Bossart + +commit fb0b8d299781be8d46b3612aa96cef28da0d93f4 upstream. + +One more missing SKU in the list. + +Closes: https://github.com/thesofproject/linux/issues/4543 +Signed-off-by: Pierre-Louis Bossart +Reviewed-by: Chao Song +Signed-off-by: Bard Liao +Link: https://lore.kernel.org/r/20230919092125.1922468-1-yung-chuan.liao@linux.intel.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + sound/soc/intel/boards/sof_sdw.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/sound/soc/intel/boards/sof_sdw.c ++++ b/sound/soc/intel/boards/sof_sdw.c +@@ -388,6 +388,16 @@ static const struct dmi_system_id sof_sd + { + .callback = sof_sdw_quirk_cb, + .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc"), ++ DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0B14"), ++ }, ++ /* No Jack */ ++ .driver_data = (void *)SOF_SDW_TGL_HDMI, ++ }, ++ ++ { ++ .callback = sof_sdw_quirk_cb, ++ .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "HP"), + DMI_MATCH(DMI_PRODUCT_NAME, "OMEN by HP Gaming Laptop 16-k0xxx"), + }, diff --git a/queue-6.5/asoc-simple-card-utils-fixup-simple_util_startup-error-handling.patch b/queue-6.5/asoc-simple-card-utils-fixup-simple_util_startup-error-handling.patch new file mode 100644 index 00000000000..b52d75d16fe --- /dev/null +++ b/queue-6.5/asoc-simple-card-utils-fixup-simple_util_startup-error-handling.patch @@ -0,0 +1,36 @@ +From 69cf63b6560205a390a736b88d112374655adb28 Mon Sep 17 00:00:00 2001 +From: Kuninori Morimoto +Date: Tue, 19 Sep 2023 01:22:57 +0000 +Subject: ASoC: simple-card-utils: fixup simple_util_startup() error handling + +From: Kuninori Morimoto + +commit 69cf63b6560205a390a736b88d112374655adb28 upstream. + +It should use "goto" instead of "return" + +Fixes: 5ca2ab459817 ("ASoC: simple-card-utils: Add new system-clock-fixed flag") +Reported-by: kernel test robot +Reported-by: Dan Carpenter +Closes: https://lore.kernel.org/all/202309141205.ITZeDJxV-lkp@intel.com/ +Closes: https://lore.kernel.org/all/202309151840.au9Aa2W4-lkp@intel.com/ +Signed-off-by: Kuninori Morimoto +Link: https://lore.kernel.org/r/87v8c76jnz.wl-kuninori.morimoto.gx@renesas.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + sound/soc/generic/simple-card-utils.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/sound/soc/generic/simple-card-utils.c ++++ b/sound/soc/generic/simple-card-utils.c +@@ -310,7 +310,8 @@ int asoc_simple_startup(struct snd_pcm_s + if (fixed_sysclk % props->mclk_fs) { + dev_err(rtd->dev, "fixed sysclk %u not divisible by mclk_fs %u\n", + fixed_sysclk, props->mclk_fs); +- return -EINVAL; ++ ret = -EINVAL; ++ goto codec_err; + } + ret = snd_pcm_hw_constraint_minmax(substream->runtime, SNDRV_PCM_HW_PARAM_RATE, + fixed_rate, fixed_rate); diff --git a/queue-6.5/asoc-sof-amd-fix-for-firmware-reload-failure-after-playback.patch b/queue-6.5/asoc-sof-amd-fix-for-firmware-reload-failure-after-playback.patch new file mode 100644 index 00000000000..e95935fc3d0 --- /dev/null +++ b/queue-6.5/asoc-sof-amd-fix-for-firmware-reload-failure-after-playback.patch @@ -0,0 +1,51 @@ +From 7e1fe5d9e7eae67e218f878195d1d348d01f9af7 Mon Sep 17 00:00:00 2001 +From: Vijendar Mukunda +Date: Wed, 27 Sep 2023 12:44:10 +0530 +Subject: ASoC: SOF: amd: fix for firmware reload failure after playback + +From: Vijendar Mukunda + +commit 7e1fe5d9e7eae67e218f878195d1d348d01f9af7 upstream. + +Setting ACP ACLK as clock source when ACP enters D0 state causing +firmware load failure as mentioned in below scenario. + +- Load snd_sof_amd_rembrandt +- Play or Record audio +- Stop audio +- Unload snd_sof_amd_rembrandt +- Reload snd_sof_amd_rembrandt + +If acp_clkmux_sel register field is set, then clock source will be +set to ACP ACLK when ACP enters D0 state. + +During stream stop, if there is no active stream is running then +acp firmware will set the ACP ACLK value to zero. + +When driver is reloaded and clock source is selected as ACP ACLK, +as ACP ACLK is programmed to zero, firmware loading will fail. + +For RMB platform, remove the clock mux selection field so that +ACP will use internal clock source when ACP enters D0 state. + +Fixes: 41cb85bc4b52 ("ASoC: SOF: amd: Add support for Rembrandt plaform.") +Reported-by: coolstar +Closes: https://github.com/thesofproject/sof/issues/8137 +Signed-off-by: Vijendar Mukunda +Link: https://lore.kernel.org/r/20230927071412.2416250-1-Vijendar.Mukunda@amd.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + sound/soc/sof/amd/pci-rmb.c | 1 - + 1 file changed, 1 deletion(-) + +--- a/sound/soc/sof/amd/pci-rmb.c ++++ b/sound/soc/sof/amd/pci-rmb.c +@@ -34,7 +34,6 @@ static const struct sof_amd_acp_desc rem + .dsp_intr_base = ACP6X_DSP_SW_INTR_BASE, + .sram_pte_offset = ACP6X_SRAM_PTE_OFFSET, + .hw_semaphore_offset = ACP6X_AXI2DAGB_SEM_0, +- .acp_clkmux_sel = ACP6X_CLKMUX_SEL, + .fusion_dsp_offset = ACP6X_DSP_FUSION_RUNSTALL, + }; + diff --git a/queue-6.5/dt-bindings-interrupt-controller-renesas-rzg2l-irqc-update-description-for-interrupt-cells-property.patch b/queue-6.5/dt-bindings-interrupt-controller-renesas-rzg2l-irqc-update-description-for-interrupt-cells-property.patch new file mode 100644 index 00000000000..0721fafe72d --- /dev/null +++ b/queue-6.5/dt-bindings-interrupt-controller-renesas-rzg2l-irqc-update-description-for-interrupt-cells-property.patch @@ -0,0 +1,37 @@ +From cfa1f9db6d6088118ef311c0927c66072665b47e Mon Sep 17 00:00:00 2001 +From: Lad Prabhakar +Date: Fri, 22 Jul 2022 16:11:54 +0100 +Subject: dt-bindings: interrupt-controller: renesas,rzg2l-irqc: Update description for '#interrupt-cells' property + +From: Lad Prabhakar + +commit cfa1f9db6d6088118ef311c0927c66072665b47e upstream. + +Update description for '#interrupt-cells' property to utilize the +RZG2L_{NMI,IRQX} for the first cell defined in the +include/dt-bindings/interrupt-controller/irqc-rzg2l.h file. + +Signed-off-by: Lad Prabhakar +Reviewed-by: Geert Uytterhoeven +Fixes: 96fed779d3d4cb3c ("dt-bindings: interrupt-controller: Add Renesas RZ/G2L Interrupt Controller") +Signed-off-by: Marc Zyngier +Link: https://lore.kernel.org/r/20220722151155.21100-3-prabhakar.mahadev-lad.rj@bp.renesas.com +Signed-off-by: Greg Kroah-Hartman +--- + Documentation/devicetree/bindings/interrupt-controller/renesas,rzg2l-irqc.yaml | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/Documentation/devicetree/bindings/interrupt-controller/renesas,rzg2l-irqc.yaml ++++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,rzg2l-irqc.yaml +@@ -31,8 +31,9 @@ properties: + - const: renesas,rzg2l-irqc + + '#interrupt-cells': +- description: The first cell should contain external interrupt number (IRQ0-7) and the +- second cell is used to specify the flag. ++ description: The first cell should contain a macro RZG2L_{NMI,IRQX} included in the ++ include/dt-bindings/interrupt-controller/irqc-rzg2l.h and the second ++ cell is used to specify the flag. + const: 2 + + '#address-cells': diff --git a/queue-6.5/irqchip-renesas-rzg2l-fix-logic-to-clear-tint-interrupt-source.patch b/queue-6.5/irqchip-renesas-rzg2l-fix-logic-to-clear-tint-interrupt-source.patch new file mode 100644 index 00000000000..e3c73339a18 --- /dev/null +++ b/queue-6.5/irqchip-renesas-rzg2l-fix-logic-to-clear-tint-interrupt-source.patch @@ -0,0 +1,38 @@ +From 9b8df572ba3f4e544366196820a719a40774433e Mon Sep 17 00:00:00 2001 +From: Biju Das +Date: Mon, 18 Sep 2023 13:24:09 +0100 +Subject: irqchip: renesas-rzg2l: Fix logic to clear TINT interrupt source + +From: Biju Das + +commit 9b8df572ba3f4e544366196820a719a40774433e upstream. + +The logic to clear the TINT interrupt source in rzg2l_irqc_irq_disable() +is wrong as the mask is correct only for LSB on the TSSR register. +This issue is found when testing with two TINT interrupt sources. So fix +the logic for all TINTs by using the macro TSSEL_SHIFT() to multiply +tssr_offset with 8. + +Fixes: 3fed09559cd8 ("irqchip: Add RZ/G2L IA55 Interrupt Controller driver") +Signed-off-by: Biju Das +Tested-by: Claudiu Beznea +Reviewed-by: Geert Uytterhoeven +Reviewed-by: Claudiu Beznea +Signed-off-by: Marc Zyngier +Link: https://lore.kernel.org/r/20230918122411.237635-2-biju.das.jz@bp.renesas.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/irqchip/irq-renesas-rzg2l.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/irqchip/irq-renesas-rzg2l.c ++++ b/drivers/irqchip/irq-renesas-rzg2l.c +@@ -118,7 +118,7 @@ static void rzg2l_irqc_irq_disable(struc + + raw_spin_lock(&priv->lock); + reg = readl_relaxed(priv->base + TSSR(tssr_index)); +- reg &= ~(TSSEL_MASK << tssr_offset); ++ reg &= ~(TSSEL_MASK << TSSEL_SHIFT(tssr_offset)); + writel_relaxed(reg, priv->base + TSSR(tssr_index)); + raw_spin_unlock(&priv->lock); + } diff --git a/queue-6.5/keys-trusted-remove-redundant-static-calls-usage.patch b/queue-6.5/keys-trusted-remove-redundant-static-calls-usage.patch new file mode 100644 index 00000000000..b03120ecc4c --- /dev/null +++ b/queue-6.5/keys-trusted-remove-redundant-static-calls-usage.patch @@ -0,0 +1,80 @@ +From 01bbafc63b65689cb179ca537971286bc27f3b74 Mon Sep 17 00:00:00 2001 +From: Sumit Garg +Date: Fri, 6 Oct 2023 10:48:01 +0530 +Subject: KEYS: trusted: Remove redundant static calls usage + +From: Sumit Garg + +commit 01bbafc63b65689cb179ca537971286bc27f3b74 upstream. + +Static calls invocations aren't well supported from module __init and +__exit functions. Especially the static call from cleanup_trusted() led +to a crash on x86 kernel with CONFIG_DEBUG_VIRTUAL=y. + +However, the usage of static call invocations for trusted_key_init() +and trusted_key_exit() don't add any value from either a performance or +security perspective. Hence switch to use indirect function calls instead. + +Note here that although it will fix the current crash report, ultimately +the static call infrastructure should be fixed to either support its +future usage from module __init and __exit functions or not. + +Reported-and-tested-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> +Link: https://lore.kernel.org/lkml/ZRhKq6e5nF%2F4ZIV1@fedora/#t +Fixes: 5d0682be3189 ("KEYS: trusted: Add generic trusted keys framework") +Signed-off-by: Sumit Garg +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman +--- + security/keys/trusted-keys/trusted_core.c | 13 +++++-------- + 1 file changed, 5 insertions(+), 8 deletions(-) + +--- a/security/keys/trusted-keys/trusted_core.c ++++ b/security/keys/trusted-keys/trusted_core.c +@@ -44,13 +44,12 @@ static const struct trusted_key_source t + #endif + }; + +-DEFINE_STATIC_CALL_NULL(trusted_key_init, *trusted_key_sources[0].ops->init); + DEFINE_STATIC_CALL_NULL(trusted_key_seal, *trusted_key_sources[0].ops->seal); + DEFINE_STATIC_CALL_NULL(trusted_key_unseal, + *trusted_key_sources[0].ops->unseal); + DEFINE_STATIC_CALL_NULL(trusted_key_get_random, + *trusted_key_sources[0].ops->get_random); +-DEFINE_STATIC_CALL_NULL(trusted_key_exit, *trusted_key_sources[0].ops->exit); ++static void (*trusted_key_exit)(void); + static unsigned char migratable; + + enum { +@@ -359,19 +358,16 @@ static int __init init_trusted(void) + if (!get_random) + get_random = kernel_get_random; + +- static_call_update(trusted_key_init, +- trusted_key_sources[i].ops->init); + static_call_update(trusted_key_seal, + trusted_key_sources[i].ops->seal); + static_call_update(trusted_key_unseal, + trusted_key_sources[i].ops->unseal); + static_call_update(trusted_key_get_random, + get_random); +- static_call_update(trusted_key_exit, +- trusted_key_sources[i].ops->exit); ++ trusted_key_exit = trusted_key_sources[i].ops->exit; + migratable = trusted_key_sources[i].ops->migratable; + +- ret = static_call(trusted_key_init)(); ++ ret = trusted_key_sources[i].ops->init(); + if (!ret) + break; + } +@@ -388,7 +384,8 @@ static int __init init_trusted(void) + + static void __exit cleanup_trusted(void) + { +- static_call_cond(trusted_key_exit)(); ++ if (trusted_key_exit) ++ (*trusted_key_exit)(); + } + + late_initcall(init_trusted); diff --git a/queue-6.5/series b/queue-6.5/series index 1f319daeffd..97c78e3b616 100644 --- a/queue-6.5/series +++ b/queue-6.5/series @@ -20,3 +20,18 @@ asoc-amd-yc-fix-non-functional-mic-on-lenovo-82ym.patch asoc-hdmi-codec-fix-broken-channel-map-reporting.patch ata-libata-scsi-disable-scsi-device-manage_system_start_stop.patch net-prevent-address-rewrite-in-kernel_bind.patch +arm64-dts-qcom-sm8150-extend-the-size-of-the-pdc-resource.patch +dt-bindings-interrupt-controller-renesas-rzg2l-irqc-update-description-for-interrupt-cells-property.patch +irqchip-renesas-rzg2l-fix-logic-to-clear-tint-interrupt-source.patch +keys-trusted-remove-redundant-static-calls-usage.patch +alsa-usb-audio-fix-microphone-sound-on-opencomm2-headset.patch +alsa-usb-audio-fix-microphone-sound-on-nexigo-webcam.patch +alsa-hda-cs35l41-cleanup-and-fix-double-free-in-firmware-request.patch +alsa-hda-realtek-change-model-for-intel-rvp-board.patch +asoc-sof-amd-fix-for-firmware-reload-failure-after-playback.patch +asoc-simple-card-utils-fixup-simple_util_startup-error-handling.patch +asoc-intel-soc-acpi-fix-dell-sku-0b34.patch +asoc-intel-soc-acpi-add-entry-for-hdmi_in-capture-support-in-mtl-match-table.patch +asoc-fsl_sai-don-t-disable-bitclock-for-i.mx8mp.patch +asoc-intel-sof_sdw-add-support-for-sku-0b14.patch +asoc-intel-soc-acpi-add-entry-for-sof_es8336-in-mtl-match-table.patch