Commit 75c1cb8178fe for kernel

commit 75c1cb8178fe84403fd95236ddf21754f0a4156c
Merge: 0dfc0090b925 ed7995e4ec37
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sat Oct 24 19:16:20 2026 -1000

    Merge tag 'sound-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

    Pull sound updates from Takashi Iwai:
     "The AI flood continues, which brought us a fairly busy development
      cycle again with changes spread across the subsystem, ranging from
      (lots of) core hardening to new platforms and codecs.

      Here are some highlights.

      ALSA core:
       - PCM: race fixes around channel-map controls, draining/unlink, drop
         sync-stop handling, and DMA buffer delay sync
       - Compress-offload: state and geometry validations, buffer leak fix,
         and stream/card lifetime management
       - Jack: module pinning during debugfs access, control removal race
         fix, and early injection exposure
       - Timer & sequencer: module pinning for user timers, RCU grace period
         wait on port deletion, UMP bounds fixes
       - Mark OSS sequencer emulation as deprecated
       - RawMIDI: proper disconnect handling and input work drain cleanup
       - Control: fixes for vmaster racy setups and control callback
         serialization, UAF fix on card disconnect

      ASoC core:
       - Continued framework refactoring, deployment of
         auto_selectable_formats across codecs and platform DAIs
       - Generic card cleanup: free jack GPIOs on card remove for
         simple-card and audio-graph-card variants
       - SDCA improvements: SimpleJack function type support, library
         helpers, and non-ACPI build support
       - Conversion of deprecated DMA API calls

      ASoC SOF:
       - Support for compressed audio playback on SOF IPC4 with Intel TGL+
       - AMD ACP 7.B / 7.F SoundWire and PDM controller support, ASP
         carveout firmware loading
       - Function topology support for Intel I2S machines

      ASoC platforms & codecs:
       - Qualcomm: New QAIF driver for Shikra platform, WCD9378 SDCA codec,
         Nord Ride/RRD and Motorola Edge 30 boards, LPASS macro cache
         converted to maple tree
       - New codec drivers: ESS ES9039Q2M, Nuvoton NAU83G60 amplifier,
         Senary SN624x SoundWire SDCA codec
       - MediaTek / Airoha: New Airoha AN7581 AFE and WM8960 machine
         drivers, extensive clock and error-handling cleanups across
         MediaTek SoCs
       - NVIDIA Tegra: WM8994 machine driver and CS35L45 MDSYNC support
       - Realtek: RT766/RT767, RT721_U, RT718 variants, RT712 GPIO LED
         control
       - Cirrus Logic: CS35L45 MDSYNC support, CS35L56 regmap default tests
       - TI: TAS2573 DSP support in TAS2781, TAS2783 SoundWire fixes
       - Everest Semi: ES8326 standby / HPF controls, ES8389 / ES8375 resume
         fixes
       - Removal of obsolete ST-Ericsson Ux500 MOP500 machine driver

      HD-audio:
       - ACPI controller runtime PM suspend/resume support
       - Controller shutdown and unbind race fixes for unsol events and jack
         polling
       - HDMI: High Bit Rate (HBR) audio capability enabled, ELD proc and
         converter bounds checks
       - AW88399 side codec SSID-specific firmware naming and Lenovo Legion
         R9000P enablement
       - Realtek / Conexant / Cirrus / TI quirks for numerous laptops
         (Lenovo, ASUS, HP, Acer, HONOR, Minisforum, MSI, etc.)
       - Creative CA0132 Sound BlasterX AE-5 external RGB LED strip support

      USB-audio:
       - Dedicated mixer driver for Audient EVO4
       - Native Instruments Kore controller LCD support and keymap fix
       - Pioneer DJ DDJ-SZ and Roland (OCTA-CAPTURE / QUAD-CAPTURE
         multirate, TD-11) support
       - UAC2/3 mixer unit matrix evaluation and bounds checking
       - Hardening for LINE6 and caiaq drivers against malformed packets and
         races
       - Device-specific quirks for PreSonus, TASCAM, Logitech, Mayflower,
         MOONDROP, Yamaha, etc.

      Misc:
       - Auto-cleanup conversion for snd_card_free() and devres migration
         across dozens of legacy PCI, ISA, and Sparc drivers
       - ALSA loopback (aloop) timer lifecycle fixes and new aloop selftest
       - pcmtest driver fixes and kselftest updates"

    * tag 'sound-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (924 commits)
      ALSA: hda/realtek: Add mute and mic-mute LEDs for HP ENVY 16 (103c:8be5)
      selftests: ALSA: pcmtest: Compare all captured bytes in ni_capture
      ALSA: usb-audio: Use strscpy() in append_ctl_name()
      ALSA: caiaq: Use strscpy() in snd_usb_caiaq_input_init()
      ALSA: hiface: Use scnprintf() in hiface_chip_create()
      selftests/alsa: Check the aloop PCM Slave controls for a matching playback
      ALSA: aloop: Update the PCM Slave controls for a matching playback
      selftests: ALSA: pcmtest: Make room for the longest fill pattern
      selftests: ALSA: pcmtest: Check the frame count of each transfer
      ALSA: hda/realtek: Fix speakers on COLORFUL L1 Plus
      ALSA: hda/realtek: enable AW88399 on Lenovo Legion R9000P AFR10
      ALSA: line6: Handle period elapsed calls outside the locks
      ALSA: emux: Stop voices before freeing zones in all cases
      ALSA: emux: Fix UAF of soundfont zones at note-on
      ALSA: mtpav: restore negation dropped in guard() conversion
      ALSA: compress: reject restarting an ACTIVE task via origin_seqno
      ALSA: compress: add missing OPEN-state gate to SET_METADATA
      ALSA: compress: reject buffer geometry change on gapless next_track
      ALSA: compress: fix buffer leak on failed SET_PARAMS
      ALSA: hda/realtek: Enable jack detection on Minisforum AI X1
      ...

diff --cc sound/hda/codecs/side-codecs/cs35l41_hda.c
index 32abb71dd401,d50c3d8f5303..f879e3ffbb53
--- a/sound/hda/codecs/side-codecs/cs35l41_hda.c
+++ b/sound/hda/codecs/side-codecs/cs35l41_hda.c
@@@ -1926,11 -1925,10 +1925,9 @@@ static int cs35l41_hda_read_acpi(struc
  	}

  	cs35l41->dacpi = adev;
 -	struct device *physdev __free(put_device) =
 -		get_device(acpi_get_first_physical_node(adev));
 +	struct device *physdev __free(put_device) = acpi_bus_get_primary_device(adev);
- 	if (!physdev) {
- 		acpi_dev_put(adev);
+ 	if (!physdev)
  		return -ENODEV;
- 	}

  	sub = acpi_get_subsystem_id(ACPI_HANDLE(physdev));
  	if (IS_ERR(sub))