From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 958694582FE for ; Fri, 21 Aug 2026 10:25:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.48 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787307938; cv=none; b=HPd6cHyaEKmFN07AiDa1VyFxIzIVSFFjkHhhMd7vqywaQYCFhWIt7BBrrSD45ZyEqGVHImOUs5j35L/o7DyL8cfBX+NQRr7XN47tuGXfZvIaWhD77/ehH9PY0Hl3vLB6CM5c0kOYi62kk2HGrniaQok136rDLKB0SfQER40UaQA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787307938; c=relaxed/simple; bh=9+nNgrIbtiaXxwQEJECnJgBnQln9hyRAZut5Q+duTm0=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=HmVcBnBzRYrygq4tsJTOXzg6sbF5nevfCjhQ5umDb1O0qlESsucmiy7141BhLpLj9cJLHu940nYKkU8rLBjAaOWX20AeIpNHSQwR0bwj5pWA+Zydl9ZMoEHA2aV5DnuBA5JsSDgTKL49lFq5QD0utdfv+T6rp0NwPmBoNBA/voE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=OqxpGv0Q; arc=none smtp.client-ip=209.85.208.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="OqxpGv0Q" Received: by mail-ed1-f48.google.com with SMTP id 4fb4d7f45d1cf-6a36982a875so1443649a12.0 for ; Fri, 21 Aug 2026 03:25:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787307920; x=1787912720; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=VnOEYXmOukDrbPX5qoi601Gks/SapggbUlIYE99i1mg=; b=OqxpGv0QxImviiGLr7byloL2rh7HFEFsRc2Z/YAczYSpHfk/Tu45qYl5pmC42ZUg29 oeqr7pZydE6uNmxYRSVW2UYdPSoL+P8zZbS7T0hPaDfnx3q3fPC6JMWo1N2BF1qTG+ON 1RWEiiCM6r7jES/2y8xCBb8H5S8tOxpBIS1koG2XFTiLjIBemP6l+dYIKO5RagYxsORT J7RzgQSC1fcC/tpYQ9q0E72UPzBOy0E8mHVsRi1qdYmNdai/Jitvw6tbdfI76hqDPmNV h1f5vudJdhVsl6WWasZuSs22yrH5RSh6LwAmd0xSegDLcHMGoICKa+sg5Ac5xcW4HiNw izag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787307920; x=1787912720; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=VnOEYXmOukDrbPX5qoi601Gks/SapggbUlIYE99i1mg=; b=V4Ftp5L4vq8omw9Pai6T6V/M/xW6J7vniT7zTdDdzOKexLLiJYx3gqiFbHQAa5LjW0 lsnnTSEsQ91qFxhy4h7M1Fq2Q+KwZV9P1mcQp0ZHGyFS18PKzyPdfPZIzHVwNCQWr5Fh JjGnApCAZvVwFa9HIImdzUoWhiNArZO2JGm69r1imm52Vhw77nyU5ICdzuxdP2/u09LI 43/PS5kt3GaeFox81G4uw6Z4Ze5C7U0B8Zw/YDVVqdEFal1+xS+Qbo7MxoT1VOb8AkCr 6v+zy8ZZniXpjGJr7ldT5nNdroXYQZDsCrf3pdQSNa3AnEWgste7+NeRuJ+ccuCAyCuT y1Kg== X-Forwarded-Encrypted: i=1; AHgh+RoPILYvWDs4RIkkI6l8FCCIxeKgG/IhLqXs24u8UyVLRmjQwwmEsITiFbterBpS35jWlnpxocABKdFTBpc=@vger.kernel.org X-Gm-Message-State: AFuF++nxGI/iOx67L1T5oCqifvDLf33wAPB+or4Mpkf6f3rYOTnzJEpD 12J7djA6CoHGfzDiAW+2GNCLqIT6H6+YDV/qutTXFmWO1/HIk+vwdfQr X-Gm-Gg: AR+sD131WFszCv/Bx26w/KxzqxR3kAgXHOpgCG1GM499rVugL86rfJtmPFm6nbzC97Y /OMe00qjcfolH6qkcDefbQ3d6oVPM34tHUnhpnm7gKWyAM2UHg9fHjuIa3Ac5KvaqM77K4dHMf8 FnFOIoSeYZ4rn/dDTibHH7wvtpKcwt2MBbNN3p90uQED3JnIKkVpWHewQxohuDn6agymtM5UP9R NY1x0GwpbphYF+TosopbVso0Syf7ZL7b+Fhthu3T8zSZ2SZpnYaLo1VcBMosXUlO0iDd0iC1LPB lVWiFubY429Edu6gVa4mQVnanlEM4vRLrra0UdOqnja2FA/rDNewzsmfaHCOXATqPqCn2YU8h3v FCDpx/gRzSObQC7rgn/R9NWYkETvJ1Na5qWjOYW349yyuK74G3PgDOzImr4CiXtf2FLZjWRMbV4 wpE21QYFoFT4tBj2Zw8RNoa5teGIcVyDEooQYAm6t7Liqun4l2e83Y4qIEsmo8i7z4zKyVQ3ZJk NLmfNxdNazMKBa3JLsxyDm11JDJvo+sFLeMGDGOHwIa69OO5UfQWwjNs9rt9h/8 X-Received: by 2002:a17:907:e1c3:20b0:c20:ef18:ddcc with SMTP id a640c23a62f3a-c246a69da16mr421835666b.11.1787307919989; Fri, 21 Aug 2026 03:25:19 -0700 (PDT) Received: from pop-os.. (05BBC51F.dsl.pool.telekom.hu. [5.187.197.31]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c24591e044dsm447437666b.51.2026.08.21.03.25.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Aug 2026 03:25:19 -0700 (PDT) From: Csaba Budai To: Jaroslav Kysela , Takashi Iwai Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, Csaba Budai Subject: [PATCH] ALSA: hda/realtek: Fix ALC700 audio on Intel Hades Canyon Date: Fri, 21 Aug 2026 12:25:14 +0200 Message-ID: <20260821102514.11194-1-ilyr73@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit On Intel Hades Canyon systems with an ALC700 codec, analog audio can become unusable after rebooting from Windows into Linux. The affected system uses codec subsystem ID 8086:2073. In the broken state, Realtek coefficient 0x1b has value 0x4a4b. Setting bit 0x0400 changes it to 0x4e4b and immediately restores normal analog playback. The BIOS also sets this bit after disabling and re-enabling onboard audio, while Windows may leave it cleared. Linux currently does not restore it during codec initialization. Add a machine-specific fixup for Intel Hades Canyon which sets only bit 0x0400 of coefficient 0x1b during HDA_FIXUP_ACT_INIT. The fix has been verified across Windows -> Linux reboots on an Intel NUC8i7HNB with an ALC700 codec. Signed-off-by: Csaba Budai --- sound/hda/codecs/realtek/alc269.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c index cae327e1d..2fd11b963 100644 --- a/sound/hda/codecs/realtek/alc269.c +++ b/sound/hda/codecs/realtek/alc269.c @@ -4089,6 +4089,7 @@ enum { ALC225_FIXUP_DELL_WYSE_MIC_NO_PRESENCE, ALC225_FIXUP_S3_POP_NOISE, ALC700_FIXUP_INTEL_REFERENCE, + ALC700_FIXUP_INTEL_HADES_CANYON, ALC274_FIXUP_DELL_BIND_DACS, ALC274_FIXUP_DELL_AIO_LINEOUT_VERB, ALC298_FIXUP_TPT470_DOCK_FIX, @@ -4333,6 +4334,19 @@ static void alc287_fixup_lenovo_yoga_book_9i(struct hda_codec *codec, __snd_hda_apply_fixup(codec, id, action, 0); } +static void alc700_fixup_intel_hades_canyon(struct hda_codec *codec, + const struct hda_fixup *fix, + int action) +{ + /* + * Windows may leave coef 0x1b bit 0x0400 cleared, causing broken + * analog playback after rebooting into Linux. Restore the bit + * during codec initialization. + */ + if (action == HDA_FIXUP_ACT_INIT) + alc_update_coef_idx(codec, 0x1b, 0x0400, 0x0400); +} + static const struct hda_fixup alc269_fixups[] = { [ALC298_FIXUP_RAZER_BLADE16_2025_PINS] = { .type = HDA_FIXUP_PINS, @@ -5411,6 +5425,10 @@ static const struct hda_fixup alc269_fixups[] = { {} } }, + [ALC700_FIXUP_INTEL_HADES_CANYON] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc700_fixup_intel_hades_canyon, + }, [ALC274_FIXUP_DELL_BIND_DACS] = { .type = HDA_FIXUP_FUNC, .v.func = alc274_fixup_bind_dacs, @@ -8230,6 +8248,8 @@ static const struct hda_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x2782, 0xa128, "Positivo N15RPE-S", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x2782, 0xa212, "Lunnen Ground 14", ALC269VC_FIXUP_LUNNEN_GROUND_14), SND_PCI_QUIRK(0x7017, 0x2014, "Star Labs StarFighter", ALC233_FIXUP_STARLABS_STARFIGHTER), + SND_PCI_QUIRK(0x8086, 0x2073, "Intel NUC 8 Hades Canyon", + ALC700_FIXUP_INTEL_HADES_CANYON), SND_PCI_QUIRK(0x8086, 0x2074, "Intel NUC 8", ALC233_FIXUP_INTEL_NUC8_DMIC), SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NUC8_RUGGED), SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", ALC256_FIXUP_INTEL_NUC10), -- 2.43.0