aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/sound/hda/codecs
AgeCommit message (Collapse)AuthorFilesLines
2026-08-18Merge tag 'asoc-v7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linusTakashi Iwai2-11/+11
ASoC: Updates for v7.3 A very busy release, a combination of a lot of new device work and more people than usual doing various subsystem wide improvements in the code. The main subsystem level change is the work Morimoto-san has been doing to get automatic DAI format selection more widely deployed, and even that is largely changes in the drivers to enable use of the feature rather than framework work. - Conversions of a lot of drivers to use the automatic DAI format selection code from Morimoto-san. - Many fixes and code improvements from bui duc phuc and Morimoto-san. - Fixes for ordering problems in register default tables from Peter Ujfalusi. - Changes to use auto-cleanup for firmware to improve robustness from Takashi Iwai. - Support for firmware on more Awinc devices. - Many changes in the Qualcomm driver stack, mostly around new platform support. - Support for AMD ACP7.B/F, Cirrus Logic CS35L62, Loongson 2K0300, Meson GX formatter and interface, Qualcomm LPI MI2S, SM8475 and WSA855 and Realtek RT1321 VA1/2 and RT766/7.
2026-08-17ALSA: hda: Add Lisuan HDMI controller and codec supportXu Rao1-0/+1
Lisuan GPUs expose an HD-audio controller at PCI ID 4c54:5010 and an HDMI/DP codec with codec ID 0x4c545020. Neither ID is currently matched by the HDA stack, leaving HDMI/DP audio unavailable on these devices. The existing downstream support uses the generic HDMI codec path and attaches no Lisuan-specific capability flags to the controller. Its dedicated AZX driver type only changes the short driver name. Use the corresponding generic upstream paths instead: bind 4c54:5010 to AZX_DRIVER_GENERIC, register 0x4c545020 as MODEL_GENERIC, and add the Lisuan codec vendor name. This keeps the enablement minimal and avoids a vendor-only AZX driver type with no vendor-specific behavior. Signed-off-by: Xu Rao <raoxu@uniontech.com> Link: https://patch.msgid.link/DE1B62191D573D37+20260817085531.992573-1-raoxu@uniontech.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-17ALSA: hda/realtek: Fix Lenovo Yoga Slim 7 14AKP10 quirk orderingZhang Heng1-1/+4
The Yoga Slim 7 14AKP10 has a PCI SSID of 17aa:38b4 but a codec SSID of 17aa:391a. The current quirk table contains a PCI quirk for 17aa:38b4 (for the Legion Slim 7 16IRH8) which matches first, so the codec-specific quirk for 17aa:391a is never applied. This results in the wrong fixup being used (CS35L41_I2C_2 instead of the correct bass speaker fixup), leaving the internal speakers misconfigured or silent. Remove the 17aa:391a entry from its PCI-SSID-sorted position and add it as an HDA_CODEC_QUIRK directly before the 17aa:38b4 entry, because it must match on the codec subsystem ID rather than the PCI SSID and it has to win over the colliding PCI quirk for the Legion Slim 7 16IRH8. A comment is added to explain the out-of-order placement, following the same style already used for the 17aa:38bb and 17aa:38f9 codec-SSID overrides. With this change, the correct ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN is applied, restoring speaker output and auto-mute functionality. The original quirk added in commit e6c888202297 ("ALSA: hda/realtek: Add quirk for Lenovo Yoga Slim 7 14AKP10") matched on the PCI SSID 17aa:391a, but this model actually exposes PCI SSID 17aa:38b4 (shared with the Legion Slim 7 16IRH8), so that quirk never matched and the bass speaker remained silent. Fix it by matching on the codec SSID and placing the entry before the colliding 17aa:38b4 PCI quirk. Fixes: e6c888202297 ("ALSA: hda/realtek: Add quirk for Lenovo Yoga Slim 7 14AKP10") Cc: stable@vger.kernel.org Link: https://bugzilla.kernel.org/show_bug.cgi?id=221298 Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Link: https://patch.msgid.link/20260817094708.222154-1-zhangheng@kylinos.cn Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-17ALSA: hda/realtek: Fix mute LED for HP Victus 15-fa1xxx (MB 8C3F)Yashraj Ghule1-0/+1
The HP Victus 15-fa1xxx with motherboard 8C3F is missing the existing mute LED quirk for ALC245 codecs. Add the 103c:8c3f subsystem ID to the existing ALC245_FIXUP_HP_MUTE_LED_COEFBIT quirk. Tested on HP Victus 15-fa1xxx (MB 8C3F). The mute LED works as intended. Signed-off-by: Yashraj Ghule <yashrajghule.221@gmail.com> Link: https://patch.msgid.link/20260816110655.11592-1-yashrajghule.221@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-17ALSA: hda/realtek: Add micmute LED quirk for Acer Aspire A515-57Giulio Gualtierotti1-0/+1
The Acer Aspire A515-57 with subsystem ID 1025:1616 and Realtek ALC256 uses GPIO2 (0x04) for the microphone mute LED. Without a quirk, the GPIO mask and direction are not configured and the LED does not follow the microphone mute state. Reuse ALC256_FIXUP_ACER_SFG16_MICMUTE_LED, which configures GPIO2 as the microphone mute LED. Tested on an Acer Aspire A515-57 with ALC256 (10ec:0256, subsystem 1025:1616). GPIO mask and direction are 0x04 and GPIO data switches between 0x00 and 0x04; the LED device is registered and follows the microphone mute state. Signed-off-by: Giulio Gualtierotti <ggualtierotti.dev@mailbox.org> Link: https://patch.msgid.link/20260816094223.36617-1-ggualtierotti.dev@mailbox.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-14ALSA: hda/realtek: Drop duplicate quirk for Lenovo 0x17aa:0x38dfZhang Heng1-1/+0
The PCI SSID 17aa:38df is listed twice in alc269_fixup_tbl[], both mapping to the same fixup ALC287_FIXUP_TAS2781_I2C: SND_PCI_QUIRK(0x17aa, 0x38df, "Yoga Y990 Intel YC Dual", ALC287_FIXUP_TAS2781_I2C), ... SND_PCI_QUIRK(0x17aa, 0x38df, "Y990 YG DUAL", ALC287_FIXUP_TAS2781_I2C), The HDA quirk lookup (hda_quirk_lookup_id()) returns the first matching entry, so the second occurrence never takes effect; it is dead code. Drop the second entry. The retained "Yoga Y990 Intel YC Dual" label also follows the naming of the neighbouring 0x38e0 entry ("Yoga Y990 Intel VECO Dual"). Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Link: https://patch.msgid.link/20260814084101.504471-1-zhangheng@kylinos.cn Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-13ALSA: hda/realtek: Add mute LED quirk for HP 250 G8 (0x85f3)Bramwel Barack1-0/+1
The HP 250 G8 Laptop PC (subsystem 103c:85f3) using the Realtek ALC236 codec requires a specific quirk to enable the mute button LED. Currently, the audio mutes in software, but the physical indicator light remains unlit. Adding a quirk entry to the alc236_fixup_tbl with the ALC236_FIXUP_HP_MUTE_LED_COEFBIT2 fixup correctly maps the LED to the mute state via COEF index 0x07. Signed-off-by: Bramwel Barack <bramwelbarack89@gmail.com> Link: https://patch.msgid.link/20260812192832.69240-1-bramwelbarack89@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-12ALSA: hda/conexant: Add mute LED quirk for HP ProBook 440 G5Dmytro Moroziuk1-0/+1
The HP ProBook 440 G5 requires the CXT_FIXUP_MUTE_LED_GPIO quirk to properly toggle the physical mute and mic-mute LEDs via the CX8200 codec. Without this quirk, the LEDs remain permanently dark. Signed-off-by: Dmytro Moroziuk <dmorozyk1@gmail.com> Link: https://patch.msgid.link/20260812121856.30353-1-dmorozyk1@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-12ALSA: hda/ca0132: replace sprintf() with snprintf()Bob Song1-9/+10
Replace six sprintf() calls that write to SNDRV_CTL_ELEM_ID_NAME_MAXLEN-sized buffers with snprintf() to avoid potential buffer overflows. Signed-off-by: Bob Song <songxiebing@kylinos.cn> Link: https://patch.msgid.link/20260812033030.635417-1-songxiebing@kylinos.cn Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-12ALSA: hda/ca0132: set codec->spec to NULL after freeingBob Song1-0/+2
ca0132_free() and dbpro_free() call kfree(codec->spec) without setting codec->spec to NULL afterward, leaving a dangling pointer. Set it to NULL. Signed-off-by: Bob Song <songxiebing@kylinos.cn> Link: https://patch.msgid.link/20260812033019.635010-1-songxiebing@kylinos.cn Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-11ASoC: amd: enable audio on HP OmniBook X Flip 14Mark Brown1-1/+2
Ville Saarinen <wiza@saarinenkoti.fi> says: The HP OmniBook X Flip 14-kc0xxx (board 8EA1, Strix Point, ACP 7.2) has no usable audio on mainline at all. Its BIOS reports an ACP configuration flag of FLAG_AMD_LEGACY_ONLY_DMIC, which binds the legacy ACP driver and registers a PDM-only card, so the SoundWire links are never scanned. The two TAS2783 speaker amplifiers on link 0 and the RT712-VB jack codec on link 1 never enumerate, and the machine has no playback path whatsoever. Patch 1 adds a DMI quirk overriding the flag so snd_pci_ps probes. Patch 2 adds the machine entry describing the link topology. With both applied the card comes up and every path on the machine works: internal speakers, headphone jack with detection, headset microphone and the internal DMIC array. Two further patches are needed for the speakers to render stereo rather than mono, and to survive a system resume; those are in the TAS2783 codec driver and are being sent separately to the TI maintainers, since they have no build dependency on this pair. Related reports for the same root cause on other machines: - kernel bugzilla #221226 (ASUS Zenbook S16) - CachyOS linux-cachyos#820 (HP OmniBook X Flip 16, board 8EA2 -- the sibling board, which would need its own entry; I have no access to one and have not added it) Tested on the affected machine only. I do not have any other ACP 7.2 board, so the gating on patch 2 is written to be conservative rather than broad. Testing ======= The hardware testing was done on v7.1.6, where an equivalent version of this pair is what makes audio work on the machine. Against the master commit named below, both patches have been compile-tested only (gcc, W=1, no new warnings, no new external symbol references). Patch 2 has been reworked slightly relative to the tested build: the RT712-VB entry now reuses the existing jack_dmic_endpoints array, which already describes exactly the AIF1 jack + AIF3 DMIC pairing this board needs, instead of adding a second identical copy of it. That was a mechanical substitution, but it has not been through hardware. Tool disclosure, per Documentation/process/generated-content.rst ================================================================ This work was done in extended interactive sessions with Claude (Anthropic, model claude-opus-5) acting as a coding and debugging assistant, and a substantial amount of the analysis and of the patch text originated with it. Both patches carry an Assisted-by tag as described in Documentation/process/coding-assistants.rst. The division of work: - The assistant read the DMI data and ACP configuration flag off the running machine, identified the flag override as the fix, derived the SoundWire topology from the enumerated peripherals, and drafted both patches and both changelogs. - I ran everything that needed root or physical access, rebooted into each build, and did the listening tests. The left/right ordering in patch 2 is set by the order of the two amplifier entries; the first version had the sides reversed and that was caught by ear, not by the assistant. - No single prompt generated these patches. The session was iterative over roughly a day: inspect state, form a hypothesis, build, reboot, measure, discard the hypothesis if the measurement disagreed. Several confident intermediate conclusions were wrong and were only caught by measurement. I have reviewed both patches, I understand what they do, and I take responsibility for them. Link: https://patch.msgid.link/20260809101439.4798-1-wiza@saarinenkoti.fi
2026-08-11ALSA: hda/realtek: Rename Line Out control to Headphone on ThinkPad X1 Carbon 6thZhang Heng1-0/+13
The ThinkPad X1 Carbon 6th Gen (ALC285, SSID 17aa:225c) has no physical Line Out jack. The 3.5mm headphone jack is wired to the headphone DAC, but the ALSA HDA driver names the corresponding control as "Line Out Playback Volume" (node 0x02). PipeWire's ALSA Card Profile (ACP) silences "Line Out" when headphones are activated, which incorrectly mutes the headphone output. Add a quirk to rename the control to "Headphone Playback Volume" via alc285_lenovo_dac_rename(). Tested on openSUSE Tumbleweed (kernel 7.1.5): - Control renamed successfully, no name collision with "Headphone Playback Switch" - Headphone output works across multiple PipeWire/WirePlumber restarts and port switches Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221522 Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Tested-by: Branislav Klocok <branislav.klocok@orava.sk> Link: https://patch.msgid.link/20260811062734.400512-1-zhangheng@kylinos.cn Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-11ALSA: hda/realtek: Add quirk for Lenovo Legion Pro 5 16ADR10Zhang Heng1-0/+1
The Lenovo Legion Pro 5 16ADR10 (codec SSID 0x17aa:0x3926) suffers from distorted/crackling speaker output, as only one speaker pin is driven without proper COEF/amp initialization. Add HDA_CODEC_QUIRK applying ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN to enable both speaker pins and proper amp initialization, restoring clean audio output at all volume levels. Tested: Both internal speaker pairs are now driven correctly and distortion is gone; headphone output remains unaffected. Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221595 Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Tested-by: Efe Yılmaz <efe.tcyilmaz@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260811024902.134457-3-zhangheng@kylinos.cn
2026-08-11ALSA: hda/realtek: Add quirk for Acer Predator PH16-71Zhang Heng1-0/+1
The Acer Predator PH16-71 (subsystem 0x1025:0x166c) with Realtek ALC245 codec has a non-functional headset microphone. Adding the ALC2XX_FIXUP_HEADSET_MIC quirk resolves the issue. Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221641 Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260811024902.134457-2-zhangheng@kylinos.cn
2026-08-10ALSA: hda/realtek: Enable micmute LED on HP EliteBook 6 G1a p/n: AD3Q9ET#UUGDenis Batishchev1-0/+1
The HP EliteBook 6 G1a (SSID 103c:8e0d) uses a Realtek ALC236 codec. Without a quirk no fixup is selected and the mic-mute LED stays off. It needs the same ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF quirk as the already-supported 14" variant (SSID 103c:8dfb), so add it. Signed-off-by: Denis Batishchev <ii343hbka@gmail.com> Cc: <stable@vger.kernel.org> Link: https://patch.msgid.link/20260810151440.2306217-2-ii343hbka@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-10ALSA: hda/realtek: Fix quiet 3.5mm jacks on Beelink SER6Brian Koebbe1-0/+6
Both the front headphone jack and the rear line-out jack play back at a barely audible volume on the Beelink SER6 Max (ALC897, PCI subsystem ID 1f66:0202), even with all mixer controls at 0dB. GPIO2 on the codec gates an external headphone/line amplifier that the generic parser never enables. Add a fixup that asserts it. Verified fixed on both jacks. Signed-off-by: Brian Koebbe <brian@koeb.be> Link: https://patch.msgid.link/20260810145700.1206010-1-brian@koeb.be Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-09ALSA: hda/realtek: Enable headset mic on F+ FLAPTOP rAjrat Makhmutov1-0/+1
The BIOS of the F+ FLAPTOP r laptop (Realtek ALC897, SSID 1e63:6d9a) declares only pin 0x1b, the headphone output of the 3.5 mm combo jack. Every other external pin is left at 0x411111f0, so the headset mic pin 0x19 is never parsed and no headset mic input exists. The pin is wired on this board - retasking it makes the headset mic record. Reuse ALC897_FIXUP_HP_HSMIC_VERB, which already sets the pin config this machine needs: 0x19 as a headset mic without its own presence detect. Only 0x1b reports jack presence here, so a mic pin with presence detect would leave the driver in auto-mic mode waiting for an event that never arrives. Without the quirk the generic parser retasks the lone headphone pin as an input instead. That surfaces as a "Headphone Mic" input which records only the internal mic bleed, so the headset mic appears present but dead. Tested on ALT Linux, kernel 6.12, by recording a CTIA headset mic on the combo jack with the internal mic as a reference. ALSA info before the patch: https://alsa-project.org/db/?f=18363eddea933baee100c9bf461d0e5cf74c8de2 ALSA info after the patch: https://alsa-project.org/db/?f=48ae2cd7aaf1eb0f24639ce83cd38cfd93b25f76 Cc: stable@vger.kernel.org # 6.12.x Signed-off-by: Ajrat Makhmutov <rauty@altlinux.org> Link: https://patch.msgid.link/20260808185500.2564948-1-rauty@altlinux.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-07ALSA: hda/realtek: Fix speakers on ASUS ROG Zephyrus G14 GA403UMGarrett Blackmon1-0/+1
The GA403UM (SSID 1043:1044) uses the same ALC285 codec + dual CS35L56 I2C amplifier topology as the GA403U and GA403W variants, which already have quirk entries (1043:1b13, 1043:1024). Without the quirk, the woofers sit on a separate DAC from the tweeters, so the hardware volume control only scales part of the speaker system and the headset microphone pins are not configured. Apply the existing ALC285_FIXUP_ASUS_GA403U_HEADSET_MIC fixup to the GA403UM as well. Signed-off-by: Garrett Blackmon <garrett@blackmon.dev> Link: https://patch.msgid.link/20260807150708.33785-1-garrett@blackmon.dev Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-07ALSA: hda/conexant: Add pin config quirk for Huawei MatebookZhang Heng1-0/+9
The headphone jack is not detected on this Huawei Matebook (Conexant SN6140 codec). The BIOS incorrectly marks Pin 0x18 as [N/A], causing the driver to report hp_outs=0 and no "Headphones" output appears. Override the pin configuration for NID 0x18 to set it as a headphone jack, which restores proper detection and audio routing. Link: https://github.com/thesofproject/sof/issues/10687 Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260807125857.678297-4-zhangheng@kylinos.cn
2026-08-07ALSA: hda/realtek: Fix headset mic on ASUS Vivobook S14 S5406SAZhang Heng1-0/+1
On the ASUS Vivobook S14 S5406SA (subsystem 0x104310c4, Lunar Lake platform) with an ALC294 codec, the headset microphone (3.5mm jack) fails to capture any audio. Adding the ALC2XX_FIXUP_HEADSET_MIC quirk resolves the issue and restores proper headset mic recording. Link: https://github.com/thesofproject/linux/issues/5729 Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260807125857.678297-3-zhangheng@kylinos.cn
2026-08-07ALSA: hda/realtek: Add quirk for Acer Gadget E10 ETBook left speakerZhang Heng1-0/+1
The Acer Gadget E10 ETBook (subsystem 0x1e50:0x7036, Realtek ALC233) has a left speaker that does not work by default. The BIOS fails to properly configure pin 0x1b, leaving it unconnected. Using hdajackretask to override pin 0x1b as "Internal Speaker" restores left speaker functionality. Add a quirk to apply this pin configuration automatically at probe time. Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221435 Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260807125857.678297-2-zhangheng@kylinos.cn
2026-08-07ALSA: hda/realtek: Add quirk for Acer Nitro ANV16-42 headset micZhang Heng1-0/+1
The Acer Nitro ANV16-42 (subsystem 0x1025:0x1909, Realtek ALC245) does not detect the headset microphone jack. Adding the ALC2XX_FIXUP_HEADSET_MIC quirk resolves the issue and restores proper headset mic functionality. Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221623 Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260807125857.678297-1-zhangheng@kylinos.cn
2026-08-07ALSA: hda/realtek: enable headset buttons on Lenovo Yoga Pro 7 14ASP10Marco Giunta1-1/+8
Inline headset buttons (play/pause, volume up/down) are unresponsive on the Lenovo Yoga Pro 7 14ASP10. Enable headset jack handling by chaining alc_fixup_headset_jack to the existing bass speaker fixup for this model. Signed-off-by: Marco Giunta <marco_giunta@outlook.it> Link: https://patch.msgid.link/IA1PR19MB77127DE4BC25300BAD284E30FCD22@IA1PR19MB7712.namprd19.prod.outlook.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-07ALSA: hda/realtek: Enable mute LEDs on HP Spectre x360 16-aa0xxxShang En Sim1-1/+1
The HP Spectre x360 2-in-1 Laptop 16-aa0xxx with PCI subsystem ID 0x103c:0x8c17 only gets the CS35L41 amplifier setup from ALC287_FIXUP_CS35L41_I2C_2, so the speaker-mute and mic-mute keyboard LEDs do not work. Use ALC245_FIXUP_HP_SPECTRE_X360_16_AA0XXX like subsystem ID 0x8c16 so the mute LEDs work. Tested on HP Spectre x360 2-in-1 Laptop 16-aa0xxx. Signed-off-by: Shang En Sim <sim@shangen.org> Link: https://patch.msgid.link/20260807055139.58707-1-sim@shangen.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-06ALSA: hda/realtek: Merge duplicate quirk entries for ASUS UM6702RA/RCZhang Heng1-2/+1
The ASUS UM6702RA/RC (subsystem 0x1043:0x1ee2) currently has two duplicate quirk entries: one using HDA_CODEC_QUIRK with ALC285_FIXUP_ASUS_I2C_SPEAKER2_TO_DAC1, and another using SND_PCI_QUIRK with ALC287_FIXUP_CS35L41_I2C_2. Since these entries cover the same machine, the duplicate is redundant and should be merged. The correct fixup to keep is ALC285_FIXUP_ASUS_I2C_SPEAKER2_TO_DAC1, as it additionally addresses the issue where the volume cannot be adjusted properly. Merge the two entries into a single SND_PCI_QUIRK entry with the appropriate fixup. Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Link: https://patch.msgid.link/20260806054505.43717-2-zhangheng@kylinos.cn Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-06ALSA: hda/realtek: Merge duplicate quirk entries for ASUS Strix G615Zhang Heng1-4/+2
The ASUS Strix G615 series (subsystem IDs 0x1043:0x1204 and 0x1043:0x1214) currently have duplicate quirk entries: one using HDA_CODEC_QUIRK with ALC287_FIXUP_TAS2781_I2C, and another using SND_PCI_QUIRK with ALC287_FIXUP_TXNW2781_I2C_ASUS. Since these entries cover the same machines, the duplicate entries are redundant and may cause confusion. The correct fixup for these models should be ALC287_FIXUP_TXNW2781_I2C_ASUS, as the TAS2781 fixup was likely a mistake. Merge the two entries into a single SND_PCI_QUIRK entry with the correct fixup, removing the redundant HDA_CODEC_QUIRK entries. Signed-off-by: Zhang Heng <zhangheng@kylinos.cn> Link: https://patch.msgid.link/20260806054505.43717-1-zhangheng@kylinos.cn Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-06ALSA: hda/realtek: Enable mute LED on HP Laptop 15-dy0xxxCarl Quist1-0/+1
The mute LED on the HP Laptop 15-dy0xxx (PCI SSID 103c:864f, Realtek ALC236) does not work, because the machine has no entry in the quirk table. No fixup is applied, so no mute LED classdev is registered and nothing ever drives the LED. The LED is controlled by COEF index 0x07, bit 0. This was verified on the hardware with hda-verb: setting the bit lights the mute LED and clearing it turns the LED off. hda-verb /dev/snd/hwC0D0 0x20 SET_COEF_INDEX 0x07 hda-verb /dev/snd/hwC0D0 0x20 SET_PROC_COEF 0x1 # LED on hda-verb /dev/snd/hwC0D0 0x20 SET_PROC_COEF 0x200 # LED off That is exactly what ALC236_FIXUP_HP_MUTE_LED_COEFBIT2 configures, and the closely related HP Laptop 15-dw0xxx (103c:85f0) already uses it. Bit 9 (0x200) is set by default on this board and is preserved by the fixup's read-modify-write. Tested on an HP Laptop 15-dy0xxx (SKU 7FU54UA#ABA, board 864F, BIOS F.40). Signed-off-by: Carl Quist <equalizerjr@gmail.com> Link: https://lore.kernel.org/CAOtcGaxXndKxTK5MVSEcmF-LUy+V51K7fhE=qvLA+VvW5ZyCNA@mail.gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-06ALSA: hda/realtek: Limit mic boost on Positivo N15RPE-SEdson Juliano Drosdeck1-0/+1
The internal mic boost on the Positivo N15RPE-S is too high. Fix this by applying the ALC269_FIXUP_LIMIT_INT_MIC_BOOST fixup to the machine to limit the gain. Signed-off-by: Edson Juliano Drosdeck <edson.drosdeck@gmail.com> Link: https://patch.msgid.link/20260805154518.19093-1-edson.drosdeck@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-05ALSA: hda/realtek: enable AW88399 on Lenovo Legion R9000P ADR10HMarco Giunta2-0/+4
Add codec SSID entries for the Lenovo Legion R9000P ADR10H (83RV), 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 (0x35 before 0x34). Register dumps show the same BSTS behavior as the other Legions. Both the channel swap and BSTS bypass quirks apply. Codec SSIDs (Lenovo vendor ID 0x17aa): * 0x3936: Legion R9000P ADR10H (AMD) * 0x3937: Legion R9000P ADR10H (AMD) Signed-off-by: Marco Giunta <marco_giunta@outlook.it> Link: https://patch.msgid.link/DS7PR19MB7724EE8DED946545C55717C1FCD32@DS7PR19MB7724.namprd19.prod.outlook.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-05ALSA: hda/realtek: Add mute LED support for HP Pavilion 15-eh2xxxLuca Castaldini1-0/+1
Add the subsystem ID 103c:8a0e to the ALC287 HP GPIO LED quirk table so the mute LED follows the speaker mute state. Tested on HP Pavilion Laptop 15-eh2xxx with ALC287 codec. The mute LED now follows the speaker mute state. Signed-off-by: Luca Castaldini <luca.castaldini96@gmail.com> Link: https://patch.msgid.link/20260805122907.52302-1-luca.castaldini96@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-05ALSA: hda/realtek: Limit Legion AW88399 playback to stereoAaron Ma1-0/+4
The Legion AW88399 speaker routing sends a stereo FL/FR stream to both speaker pairs. A four-channel stream leaves the front pair silent, so advertising four channels exposes an unusable playback mode. Limit the analogue PCM and the multi-output runtime constraint to two channels for the affected Legion codec SSIDs. This exposes the usable stereo configuration and rejects four-channel playback. Signed-off-by: Aaron Ma <mapengyu@gmail.com> Reviewed-by: Marco Giunta <marco_giunta@outlook.it> Tested-by: Marco Giunta <marco_giunta@outlook.it> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260804185325.22861-2-mapengyu@gmail.com
2026-08-05ALSA: hda/realtek: Fix headset mic on Legion AW88399 laptopsAaron Ma1-6/+4
The ALC287 codec on Lenovo Legion AW88399 laptops does not mark the combo-jack microphone as a headset mic, so the HDA parser treats it as a plain microphone. The headset microphone route and inline headset buttons are therefore unavailable. Enable Realtek headset mode without treating the jack as a headphone microphone, and enable headset jack button handling. Suppress automatic microphone selection so the internal microphone remains selectable while a headset is connected. The existing 0x1d override is redundant: firmware already marks that pin unused, and the override triggers a "SKU not ready 0x411111f0" warning. Drop it. Signed-off-by: Aaron Ma <mapengyu@gmail.com> Reviewed-by: Marco Giunta <marco_giunta@outlook.it> Tested-by: Marco Giunta <marco_giunta@outlook.it> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260804185325.22861-1-mapengyu@gmail.com
2026-08-04ASoC: tas2781: add capture_profile_id field and update the tuning_switch functionShenghao Ding2-11/+11
Currently, the TAS2781 SmartAMP driver uses the same profile ID for both playback and capture scenarios (e.g., PDM microphone recording or IV data capture). This makes it impossible to apply different DSP configurations for capture and playback, which is required in real-world tuning and production use cases. With these changes, capture and playback paths now use their own DSP profiles, improving tuning flexibility and avoiding unintended profile conflicts between SmartAMP capture and playback scenarios. Signed-off-by: Shenghao Ding <shenghao-ding@ti.com> Link: https://patch.msgid.link/20260804111433.1148-1-shenghao-ding@ti.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-08-04ALSA: hda/realtek: ALC269 fixup for Yoga/Legion Mic noiseJackie Dong1-2/+11
Lenovo Yoga Pro 7 15ASH11 and Legion 7 15ASH11 use the same audio subsystem implementation and support only analog microphone. Limit Amp-In Vals to 0x00 and 0x01 for the internal microphone to reduce recording noise. Values 0x02 and 0x03 introduce significant noise on them. Fixes: 17065203e1bc ("ALSA: hda/realtek:ALC269 fixup for Yoga Pro 7 15ASH11 mic mute LED") Signed-off-by: Jackie Dong <xy-jackie@139.com> Link: https://patch.msgid.link/20260804123637.21001-1-xy-jackie@139.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-04ALSA: hda: cs35l41: Use auto-cleanup for put_device()Takashi Iwai1-7/+3
A temporary refcount management of a struct device can be done gracefully with __clean(put_device) for avoiding potential leaks. No functional change but just a code cleanup. Cc: patches@opensource.cirrus.com Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260803140100.919071-3-tiwai@suse.de
2026-08-04ALSA: hda: tas2781: Use auto-cleanup for put_device()Takashi Iwai2-9/+6
A temporary refcount management of a struct device can be done gracefully with __clean(put_device) for avoiding potential leaks. No functional change but just a code cleanup. Cc: Shenghao Ding <shenghao-ding@ti.com> Cc: Kevin Lu <kevin-lu@ti.com> Cc: Baojun Xu <baojun.xu@ti.com> Cc: Sen Wang <sen@ti.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260803140100.919071-2-tiwai@suse.de
2026-08-04ALSA: hda: aw88399: Use auto-cleanup for put_device()Takashi Iwai1-3/+2
A temporary refcount management of a struct device can be done gracefully with __clean(put_device) for avoiding potential leaks. No functional change but just a code cleanup. Cc: Marco Giunta <marco_giunta@outlook.it> Reviewed-by: Marco Giunta <marco_giunta@outlook.it> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260803140100.919071-1-tiwai@suse.de
2026-08-03ALSA: hda/realtek: Remove ALC285_FIXUP_ASUS_GA605K_I2C_SPEAKER2_TO_DAC1Eric Naim1-6/+1
ALC285_FIXUP_ASUS_GA605K_I2C_SPEAKER2_TO_DAC1 and ALC285_FIXUP_SPEAKER2_TO_DAC1 are exactly the same. Remove the former to avoid redundancy. Signed-off-by: Eric Naim <dnaim@cachyos.org> Link: https://patch.msgid.link/20260803091102.107570-10-dnaim@cachyos.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-03ALSA: hda/realtek: Remove ALC294_FIXUP_ASUS_ALLY_SPEAKEREric Naim1-6/+1
ALC294_FIXUP_ASUS_ALLY_SPEAKER is exactly the same as ALC285_FIXUP_SPEAKER2_TO_DAC1. Remove the former to avoid redundancy. Signed-off-by: Eric Naim <dnaim@cachyos.org> Link: https://patch.msgid.link/20260803091102.107570-9-dnaim@cachyos.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-03ALSA: hda/realtek: Unchain ALC269_FIXUP_THINKPAD_ACPI from ALC285_FIXUP_SPEAKER2_TO_DAC1Eric Naim1-2/+0
Now that ALC285_FIXUP_YOGA_SPEAKER2_TO_DAC1 exists, ALC285_FIXUP_SPEAKER2_TO_DAC1 can be unchained from ALC269_FIXUP_THINKPAD_ACPI. Signed-off-by: Eric Naim <dnaim@cachyos.org> Link: https://patch.msgid.link/20260803091102.107570-8-dnaim@cachyos.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-03ALSA: hda/realtek: Add ALC285_FIXUP_YOGA_SPEAKER2_TO_DAC1Eric Naim1-1/+8
In preparation for unchaining ALC269_FIXUP_THINKPAD_ACPI from ALC285_FIXUP_SPEAKER2_TO_DAC1, add ALC285_FIXUP_YOGA_SPEAKER2_TO_DAC1 as a duplicate of ALC285_FIXUP_SPEAKER2_TO_DAC1. Signed-off-by: Eric Naim <dnaim@cachyos.org> Link: https://patch.msgid.link/20260803091102.107570-7-dnaim@cachyos.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-03ALSA: hda/realtek: Remove ALC269_FIXUP_STARLABS_LIMIT_INT_MIC_BOOSTEric Naim1-7/+2
Now that ALC269_FIXUP_LIMIT_INT_MIC_BOOST is no longer chained to ALC269_FIXUP_THINKPAD_ACPI, ALC269_FIXUP_STARLABS_LIMIT_INT_MIC_BOOST and ALC269_FIXUP_LIMIT_INT_MIC_BOOST are both identical. Remove the former and replace it with the latter to avoid redundancy. Signed-off-by: Eric Naim <dnaim@cachyos.org> Link: https://patch.msgid.link/20260803091102.107570-6-dnaim@cachyos.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-03ALSA: hda/realtek: Remove ALC233_FIXUP_INTEL_NUC8_BOOSTEric Naim1-6/+1
Now that ALC269_FIXUP_LIMIT_INT_MIC_BOOST is no longer chained to ALC269_FIXUP_THINKPAD_ACPI, ALC233_FIXUP_INTEL_NUC8_BOOST and ALC269_FIXUP_LIMIT_INT_MIC_BOOST are both identical. Remove the former and replace it with the latter to avoid redundancy. Signed-off-by: Eric Naim <dnaim@cachyos.org> Link: https://patch.msgid.link/20260803091102.107570-5-dnaim@cachyos.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-03ALSA: hda/realtek: Unchain ALC269_FIXUP_THINKPAD_ACPI from ALC269_FIXUP_LIMIT_INT_MIC_BOOSTEric Naim1-3/+1
After creating ALC269_FIXUP_THINKPAD_LIMIT_INT_MIC_BOOST, ALC269_FIXUP_LIMIT_INT_MIC_BOOST no longer needs to be chained to ALC269_FIXUP_THINKPAD_ACPI and can be a generic quirk usable by all devices. Signed-off-by: Eric Naim <dnaim@cachyos.org> Link: https://patch.msgid.link/20260803091102.107570-4-dnaim@cachyos.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-03ALSA: hda/realtek: Add ALC269_FIXUP_THINKPAD_LIMIT_INT_MIC_BOOST quirkEric Naim1-5/+12
Add ALC269_FIXUP_THINKPAD_LIMIT_INT_MIC_BOOST, identical to ALC269_FIXUP_LIMIT_INT_MIC_BOOST. This prepares for removing the chain from ALC269_FIXUP_LIMIT_INT_MIC_BOOST. Signed-off-by: Eric Naim <dnaim@cachyos.org> Link: https://patch.msgid.link/20260803091102.107570-3-dnaim@cachyos.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-03ALSA: hda/realtek: Remove ALC294_FIXUP_CS35L41_I2C_2Eric Naim1-7/+2
ALC294_FIXUP_CS35L41_I2C_2 is exactly the same as ALC287_FIXUP_CS35L41_I2C_2, so remove the former and move existing devices that previously used ALC294_FIXUP_CS35L41_I2C_2 to ALC287_FIXUP_CS35L41_I2C_2. Signed-off-by: Eric Naim <dnaim@cachyos.org> Link: https://patch.msgid.link/20260803091102.107570-2-dnaim@cachyos.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-03Merge branch 'for-linus' into for-nextTakashi Iwai1-1/+2
Pull 7.2 devel branch for put_device auto-clean fixes. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-03ALSA: hda/realtek: Enable jack detection on Minisforum AI X1 ProJeremie Pardou1-0/+16
The firmware of the Minisforum AI X1 Pro 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. Clear only the Reset HP JD bit during codec initialization. Preserve the remaining coefficient bits. This makes pin sense and the generic HDA auto-mute logic work normally. Apply the fixup at INIT to also reapply the setting after codec reinitialization and resume. Tested on a Minisforum AI X1 Pro with codec 0x10ec0245 and subsystem 0x1f4cb020 using Ubuntu 26.04 kernel 7.0.0-28-generic. Signed-off-by: Jeremie Pardou <jrmi@jeremiez.net> Link: https://patch.msgid.link/20260802194832.49393-1-jrmi@jeremiez.net Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-03ALSA: hda/realtek: Add quirk for LG gram 16 (16Z90TR)Aaron Fan1-0/+1
The LG gram 16 (16Z90TR, SSID 1854:0554) drives its internal speakers through Samsung-style smart amplifiers on an ALC298. Nothing initialises them, so the internal speakers are silent after a cold boot, while headphones, HDMI and the microphones work. A warm reset leaves the amps initialised, which masks the problem: rebooting gives working speakers, a cold boot does not, with a bit-identical kernel log in both cases. Dumping the codec's processing coefficients in the two states shows the difference confined to COEF 0x22/0x23/0x25/0x26. COEF 0x22, the amp select register written by alc298_samsung_v2_init_amps(), reads 0x39 when the speakers work and 0x00 after a cold boot. 0x39 is the second entry of alc298_samsung_v2_amp_desc_tbl[], so two amps are in use. Verified with hda_model=alc298-samsung-amp-v2-2-amps, which selects the same fixup: the internal speakers work from a cold boot and COEF 0x22 reads 0x39. Signed-off-by: Aaron Fan <aaronfan404@gmail.com> Link: https://patch.msgid.link/20260802055818.7389-1-aaronfan404@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-03ALSA: hda/tas2781: Add new quirk for HP new project (Messi)Baojun Xu1-0/+1
Add new vendor_id and subsystem_id in quirk for HP new project (Messi). Signed-off-by: Baojun Xu <baojun.xu@ti.com> Link: https://patch.msgid.link/20260801022831.1241-1-baojun.xu@ti.com Signed-off-by: Takashi Iwai <tiwai@suse.de>