summaryrefslogtreecommitdiff
path: root/sound/hda/codecs
AgeCommit message (Collapse)Author
8 daysMerge tag 'sound-7.4-rc1' of ↵Linus Torvalds
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 ...
12 daysALSA: hda/realtek: Add mute and mic-mute LEDs for HP ENVY 16 (103c:8be5)Ajanesh Lal
The HP ENVY Laptop 16-h1xxx (PCI SSID 103c:8be5) uses an ALC245 codec with CS35L41 I2C speaker amplifiers. No LED fixup is applied for this subsystem ID, so the speaker mute LED and the microphone mute LED are never driven and do not follow their keys. Add a fixup that calls the existing ALC245 mute LED COEF helper and the GPIO mic-mute LED helper directly, then chains to the CS35L41 I2C amplifier setup so the speakers keep working. Use it for 103c:8be5. Tested on an HP ENVY Laptop 16-h1xxx running kernel 7.2.11: the hda::mute and hda::micmute LEDs appear and follow their keys, and the speaker amplifiers still bind (CS35L41 Bound in dmesg). The mic LED GPIO pin and polarity are not verified on other hardware. Fixes: aa8e3ef4fe53 ("ALSA: hda/realtek: Add quirks for various HP ENVY models") Assisted-by: Claude:claude-haiku-5-5 Signed-off-by: Ajanesh Lal <ajaneshlal3@gmail.com> Link: https://patch.msgid.link/20261021142453.177174-1-ajaneshlal3@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 daysALSA: hda/realtek: Fix speakers on COLORFUL L1 PlusNazmi Maizan
The COLORFUL L1 Plus (Rimbook L1 Plus) with an ALC233 codec has silent built-in speakers. Its firmware marks pin 0x1b as unused (0x411111f0), although it is connected to the speakers. Retasking pin 0x1b to an internal speaker (0x90170110) restores audible output. I tested this pin-only correction with the early HDA firmware patch loader on Fedora and confirmed that it still worked after reboot. Add the subsystem ID 2782:a248 to the quirk table and reuse ALC233_FIXUP_MEDION_MTL_SPK, which applies the same pin correction. Link: https://bugzilla.kernel.org/show_bug.cgi?id=222155 Signed-off-by: Nazmi Maizan <nazmi.maizan1@gmail.com> Link: https://patch.msgid.link/20261020162323.23202-1-nazmi.maizan1@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 daysALSA: hda/realtek: enable AW88399 on Lenovo Legion R9000P AFR10Marco Giunta
Add codec SSID entries for the Lenovo Legion R9000P AFR10 (83F6), which uses the same ALC287 + AW88399 smart amplifier configuration as the existing supported Legion models. DSDT inspection confirms identical AWDZ8399 ACPI device layout with reversed I2C addresses. The channel swap quirk applies. Codec SSIDs (Lenovo vendor ID 0x17aa): * 0x3934: Legion R9000P AFR10 (AMD) * 0x3935: Legion R9000P AFR10 (AMD) Signed-off-by: Marco Giunta <marco_giunta@outlook.it> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/SN6PR19MB2303D726352EEE508A70D6D4FC922@SN6PR19MB2303.namprd19.prod.outlook.com
13 daysALSA: hda/realtek: Enable jack detection on Minisforum AI X1Nika Sommer
The firmware of the Minisforum AI X1 leaves the headphone jack detector reset bit asserted on its ALC245 codec. As a result, pin sense on NID 0x21 always reports the jack as absent. Enable the existing fixup ALC245_FIXUP_MINISFORUM_JACK_DETECT from commit 6bd8a57c044f ("ALSA: hda/realtek: Enable jack detection on Minisforum AI X1 Pro") to the Minisforum AI X1, which requires the same workaround. Tested on a Minisforum AI X1 (AMD Ryzen 7 255), using NixOS 26.11.20261014.55bfb4d and kernel 7.2.10. Signed-off-by: Nika Sommer <nika.sommer@mailbox.org> Link: https://patch.msgid.link/20261019183226.64985-1-nika.sommer@mailbox.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 daysALSA: hda/hdmi: Enable HBR capabilityAaron Kling
Tegra HDA does not set the HBR capability bit, however every SoC since Tegra114 does support HBR. Override the hbr setup function for these SoCs to unconditionally enable the feature. Since Tegra30 does not support HBR, this override will not be applied. Signed-off-by: Aaron Kling <webgeek1234@gmail.com> Link: https://patch.msgid.link/20261020-tegra-hda-hbr-v2-1-6968017f585b@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 daysALSA: hda/realtek: Enable mute LED on HP Pavilion 15-eg2xxxMoroz Tymofii
The HP Pavilion 15-eg2xxx (103c:89f6) uses GPIO bit 4 for its speaker mute LED. Enable the existing ALC287 GPIO LED fixup for this system. Tested on Linux 7.3-rc7 without an hda_model override. The F5 LED follows speaker mute/unmute correctly, and audio playback works normally. Signed-off-by: Moroz Tymofii <moroztymofii@gmail.com> Link: https://patch.msgid.link/20261019164725.10666-1-moroztymofii@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
14 daysALSA: hda: aw88399: use SSID-specific firmware nameMarco Giunta
Use the ACPI subsystem ID to construct per-model firmware filenames (e.g. "awinic/aw88399_acf_17aa3938.bin") when loading firmware on HDA systems. This makes the driver compatible with the linux-firmware repository's per-device naming convention. Also, since the ACPI SSID is now required for firmware loading, change the error handling for a missing SSID from silently succeeding to an early -ENODEV return in aw88399_hda_acpi_probe(). Tested-by: Xia Yun'an <imitoy@imitoy.top> Signed-off-by: Marco Giunta <marco_giunta@outlook.it> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/SN6PR19MB23030BA9E3636DBBBB8C6408FC992@SN6PR19MB2303.namprd19.prod.outlook.com
14 daysASoC: aw88399: pass firmware name as argumentMarco Giunta
Pass the ACF firmware filename as an argument to aw88399_request_firmware_file() instead of hardcoding AW88399_ACF_FILE. Both existing callers (ASoC and HDA) pass AW88399_ACF_FILE to preserve current behavior. Also add missing newlines to the log messages of the modified lines. This allows the HDA side codec driver to request per-model firmware files in the next patch. Tested-by: Xia Yun'an <imitoy@imitoy.top> Signed-off-by: Marco Giunta <marco_giunta@outlook.it> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/SN6PR19MB2303DB0BF41797A38EB04CBFFC992@SN6PR19MB2303.namprd19.prod.outlook.com
14 daysMerge tag 'asoc-v7.4' of ↵Takashi Iwai
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Updates for v7.4 There's an awful lot of cleanup work in this pull request, lots from Bui Duc Phuc, Pengpeng Hou, HyeongJun An and Chancel Liu cleaning up detail issues in drivers in addition to Mormoto-san's ongoing framework work. This time Morimoto-san's work included enabling auto_selectable_formats so there's less manual configuration required for DAI links. There's also been a huge amount of upstreaming activity from Qualcomm, some pain there but hopefully enough has now landed for things to be smoother in future. - Use auto_selectable_formats in most drivers to reduce the amount of manual configuration required for DAI links. - Support for compressed audio on SOF IPC4 systems. - Support for AMD ACP 7.B and 7.F, AmLogic A9 and T7, Airoha AN7581, ESS Technology ES9039Q2M, Intel Cherry Trail with RT5688, Nuvoton NAU83G60, nVidia systems with WM8994, Qualcomm QAIF, Senary I2S, WCD9378 and various platforms, Realtek RT766 and RT767, Senary SN624x I also mistakenly merged some SPI changes in here then applied more patches on top before I noticed (it looks like this was b4's base selection logic picking a bad base for some ASoC work), highlights there are: - Improvements for spidev_test to cover additional use cases, plus be a bit easier to use. - Push more Tegra210 QSPI handling into interrupt context for performance improvements. - Support for Qualcomm QPIC SNAND v2 and RealTek RTD1625 NOR. - Documentation clarifications. - Fixes for some runtime PM and error handling issues. - Support for R-Car Gen5. (this should also be going in via my SPI pull request)
14 daysMerge branch 'acpi-driver'Rafael J. Wysocki
Merge changes related to ACPI support in device drivers for 7.4: - Switch over the users of acpi_get_first_physical_node(), that was inherently racy and therefore not really safe to use, to use its replacement acpi_bus_get_primary_device(), and eliminate the former (Rafael Wysocki) - Add !CONFIG_ACPI stubs for acpi_find_child_device() and acpi_device_uid() (Mario Limonciello and Robin Murphy) * acpi-driver: ACPI: bus: Drop acpi_get_first_physical_node() efi/dev-path-parser: Switch to use acpi_bus_get_primary_device() ALSA: hda: tas2781: Switch to use acpi_bus_get_primary_device() ALSA: hda: cs35l41: Switch to use acpi_bus_get_primary_device() iommu/arm-smmu-v3: Switch to use acpi_bus_get_primary_device() ACPI: Add stub for acpi_find_child_device() ACPI: bus: Provide !ACPI stub for acpi_device_uid() ALSA: hda: aw88399: Switch to use acpi_bus_get_primary_device() ASoC: loongson: Switch to use acpi_bus_get_primary_device() ASoC: intel: boards: Switch to use acpi_bus_get_primary_device() ASoC: amd: acp3x-es83xx: Switch to use acpi_bus_get_primary_device() ASoC: amd: acp-es8336: Switch to use acpi_bus_get_primary_device() thunderbolt: Switch to use acpi_bus_get_primary_device() platform/x86: apple-gmux: Switch to use acpi_bus_get_primary_device() platform/x86: x86-android-tablets: Use acpi_bus_get_primary_device() platform/x86: serdev_helpers: Switch to use acpi_bus_get_primary_device() platform/x86: yogabook: Switch to use acpi_bus_get_primary_device() ACPI: amba: Switch to use acpi_bus_get_primary_device() ACPI: bus: Use acpi/acpi_bus.h without CONFIG_ACPI
14 daysALSA: hda/realtek: Fix headset mic on ASUS Zenbook 14 UX3402VAGeorge Christidis
The UX3402VA (1043:16a3) BIOS leaves pin 0x19 unconfigured, so the headset mic does not work. Use ALC294_FIXUP_ASUS_SPI_HEADSET_MIC like the UX3405MA, it sets up the mic and keeps the CS35L41 speaker fixup. Tested on a UX3402VA: headset mic, internal mic and speakers work. Fixes: 07058dceb038 ("ALSA: hda/realtek: Splitting the UX3402 into two separate models") Cc: stable@vger.kernel.org Signed-off-by: George Christidis <gxristidis@gmail.com> Link: https://patch.msgid.link/20261018-for-linus-v1-1-4d8e9ff27d89@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-18ALSA: hda/via: Apply runtime PM workaround for ASUS X55AVasiliy Kovalev
ASUS X55A requires the same workaround like other machines with VT1802, otherwise it loses the codec power on a few nodes and the sound stays silent. Link: https://bugzilla.altlinux.org/45606 Cc: <stable@vger.kernel.org> Tested-by: Nikita Maksimov <nickstogramm@yandex.ru> Signed-off-by: Vasiliy Kovalev <kovalev@altlinux.org> Link: https://patch.msgid.link/20261017101257.215166-1-kovalev@altlinux.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-18ALSA: hda/realtek: Add fixup for Huawei MateBook X Pro 2019 (MACHR-WX9)Zhang Heng
On the MACHR-WX9 (ALC256, PCI SSID 19e5:3e13) the BIOS pin table disables the main speaker pair (pin 0x14), so only the tweeters on 0x1b play. Reusing the MACH_WX9 (19e5:3204) pin table restores all four speakers. Pin 0x19 (headset mic) has broken presence detect on this board: it reports "plugged" even with the jack empty, so auto-mic routes capture to the empty jack and the internal mic goes silent. Setting NO_PRESENCE on 0x19 (0x04a11140) suppresses the false reading. Chaining to ALC269_FIXUP_HEADSET_MODE then infers headset-mic presence from the headphone jack (pin 0x21), whose detection works correctly. Add ALC256_FIXUP_HUAWEI_MACHR_WX9_PINS with the MACH_WX9 pin table, chained to ALC269_FIXUP_HEADSET_MODE, registered for PCI SSID 19e5:3e13. Closes: https://bugzilla.kernel.org/show_bug.cgi?id=222126 Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Link: https://patch.msgid.link/20261017095400.350164-1-zhangheng@kylinos.cn Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-18ALSA: hda/realtek: Add mic-mute LED quirk for the HP 245 14 inch G10Keane Mbae
The HP 245 14 inch G10 Notebook PC (codec SSID 103c:8ba4, ALC236) is not listed in alc269_fixup_tbl[], so the codec falls back to the vendor-wide HP entry (ALC269_FIXUP_HP_MUTE_LED). That entry only registers a speaker mute LED (hda::mute); no microphone mute LED class device (hda::micmute) is created, so muting the microphone never lights the LED on the F8 key. On this model the microphone mute LED is wired to COEF 0x35 bits 2-3 (the same register as ALC236_FIXUP_HP_MUTE_LED), but with the opposite sense: 1 << 2 lights the LED and 2 << 2 turns it off. Setting micmute_led_polarity = 1 makes alc_update_coef_led() write the level that matches the hardware. The speaker mute LED (F5) keeps being driven through the HP_Mute_LED DMI string, exactly as the current fallback does. Add ALC236_FIXUP_HP_MUTE_LED_MICMUTE_COEF_INV for 103c:8ba4. Signed-off-by: Keane Mbae <keanembae@gmail.com> Tested-by: Keane Mbae <keanembae@gmail.com> Link: https://patch.msgid.link/20261017095132.20279-1-keanembae@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-17ALSA: hda/realtek: Add quirk for HP 15s-eq3xxx mute LEDGiovanni Maria Mazzone
The HP Laptop 15s-eq3xxx (SSID 103c:89fc) uses the Realtek ALC236 codec. Its speaker mute LED is driven by COEF index 0x07 bit 0, which is exactly what the existing ALC236_FIXUP_HP_MUTE_LED_COEFBIT2 quirk implements. The sibling models 15s-eq1xxx (103c:8706) and 15s-eq2xxx (103c:887a) already carry this quirk, but the eq3xxx SSID was never added, so the LED never follows the mute state. Add the missing SSID to the quirk table. Signed-off-by: Giovanni Maria Mazzone <giovannimariamazzone@gmail.com> Link: https://patch.msgid.link/20261016174627.362872-1-giovannimariamazzone@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-17ALSA: hda/realtek: Fix internal speakers on Acer Aspire AL16-31PLuis Gerardo Lopez Hernandez
The Acer Aspire AL16-31P (Intel Alder Lake-N, Realtek ALC269VC, PCI/codec SSID 2782:1718) has its internal speakers wired to pin 0x1b, but the BIOS marks that pin as not connected (0x411111f0) and only exposes pin 0x14 as the speaker. As a result the internal speakers are silent while headphones, HDMI and Bluetooth work. This is the same layout as the Infinix Y4 Max and MEDION E15433, which share the 0x2782 subsystem vendor. Reuse their fixup, which configures pin 0x1b as an internal speaker and limits the internal mic boost. Tested by booting with snd-hda-intel model=2782:1705: the fixup is picked, pin 0x1b is used as a speaker output, the internal speakers work, and they are muted when headphones are plugged in. Cc: stable@vger.kernel.org Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Luis Gerardo Lopez Hernandez <gamaerry@gmail.com> Link: https://patch.msgid.link/20261017005039.9139-1-gamaerry@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-17ALSA: hda/realtek: Enable mute LEDs on HP OmniBook X Flip 14-fm0xxxJosé Miguel Castellanos Valladolid
The HP OmniBook X Flip Laptop 14-fm0xxx (subsystem ID 0x103c8d9f, ALC245 with two CS35L41 amplifiers over I2C) is currently handled by ALC287_FIXUP_CS35L41_I2C_2. That binds the amplifiers but does not set up the mute LEDs, so neither the speaker mute key LED nor the microphone mute key LED lights up under Linux. With that fixup the codec GPIOs stay disabled (IO[0..2] enable=0). Switch the entry to ALC287_FIXUP_CS35L41_I2C_2_HP_MUTE_LEDS, which chains cs35l41_fixup_i2c_two with ALC245_FIXUP_HP_X360_MUTE_LEDS. This keeps the amplifier setup and adds the speaker mute LED through the ALC245 COEF register and the mic mute LED through codec GPIO2. It is the same fixup already used for the 17 Turbine OmniBook 7 DIS (0x103c8d9c). Tested on the affected laptop with v7.2.11 using the equivalent ALC245_FIXUP_HP_ENVY_X360_15_FH0XXX fixup, which has the identical cs35l41_fixup_i2c_two + ALC245_FIXUP_HP_X360_MUTE_LEDS chain: hda::mute and hda::micmute LED class devices appear and both key LEDs light up when muting. Fixes: 29951021367f ("ALSA: hda/realtek: Add support for various HP Laptops using CS35L41 HDA") Cc: stable@vger.kernel.org Signed-off-by: José Miguel Castellanos Valladolid <josstamy@gmail.com> Link: https://patch.msgid.link/20261017050615.14481-1-josstamy@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-16ALSA: hda: cs35l41: Add support for HP OmniBook 7 14-hg0xxxZhang Heng
The HP OmniBook 7 14-hg0xxx (SSID 103C8F07) uses two CS35L41 amplifiers connected via I2C. The left speaker works, but the right speaker is silent because the cs35l41-hda driver fails to probe with -EINVAL: cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: Failed property cirrus,dev-index: -22 cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: error -EINVAL: Platform not supported cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: probe with driver cs35l41-hda failed with error -22 Add the missing SSID entry to the CS35L41 configuration and property tables, using the generic DSD configuration and the same parameters as other HP laptops (e.g. 103C8CDE). This allows both amplifiers to probe and restores the right speaker. Tested on HP OmniBook 7 14-hg0xxx (SSID 103C8F07). Closes: https://bugzilla.kernel.org/show_bug.cgi?id=222124 Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Link: https://patch.msgid.link/20261016130219.690074-1-zhangheng@kylinos.cn Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-16ALSA: hda: cs35l41: Support HP OmniBook 7 Laptop 16-bh0xxxSven Jans
The laptop has a malformed _DSD which causes the cirrus,dev-index property to fail to parse, so it needs to be supported using the configuration table. Signed-off-by: Sven Jans <skbotnl@disroot.org> Link: https://patch.msgid.link/20260824142209.4945-1-skbotnl@disroot.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-16ALSA: hda/realtek: Fix hiss/crackle on Lenovo Xiaoxin 14 GT (17aa:3912)Viktor Menshin
Commit 3a3e810e9108 ("ALSA: hda/realtek: Add quirk for Lenovo Xiaoxin 14 GT") added a quirk mapping SSID 17aa:3912 to ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN, chosen by analogy with neighboring SSIDs (0x390d, 0x3911, 0x391a) without being verified on hardware, as noted in that commit's own message. I have since tested it on the actual hardware (Lenovo Xiaoxin Pro 14 ASP10, same 17aa:3912 SSID) and confirmed it does not fix the reported issue. ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN only repoints pin 0x17 and the preferred DAC pairs for the bass speaker; it does not touch the codec's vendor processing coefficients. The actual symptom - constant electrical hiss/crackle on both the headphone jack and the internal speakers, independent of volume - is unrelated to pin/DAC routing and is also present on stock Windows before the Realtek driver is installed, which points at those coefficients being left at their power-on default. To find the correct values, I passed the physical HD Audio controller through to a Windows 10 VM (VFIO, with QEMU patched to log CORB verb traffic) and captured the coefficient writes the vendor Realtek driver performs at init. Replaying a single one of them on Linux via hda-verb reproducibly eliminates the headphone jack noise: hda-verb /dev/snd/hwC#D0 0x20 SET_COEF_INDEX 0x36 hda-verb /dev/snd/hwC#D0 0x20 SET_PROC_COEF 0x77d7 This has held up across reboots and kernel updates for several weeks (applied via a small systemd oneshot unit while testing). Add a dedicated fixup that performs this coefficient write and chains it with the existing ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN (which may still be relevant for the bass speaker pin wiring on this board), and point the 17aa:3912 quirk entry at it instead. Honesty note: this fixes the headphone jack. The internal speakers still have noise under certain conditions (notably worse on AC power) that I have not been able to isolate via coefficient-table replay; that part remains open. Sending what is verified to work rather than holding this back. Link: https://bugzilla.kernel.org/show_bug.cgi?id=221203 Fixes: 3a3e810e9108 ("ALSA: hda/realtek: Add quirk for Lenovo Xiaoxin 14 GT") Signed-off-by: Viktor Menshin <ripeeerr@gmail.com> Link: https://patch.msgid.link/20261015132157.57198-1-ripeeerr@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-16ALSA: hda/realtek: Add HP ENVY Laptop 13-ba1xxx quirkImtiaz Chowdhury
On the HP ENVY Laptop 13-ba1xxx, the F5 and F8 key's LED were not working at all. Add a quirk for subsystem ID 0x8820 so it uses the existing ALC245_FIXUP_HP_X360_MUTE_LEDS fixup, as done for the 13-ba0xxx. Tested on HP ENVY Laptop 13-ba1063cl: F5 and F8 LED lights work as intended. Checked the audio systems both with headphones and no headphones, and there were no issues. Signed-off-by: Imtiaz Chowdhury <imtiazc56@gmail.com> Link: https://patch.msgid.link/20261015232210.35946-1-imtiazc56@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-15ALSA: hda/realtek: Fix quirk for HP Laptop 15-fc0xxxZhang Heng
The HP Laptop 15-fc0xxx is based on an AMD platform where the digital microphone is provided by the snd-soc-acp6x-mach driver, not by the HDA codec. The ALC236_FIXUP_HP_DMIC quirk configures pin 0x12 as an internal DMIC, which is a misconfiguration for this machine: the pin is not wired to a codec DMIC and the setting has no effect on the actual microphone path (which works via ACP6x). Replace ALC236_FIXUP_HP_DMIC with ALC236_FIXUP_HP_MUTE_LED_MICMUTE_GPIO, the standard quirk used by the closely related HP Laptop 15-fd0xxx and other ALC236 HP machines. This removes the misleading DMIC pin config and adds proper mute LED and micmute LED support that was missing from the original quirk. Fixes: 720460722310 ("ALSA: hda/realtek: add quirk for HP Laptop 15-fc0xxx") Cc: stable@vger.kernel.org Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221233 Closes: https://bugzilla.kernel.org/show_bug.cgi?id=222044 Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Link: https://patch.msgid.link/20261015065640.377466-1-zhangheng@kylinos.cn Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-15ALSA: hda/realtek: Limit Line In boost and ADC gain on DECENTA MATX03wangdicheng
The DECENTA MATX03 (ALC897, SSID 1e0b:1297) exposes a high gain range on both the Line In pin boost and the ADC input amp. Pin 0x1a reports nsteps=0x03 with stepsize=0x27, that is 0, 9.75, 19.5 and 29.25 dB. ADC 0x08 reports nsteps=0x3f with stepsize=0x02, that is 0 to 31.5 dB in 0.5 dB steps, and defaults to 0x3f (maximum). The combined 60.75 dB analogue cascade overloads the front-end when the source level is high, producing audible noise during Line In monitoring. Add a new fixup alc897_fixup_limit_linein_boost that overrides the amp capabilities of pin 0x1a to nsteps=1 (max ~11.75 dB) and ADC 0x08 to nsteps=1 (max ~0.5 dB). The total gain drops from 60.75 dB to ~12.25 dB, eliminating the clipping. Signed-off-by: wangdicheng <wangdicheng@kylinos.cn> Link: https://patch.msgid.link/20261015021210.106392-1-wangdich9700@163.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-14ALSA: hda/realtek: Fix speaker and mic mute LEDs on IdeaPad Pro 5 14IAH10Aayush Kumar
The speaker and microphone mute LEDs on the IdeaPad Pro 5 14IAH10 do not follow the ALSA mute state. This machine has an ALC287 codec with SSID 17aa:3914, but shares PCI SSID 17aa:3843 with the Yoga Book 9i and currently gets its fixup. Add a codec SSID quirk that runs the IdeaPad ACPI LED fixup. Chain the existing bass speaker amp fixup so the audio setup is retained. Tested on the IdeaPad Pro 5 14IAH10: muting and unmuting the headphone sink toggled the physical speaker mute LED. Muting both microphone controls changed the ALSA mic LED state from 0 to 1. Signed-off-by: Aayush Kumar <aayushkmx@gmail.com> Link: https://patch.msgid.link/20261014072505.60358-1-aayushkmx@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-14ALSA: hda/realtek: keep headset mic on Acer SSID 0x1640Iván Ezequiel Rodriguez
The micmute-LED quirk for the Aspire A315-44P matches PCI SSID 1025:1640 before the Acer ALC256 pin fallback. The Aspire Go 15 AG15-42P shares that SSID and leaves nid 0x19 as 0x411111f0, so selecting the LED-only fixup drops the headset-mic pin remap that the fallback would have applied. Chain ALC2XX_FIXUP_HEADSET_MIC before the GPIO3 micmute LED on that SSID. Leave the Swift SFG16 entry (0x169a) unchanged. Tested on Acer Aspire AG15-42P (Callisto_BCU): PCI pick 1025:1640, Headset Mic=0x19, GPIO3 enabled with no physical micmute LED, speaker and capture paths functional. Fixes: d830631a128b ("ALSA: hda/realtek: Add micmute LED quirk for Acer Aspire A315-44P") Cc: stable@vger.kernel.org Signed-off-by: Iván Ezequiel Rodriguez <ivanrwcm25@gmail.com> Link: https://patch.msgid.link/20261013204219.9649-1-ivanrwcm25@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-14ALSA: hda/tas2781: Skip invalid TAS2563 UEFI calibration dataGergo Koteles
Some Lenovo 14ARB7 laptops do not have proper calibration data. Skip these zero calibration values and fall back to the calibration data provided by the DSP firmware. Tested-by: Georg Wenzel <g.wenzel@gmail.com> Fixes: c3ca4458cc2f ("ALSA: hda/tas2781: add TAS2563 support for 14ARB7") Cc: stable@vger.kernel.org # 6.18 Signed-off-by: Gergo Koteles <soyer@irl.hu> Tested-by: Philipp Oster <philippdev5396@outlook.de> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/12a1ab265a1dc0e3a062a54287c8ef48682c4efc.1791895478.git.soyer@irl.hu
2026-10-14ALSA: hda/tas2781: Assign total_sz at the end of the functionGergo Koteles
In the tas2563_save_calibration() function, cd->total_sz is assigned in several error paths. Move the assignment to the end of the function. Fixes: b6016332b889 ("ALSA: hda/tas2781: clear cali_data.total_sz when calibration read fails") Cc: stable@vger.kernel.org # 6.18 Signed-off-by: Gergo Koteles <soyer@irl.hu> Tested-by: Philipp Oster <philippdev5396@outlook.de> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/4b357778dce1b70a647e7e47b5ab3f0a6b2fc0cc.1791895478.git.soyer@irl.hu
2026-10-14Revert "ALSA: hda/tas2781: Enable bass speakers support"Takashi Iwai
This reverts commit 3bc4fc135ec741c5657cba6b2300bf8bf81179d2. The problem will be addressed in a more proper way later. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-13ASoC: tegra: Support auxiliary devicesMark Brown
Svyatoslav Ryhel <clamor95@gmail.com> says: Add support for auxiliary devices, such as amplifiers, sound-muxes or dsp, to be added to the sound card. Link: https://patch.msgid.link/20261013180253.477605-1-clamor95@gmail.com
2026-10-13ALSA: hda/realtek: Add GPIO2 low quirk for ASUS E5402WHAZhang Heng
The internal speaker amplifier on the ASUS ExpertCenter AIO E5402WHA (ALC256, SSID 1043:3500) is enabled via GPIO2 and is active-low. Driving GPIO2 high, as ALC256_FIXUP_ASUS_AIO_GPIO2 does on the ZN270IE, keeps the speakers muted. Add a dedicated fixup that drives GPIO2 low so the internal speakers work. Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221938 Tested-by: Johan den Hollander <johan.den.hollander@finalist.nl> Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Link: https://patch.msgid.link/20261013071255.270131-1-zhangheng@kylinos.cn Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-12ALSA: hda: cs35l41: Fix ACPI device reference leak on probe failureMa Ke
cs35l41_hda_probe() takes an acpi_device through cs35l41_hda_read_acpi() and stores it in cs35l41->dacpi. Only the failures that happen later reach the err: label, which is where that reference and cs35l41->acpi_subsystem_id are released, so the early return taken when cs35l41_hda_read_acpi() fails leaves both behind. Keep the ownership in the caller instead of dropping the reference inside cs35l41_hda_read_acpi(). That removes the need to work out whether a given failure path has already released it, and with it the double put that cs35l41_hda_parse_acpi() would otherwise cause when it fails after having released the device itself. cs35l41_hda_parse_acpi() and the !physdev path no longer put the reference, and the early failure enters the existing err: cleanup tail through a new err_acpi label. The label sits between the reset of the codec and the gpio cleanup, so an early failure also releases the reset and chip-select descriptors that cs35l41_hda_parse_acpi() may already have taken, while still skipping cs35l41_safe_reset() on a codec that was never brought up. cs35l41->dacpi comes from devm_kzalloc() and is only assigned once the ACPI device has been found, so the put is a no-op when the lookup itself failed. Found by code review. Fixes: 447106e92a0c ("ALSA: hda: cs35l41: Support mute notifications for CS35L41 HDA") Cc: stable@vger.kernel.org Signed-off-by: Ma Ke <make_ruc2021@163.com> Link: https://patch.msgid.link/20261012084152.3740340-1-make_ruc2021@163.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-12ALSA: hda/conexant: Add quirk for Acer Aspire Go 16 mic mute LEDGonçalo Miranda
The Acer Aspire Go 16 (AG16-71P) uses a Conexant SN6180 codec (subsystem ID 0x1025:0x1937) with the microphone mute LED wired to GPIO4. Add a quirk entry so the kernel drives the LED in sync with the microphone mute state. The fixup reuses the existing cxt_setup_mute_led() helper with mask 0x10, matching the behavior verified on the hardware. Signed-off-by: Gonçalo Miranda <me@goncalom.dev> Link: https://patch.msgid.link/20261012110024.25310-1-me@goncalom.dev Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-12Merge branch 'for-linus' into for-nextTakashi Iwai
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-11ALSA: hda/cs8409: Fix for Dell Cirrus audio jack detectSteven 'Steve' Kendall
On some models like the Dell Inspiron 15 3520, jack detection does not work. This patch switches to delayed work to fix jack plug on Chrome OS for this model. Assisted-by: LLM Signed-off-by: Steven 'Steve' Kendall <skend@chromium.org> Link: https://patch.msgid.link/20261007-fix-headphone-plug-cirrus-dell-v5-1-c28146b18d5c@chromium.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-11ALSA: hda/realtek: Fix mute LEDs on HP ENVY 17-cr1xxxMaksim Krasutski
The HP ENVY Laptop 17-cr1xxx with subsystem ID 103c:8be8 uses an ALC245 codec and two CS35L41 I2C speaker amplifiers. Its existing quirk configures the amplifiers but does not enable the speaker and microphone mute LED handlers. Select ALC287_FIXUP_CS35L41_I2C_2_HP_MUTE_LEDS to retain the amplifier setup and enable both mute indicators. The equivalent change was tested on an HP ENVY 17-cr1xxx running Kubuntu 26.04.1 with kernel 7.0.0-38-generic. Both keyboard mute indicators were confirmed working. Fixes: aa8e3ef4fe53 ("ALSA: hda/realtek: Add quirks for various HP ENVY models") Assisted-by: LLM Signed-off-by: Maksim Krasutski <krasutskimaksim@gmail.com> Link: https://patch.msgid.link/20261010185335.30949-1-krasutskimaksim@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-10ALSA: hda/scodec: imply SERIAL_MULTI_INSTANTIATE for AW88399Marco Giunta
The AW88399 HDA side codec driver relies on the serial-multi-instantiate driver to create I2C devices from the "AWDZ8399" ACPI HID entry. Add imply SERIAL_MULTI_INSTANTIATE to help kernel configuration tools suggest the correct dependency, matching the CS35L41 and CS35L56 HDA side codec entries. Signed-off-by: Marco Giunta <marco_giunta@outlook.it> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/SN6PR19MB2303BF65050B51AE7217BB9AFCBD2@SN6PR19MB2303.namprd19.prod.outlook.com
2026-10-10ALSA: hda/realtek: Enable all four speaker amps on Lenovo ThinkBook X G2 IAHEvgeny Akhtimirov
The Lenovo ThinkBook X G2 IAH (MTM 21TU) has an ALC287 codec with four CS35L41 amplifiers on I2C (CSC3551). It reports codec SSID 17aa:3929, which it shares with the ThinkBook 13x Gen 5, and PCI SSID 17aa:3842. Since PCI SSID 17aa:3842 has no quirk entry, the codec SSID matches ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD. That fixup binds only two amps (cs35l41-hda.0 and .1), while the CS35L41 configuration table describes four for 17AA3929. Amps .2 and .3 probe and load firmware, but they are never bound to the codec, so half of the speakers stay silent. Add a ThinkPad-style fixup chain that binds four I2C amps, and match the laptop by its PCI SSID so the ThinkBook 13x Gen 5 is not affected. Tested with hda_model=1028:0c4d (alias to ALC287_FIXUP_CS35L41_I2C_4): all four amps bind, apply their calibration and are runtime-active during playback. Cc: stable@vger.kernel.org Signed-off-by: Evgeny Akhtimirov <evgeny@devduty.com> Link: https://patch.msgid.link/20261009-thinkbook-x-g2-iah-v1-1-56012188aee0@devduty.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-08ALSA: hda/hdmi: clamp sad_count in ELD proc write handlerPeter Ujfalusi
snd_hdmi_write_eld_info() parses a "sad_count N" line from the root-writable ELD proc interface and assigns N directly to e->sad_count with no upper bound, unlike the per-index "sadN_*" lines a few lines below which are already bounded to ELD_MAX_SAD. snd_hdmi_eld_update_pcm_info() later iterates "for (i = 0; i < e->sad_count; i++)" over the fixed e->sad[ELD_MAX_SAD] array, so an oversized sad_count read from the proc file causes it to walk past the array. Reject sad_count values above ELD_MAX_SAD, matching the existing per-index guard. Fixes: acb059938810 ("ALSA: hda - ELD proc interface write updates") Cc: stable@vger.kernel.org Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://patch.msgid.link/20261008085133.9528-1-peter.ujfalusi@linux.intel.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-08ALSA: hda/hdmi: clamp num_cvts against cvt_nids[] in hdmi_read_pin_connPeter Ujfalusi
hdmi_add_cvt() stores each converter's NID into the fixed-size spec->cvt_nids[] array (used only by the Intel Haswell pin-connection fixup), but only when spec->num_cvts is still within ARRAY_SIZE(cvt_nids); the num_cvts counter itself is incremented unconditionally regardless of whether the store happened. A codec that reports more converters than cvt_nids[] can hold therefore ends up with num_cvts > ARRAY_SIZE(cvt_nids). hdmi_read_pin_conn(), on the intel_hsw_fixup path, copies num_cvts elements from cvt_nids[] with memcpy(), so once num_cvts exceeds the array size this reads past cvt_nids[] and writes the resulting garbage NIDs into per_pin->mux_nids[]. Clamp the copy length to the actual size of cvt_nids[] instead of trusting num_cvts, which is also used unbounded as the size of the separate, dynamically-sized spec->cvts array and must not be truncated at the source. Fixes: bce0d2a80e42 ("ALSA: hda - Allow unlimited pins and converters in patch_hdmi.c") Cc: stable@vger.kernel.org Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://patch.msgid.link/20261008085122.9442-1-peter.ujfalusi@linux.intel.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-08ALSA: hda/realtek: Fix silent speakers on Lenovo Legion S7 15IMH05Matej Sochan
The speakers on the Legion S7 15IMH05 (PCI SSID 17aa:3811, ALC287) stay silent after a cold boot with the current quirk, which applies ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS. They only start working after a suspend/resume cycle. The amplifier setup is sent through COEF 0x24/0x26 on NID 0x20. On this machine the first pass of that sequence appears to only wake the amplifiers. Sending the identical sequence a second time makes both speakers work, provided the second write comes a few milliseconds after the first: back-to-back writes leave the speakers silent, a 7 ms gap makes only the right speaker work, and 8 ms or more is reliable. A dump of all COEF registers of NID 0x20 taken before and after the second write shows no difference. Add a dedicated fixup that writes the sequence, waits 20 ms to keep a margin over the measured minimum, and writes it again on every codec init. It chains to the same AUTOMUTE fixup as before. To share the sequence, move the verbs of ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS into a named array; this has no functional change for the other users of that fixup. Fixes: 67f4c61a73e9 ("ALSA: hda/realtek: Add quirk for Legion S7 15IMH") Cc: stable@vger.kernel.org Link: https://github.com/CachyOS/linux-cachyos/issues/792 Signed-off-by: Matej Sochan <matej.sochan@gmail.com> Link: https://patch.msgid.link/20261007-legion-s7-v1-1-8ea7fb7ee766@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-07ALSA: hda/ca0132: Add Sound BlasterX AE-5 external RGB LED strip supportDevin Christensen
The Sound BlasterX AE-5 and AE-5 Plus expose a 3-pin 5V addressable RGB header driven directly by the CA0113 PCIe-to-HD-Audio bridge. Rather than using the CA0132 DSP or MMIO GPIO, the CA0113 contains an autonomous HDA link sniffer that snoops a designated HDA DMA playback stream, extracts the 24-bit GRB color payload, and serializes it as 800 kHz single-wire NRZ pulses to the strip (WS2812B protocol). Expose the strip through volatile card control elements: "AE-5 LED Strip" (RW, BYTES): 300-byte RGB payload representing up to 100 addressable LEDs (3 bytes per LED). "AE-5 LED Strip Count" (RW, INTEGER): Active LED count (1..100). The controls are marked with IFACE_CARD and SNDRV_CTL_ELEM_ACCESS_VOLATILE so changes do not trigger unnecessary audio daemon wakeups or state restoration by alsactl. Writes allocate an idle HDA playback stream, format a 32 KB DMA buffer populated with repeating WS2812 frames (preamble, audio words per LED, and reset gap), configure the CA0113 BAR2 serializers and stream-tag pin mux, and pulse the stream long enough for the reset latch to fire. Access is serialized with a per-spec mutex, and the controls are only registered on QUIRK_AE5 devices. The strip transport uses snd_hdac_dsp_prepare() / snd_hdac_dsp_cleanup(), which require CONFIG_SND_HDA_DSP_LOADER. All strip-related code and struct fields are conditionally compiled under IS_ENABLED(CONFIG_SND_HDA_DSP_LOADER), with a no-op stub for ae5_add_strip_controls() when disabled. Signed-off-by: Devin Christensen <dchristensen8@proton.me> Link: https://patch.msgid.link/20261007163207.2621040-1-dchristensen8@proton.me Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-07ALSA compress / ASoC compress / SOF: Compressed audio support with IPC4Mark Brown
Peter Ujfalusi <peter.ujfalusi@linux.intel.com> says: This series adds compressed audio support for SOF with IPC4 firmware. Supported formats are PCM, MP3, AAC and VORBIS, the feature set is PAUSE_PUSH/RELEASE, DRAIN and position reporting. Patches 1-5 are prerequisites in the ALSA compress core and in soc-compress.c. These are core fixes rather than driver level workarounds on purpose. The other users of compressed DPCM have DSP internal ports on their BEs, driven by code they own. An Intel/SOF BE ends at a third party CODEC driver which is shared with the non DPCM case and has no reason to know that the FE is compressed. That set of CODECs is open ended, so teaching each of them to cope with a compressed FE does not scale. The core has to hand a BE the same substream state whether the FE is a PCM or a compressed one. Two of these patches change behaviour for the existing users of compressed DPCM, so they would need a look from Qualcomm and NXP: - "ASoC: soc-compress: Implement trigger FE-BE sequencing as with normal PCMs" makes the FE/BE trigger order follow dai_link->trigger[], the way dpcm_fe_dai_do_trigger() does it. Neither sound/soc/qcom/ nor sound/soc/fsl/ sets it, so both default to SND_SOC_DPCM_TRIGGER_PRE: START keeps the current order, but STOP, SUSPEND and PAUSE_PUSH now trigger the BE before the FE. - "ASoC: soc-compress: Stop running dpcm on free" sends a STOP trigger from soc_compr_free_fe() if the DPCM is still in START state, which is the case when the last trigger the stream received was a DRAIN. Patches 6-20 implement the IPC4 compressed support, patch 21 is a Kconfig cleanup. The last two patches enable the feature, in Kconfig for TGL and later and in the topology parser, so the compressed device type only becomes usable once the code behind it is in place. Testing: - IPC4: Arrow Lake, compressed playback on speaker and headphone (cs42l43), MP3, AAC and VORBIS. - IPC3: tested by NXP. This does not cover the STOP on free path above, as they do not implement DRAIN. Link: https://patch.msgid.link/20261007084955.1256-1-peter.ujfalusi@linux.intel.com
2026-10-06ALSA: hda/realtek: Drop unneeded DAC override for HONOR MagicBook Pro 16 2024Denis Yakovlev
Commit 1e3e378d63be ("ALSA: hda/realtek: Enable bass speakers on HONOR MagicBook Pro 16 2024") restricted the speaker pin 0x1b to DAC 0x02, on the assumption that the second speaker pair would otherwise end up on DAC 0x03, as channels 3/4 that a stereo stream never reaches. That assumption was wrong: without the override, pin 0x1b is still connected to DAC 0x02, the only DAC that pin 0x14 can use, so the override changes nothing. With and without it the codec routing is identical and the speakers behave the same with nothing plugged in, with headphones and with a CTIA headset inserted; without it they also keep working after suspend/resume. That commit also got the speaker roles the wrong way round. Pin 0x1b, which the BIOS does configure, drives the bottom speakers, which carry the low and mid frequencies; pin 0x14 drives the tweeters next to the keyboard, and those are the speakers that stay silent without the quirk. Measured with the internal microphones, enabling one pin at a time: at 1 kHz the 0x14 pair alone is more than 30 dB below the 0x1b pair alone, while at 6 kHz the two are within 10 dB of each other. Drop the DAC override and correct the pin comment, so the quirk only sets pin configurations, like the one for the sibling M1020 board (HONOR MRB-XXX). Fixes: 1e3e378d63be ("ALSA: hda/realtek: Enable bass speakers on HONOR MagicBook Pro 16 2024") Assisted-by: LLM Signed-off-by: Denis Yakovlev <mfthesun@vivaldi.net> Link: https://patch.msgid.link/20261005203836.11074-1-mfthesun@vivaldi.net Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-05ALSA: hda/realtek: Fix audio after Windows reboot on ASUS Q423SAScott Gauche
The ASUS Vivobook S 14 Q423SA-U5512 (DMI family S5406SA) with the ALC294 codec has working analog audio when booted directly after a full shutdown. After a warm reboot from Windows 11, audio works briefly during Linux startup, then both the internal speakers and headphones become silent. PCM playback continues without errors. Coefficient 0x1b is 0x4e4b on a direct cold boot, but 0x4a4b after the Windows warm reboot. Restoring bit 10 changes it back to 0x4e4b and immediately enables both analog outputs. Speaker playback, headphone playback, jack switching, cold boot, and suspend/resume were tested successfully. The same 0x4a4b state and immediate recovery with 0x4e4b were independently confirmed on another S5406SA with subsystem 1043:10c4. The same coefficient write is already used by ALC294_FIXUP_ASUS_COEF_1B for the ASUS UX431DA. That fixup cannot be reused here because it chains to ALC289_FIXUP_ASUS_GA401 and applies unrelated DAC routing and microphone pin configuration. Add a model-specific fixup for subsystem 1043:10c4 and chain it to the existing ALC2XX_FIXUP_HEADSET_MIC fixup instead. Link: https://github.com/thesofproject/sof/issues/11051 Fixes: f2d08f3651fb ("ALSA: hda/realtek: Fix headset mic on ASUS Vivobook S14 S5406SA") Signed-off-by: Scott Gauche <scott-dev@scottgauche.com> Link: https://patch.msgid.link/20261005154017.1164657-1-scott-dev@scottgauche.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-04ASoC: aw88399: remove bsts_unreliable workaroundMarco Giunta
Now that the shared library correctly skips the BSTS check when the boost converter is bypassed, the per-instance bsts_unreliable flag added as a workaround in the HDA side codec driver is unnecessary. Remove it from the library, the HDA driver, and the shared header. This also simplifies testing the HDA side codec driver on new devices, as new models no longer need a quirk entry to bypass the BSTS check. Users can test via the model= module parameter in alc269 without a custom kernel. Signed-off-by: Marco Giunta <marco_giunta@outlook.it> Link: https://patch.msgid.link/SN6PR19MB2303CC64AF7DEC3C5C98A512FC8F2@SN6PR19MB2303.namprd19.prod.outlook.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-04ALSA: hda/tas2781: Enable bass speakers supportGeorg Wenzel
Configure the driver to correctly initialize and enable the bass speakers on devices utilizing the TAS2781 amplifier. Without this change, only the tweeters or main speakers are active, leading to thin audio output. Set up the required register sequences and routing to ensure the bass channels are properly powered and mixed into the audio stream. Signed-off-by: Georg Wenzel <g.wenzel@gmail.com> Link: https://patch.msgid.link/20261004071202.89116-1-g.wenzel@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-04ALSA: hda/realtek: Enable headset mic on HONOR MagicBook Pro 16 2024Denis Yakovlev
The HONOR MagicBook Pro 16 2024 (DRA-XX, board M1020, ALC256, SSID 1ee7:204e) has a combined 3.5 mm headphone/microphone jack. The BIOS leaves the headset mic pin 0x19 at 0x411111f0, so the codec parser builds no capture path for it, and it leaves the jack switch (coefficient 0x45) in the TRS state, which cuts the microphone contact off from the codec. A wired headset microphone therefore records nothing. Configure 0x19 as a headset microphone (0x03a1113c, "headset mic without its own jack detect"), the same value already used for the sibling M1020 board (HONOR MRB-XXX) and by the VAIO quirks, and chain to the generic headset mode handler, which detects the CTIA/OMTP headset type on every jack event and programs the jack switch accordingly. Pin 0x1a is left untouched: there is no evidence that it is wired on this board. Fixes: 1e3e378d63be ("ALSA: hda/realtek: Enable bass speakers on HONOR MagicBook Pro 16 2024") Assisted-by: LLM Signed-off-by: Denis Yakovlev <mfthesun@vivaldi.net> Link: https://patch.msgid.link/20261003133325.97507-1-mfthesun@vivaldi.net Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-03ALSA: hda/realtek: Add mute LED quirk for HP Pavilion 15-eg3xxx (103c:8bfd)Jaidheer Sirigineedi
The mute LED on the HP Pavilion Laptop 15-eg3xxx (PCI SSID 103c:8bfd, Realtek ALC287) does not work because the machine has no entry in the quirk table. No fixup is applied, so the mute LED is never driven, even though the mute function itself works. The LED is controlled via GPIO pin 4 (mask 0x10), which is exactly what ALC287_FIXUP_HP_GPIO_LED configures. This was verified on the hardware with hda-verb: setting the GPIO data bit lights the mute LED, and clearing it turns the LED off. hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x10 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION 0x10 hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x10 # LED on hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x00 # LED off Add a quirk entry for 103c:8bfd using ALC287_FIXUP_HP_GPIO_LED. Signed-off-by: Jaidheer Sirigineedi <jaidheer7@gmail.com> Link: https://patch.msgid.link/20261002185951.33855-1-jaidheer7@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-10-03ALSA: hda: Fix speakers on ThinkBook Plus G3 IAPZhang Heng
Lenovo ThinkBook Plus G3 IAP shares PCI SSID 17aa:3891 with Yoga Pro 7 14AHP9, but has a different codec SSID (0x17aa3875). Use HDA_CODEC_QUIRK to select ALC287_FIXUP_CS35L41_I2C_2 and add ACPI _SUB values 17AA3845/17AA3846 to the CS35L41 property table, since the BIOS provides no _DSD. Reported-by: Harry Nixon <harryanixon@yahoo.com> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=222053 Tested-by: Harry Nixon <harryanixon@yahoo.com> Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Link: https://patch.msgid.link/20261001033920.111061-1-zhangheng@kylinos.cn Signed-off-by: Takashi Iwai <tiwai@suse.de>