From nobody Sat Feb 7 07:10:34 2026 Received: from mail-qv1-f68.google.com (mail-qv1-f68.google.com [209.85.219.68]) (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 8327F2E0926 for ; Sun, 1 Feb 2026 23:12:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.68 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769987548; cv=none; b=XNn7bkOG0FTitobwpNYSnryY7BtyeHlJbInUeCIpbtOP96r73NhXsaw4K37ZrqrR3uYIXyxjP5cREjcj4ZaQPkWqBZkcov40a+nooXUEh+vmGG2VYASq1aImQStLwGZjV4n5QkNPyUCS78TRC4BEswlMO6uaSKH3ZlkvrqdzY4k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769987548; c=relaxed/simple; bh=J/PZ6n4AFGAeQlIz7TJ3GSyErMvg+Bim/uzLiGxdV8k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=owDDq9gf+KnFurZUuja432om3b6sz02zd4AXMHw4tAcitnmzdg7NafqAKG20UlVwIMrMDd6DNmMwqKc2+6U6KwcKWx5QU1eOAd33iMMipZrJBhXJ30j8C9QfMWKbbctiOfQk76IyNmo07qUSv53qhU/+0FyU1kHpzzDLlIGseaA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=dionne-riel.com; spf=pass smtp.mailfrom=dionne-riel.com; dkim=pass (2048-bit key) header.d=dionne-riel-com.20230601.gappssmtp.com header.i=@dionne-riel-com.20230601.gappssmtp.com header.b=qfl+jDBl; arc=none smtp.client-ip=209.85.219.68 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=dionne-riel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=dionne-riel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=dionne-riel-com.20230601.gappssmtp.com header.i=@dionne-riel-com.20230601.gappssmtp.com header.b="qfl+jDBl" Received: by mail-qv1-f68.google.com with SMTP id 6a1803df08f44-894770e34afso52063606d6.0 for ; Sun, 01 Feb 2026 15:12:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dionne-riel-com.20230601.gappssmtp.com; s=20230601; t=1769987546; x=1770592346; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KBLCB+78gX0424Xcl43Bs5LgpFepPsrAgehMW3JCkOM=; b=qfl+jDBly9fo6LmNbjuY3EETpp2NejMa0YgEhjv8foKlRvC8fk+6LpnWmwiJaIrSuA sqZqyuL2BxVVP5YiwguWwr2m/Oc0hE/C1XRpS1zE0GjbRoAr5hRx98klAZ5EkX38J7WF wQh/fVd5gOojdh9MyFEHuyzB9F9xbgaNoRUqNiUwT0bhvuBgKoIu75zdwEp89t7CyZ6z QZqknM0QIwNHDE3ZMJzVEwL4L5dJQQcZvCntwc9vTCgwq52q9fK7qqWIF9OfbrM6Pm9V dh2VIHKhC5Rmj5LH9p6AyYe2DVGxxTslAlz+gUk9vhHLIA91Ua5dgd7qu6PvvOZDq/2k 3vWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769987546; x=1770592346; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KBLCB+78gX0424Xcl43Bs5LgpFepPsrAgehMW3JCkOM=; b=qM0L+MPu+XnlJh8kc0dpRvup4iV6CU4X0O97P9fe+tzabqNJOaDfWNAFuFx50qEfNH Or7p/Bv2NizLwHlSaXfD6fEZjopN0hzjt7TV+9l8b9/Abl9TXpAS1NxcMEvgJ794zb0T iTfgxaBMfm+P0D0HTU4dBNy9VGf74jWaS6UscWZPZ8UxDhHXOfNMMMZU/yCs/C+K8hET d39l7fxJc7E8vMZY25nGOulLyyU2A9xl5fddEdwz80HGQQxKWEgMNpKv2Bg4I3APMhYx wcN9j4UyxjYekiAYE4Uoi1j3ZyL2IexKUU6SDl8o0zjMLWJcwFeEmAFcow86fHn7TcON tjVg== X-Forwarded-Encrypted: i=1; AJvYcCUsRg+mRZXSoDTA5R3hYso8hX/1+DnGfFBs3z/RVG9r681ObsvApULlDDptsIVU4w8kYtUXX19oiFGMVyg=@vger.kernel.org X-Gm-Message-State: AOJu0Yz3Me9hFNxQc6V8wWNwYsLPpQ4frTVzsljbhfTGHAXqSielWrGK tKYVbTK7PmUUliZxaBu1hooJMldFvN9fT4MGbix16BJhUamInrgPEwKunQSZmLCkjQ== X-Gm-Gg: AZuq6aKvIYW0D2hz4+LecOqwLarw66s6Oj+YqfrU3UwwLKXyAd02ci5R9xdnQAVZ6X7 zNHykZTog7hfzLYnXC76ENwG0TM76jvWzqRvvm6dgz1adoOPm0PqvTLMQOiFjK6D1w9/99NTpOn knZ+x9Do9da+eCzNY+4UsyOpwSZvelX8S/C+JpvFQ/adLiRBTg2lCo1zWGFgKOHqo3UNqQ2WuJ+ y4MJIOlvKVqOK8RA+62tMYXYMYurQKKxjSAcjxjm25CceffeZOyOD76w0NL37GFK7yo1hPP8Ljp Jn3XCAgFmcHKV+VtFTJ5Lqul5inx0o/GaF6glLKb7siHNMfPR1BtYLIcNjEv1oI4uQNIE859Ja8 6VTYLk6RIptNPk5QuSOxBUwcF95IlBxbTqd8rHHglzJFd7SlS99sUPt+QJMpP+n8o0zecZvcKSi uv827xTEMd/W8Ar6STUGdQGJHcSBaMstOJIM2F+z8+YjfLALtXZsC47j/jDsWpWz0CN7KYYwg6g lPW X-Received: by 2002:a05:6214:519c:b0:888:4938:49e5 with SMTP id 6a1803df08f44-894ea0dba46mr131021566d6.69.1769987546461; Sun, 01 Feb 2026 15:12:26 -0800 (PST) Received: from frankgrimes.elk-nominal.ts.net (135-23-195-66.cpe.pppoe.ca. [135.23.195.66]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-894d3740d73sm102537246d6.27.2026.02.01.15.12.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Feb 2026 15:12:25 -0800 (PST) From: Samuel Dionne-Riel To: Jaroslav Kysela , Takashi Iwai Cc: Samuel Dionne-Riel , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/2] ALSA: hda/realtek: Add generic quirk for Bass speaker DAC avoidance Date: Sun, 1 Feb 2026 18:12:14 -0500 Message-ID: <20260201231216.1655154-2-samuel@dionne-riel.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260201231216.1655154-1-samuel@dionne-riel.com> References: <20260201231216.1655154-1-samuel@dionne-riel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This change is for the follow-up commit, where the match on the specific device (Minisforum V3 SE) is added. This pattern (re-routing the bass speakers off of a DAC without volume control) seems common enough that having a "model" to match against and quickly use to verify may be worthwhile. The alc285_fixup_thinkpad_x1_gen7 routing was selected, amongst the different options, as it should allow tuning the ratio between both speaker set. The routing was verified using `hda-verb`, and picking either 0x00 or 0x01. Either routin made the volume of the bass speakers controllable. hda-verb /dev/snd/hwC1D0 0x17 SET_CONNECT_SEL 0x01 Signed-off-by: Samuel Dionne-Riel --- It may be worthwhile to clean-up behind and make the other fixups re-routing `0x17` from `0x06` to either `0x02` or `0x03` also use the same routing. It's a bit confusing, determining which routing to choose when adding one for a device. - alc289_fixup_asus_ga401 - alc295_fixup_disable_dac3 Might need to be checked (and re-used within a chain): - alc287_fixup_yoga9_14iap7_bass_spk_pin - alc245_fixup_hp_spectre_x360_eu0xxx - alc245_fixup_hp_spectre_x360_16_aa0xxx I might be missing some, if for example they are handled through pin fixups, or other fixup mechanisms. I don't have the experience needed to know for sure if the cleanup would be appropriate. So please excuse the lack of follow-up on that. Signed-off-by: Samuel Dionne-Riel --- sound/hda/codecs/realtek/alc269.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/a= lc269.c index cafa48b5aceb5..5d38e371a6836 100644 --- a/sound/hda/codecs/realtek/alc269.c +++ b/sound/hda/codecs/realtek/alc269.c @@ -3805,6 +3805,7 @@ enum { ALC245_FIXUP_HP_TAS2781_I2C_MUTE_LED, ALC288_FIXUP_SURFACE_SWAP_DACS, ALC236_FIXUP_HP_MUTE_LED_MICMUTE_GPIO, + ALC245_FIXUP_BASS_HP_DAC, }; =20 /* A special fixup for Lenovo C940 and Yoga Duet 7; @@ -6295,6 +6296,11 @@ static const struct hda_fixup alc269_fixups[] =3D { .type =3D HDA_FIXUP_FUNC, .v.func =3D alc288_fixup_surface_swap_dacs, }, + [ALC245_FIXUP_BASS_HP_DAC] =3D { + .type =3D HDA_FIXUP_FUNC, + /* Borrow the DAC routing selected for those Thinkpads */ + .v.func =3D alc285_fixup_thinkpad_x1_gen7, + }, }; =20 static const struct hda_quirk alc269_fixup_tbl[] =3D { @@ -7558,6 +7564,7 @@ static const struct hda_model_fixup alc269_fixup_mode= ls[] =3D { {.id =3D ALC285_FIXUP_HP_GPIO_AMP_INIT, .name =3D "alc285-hp-amp-init"}, {.id =3D ALC236_FIXUP_LENOVO_INV_DMIC, .name =3D "alc236-fixup-lenovo-inv= -mic"}, {.id =3D ALC2XX_FIXUP_HEADSET_MIC, .name =3D "alc2xx-fixup-headset-mic"}, + {.id =3D ALC245_FIXUP_BASS_HP_DAC, .name =3D "alc245-fixup-bass-hp-dac"}, {} }; #define ALC225_STANDARD_PINS \ --=20 2.51.0