From: Takashi Iwai <tiwai@suse.de>
To: Samuel Dionne-Riel <samuel@dionne-riel.com>
Cc: Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] ALSA: hda/realtek: Add quirk for Minisforum V3 SE
Date: Mon, 02 Feb 2026 11:00:01 +0100 [thread overview]
Message-ID: <87o6m71n4u.wl-tiwai@suse.de> (raw)
In-Reply-To: <20260201231216.1655154-3-samuel@dionne-riel.com>
On Mon, 02 Feb 2026 00:12:15 +0100,
Samuel Dionne-Riel wrote:
>
> This likely will apply for the Minisforum V3, though there isn't a lot
> of information to confirm whether or not the identifiers are the same.
>
> The Minisforum V3 is likely to benefit from the same fix, as it exhibits
> similar symptoms. Though users reportedly work around it by forcing the
> software mixer.
>
> This was verified on the Minisforum V3 SE, and the root cause (the bass
> speakers routing) was found out by using pink noise, and playing with
> the mixers.
>
> Signed-off-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
>
> ---
>
> For posterity, and hoping it helps someone else in the future, here's
> the breadcrumbs I followed to get to this fix.
>
> (Stopping other software, like Wireplumber, is needed here.)
>
> The following command was used for the pink noise:
>
> speaker-test -Dhw:1,0 -c2
>
> By using `alsamixer -c1`, muting either of the "Speaker" or "Bass
> Speaker" channels showed that the speakers were indeed separate. On the
> side of the device, there are two speaker grills next to each other, and
> by moving an obstacle in front clearly shows the channels are
> independent.
>
> This differs from the “well-known” wisdom, where it is assumed the
> speaker can't be controlled with the mixer. To be fair, software like
> Wireplumber will mute the Bass Speaker in sync with the main Speaker,
> which makes it seem like there is no control at all.
>
> Knowing this fact, finding plausible fixes in the sound stack pointed at
> the kernel driver being responsible for tying controls to the outputs.
> And after fighting with some of the tooling, finding out that the
> necessary knowledge is found in /proc/asound/card1/codec#0 in a quite
> usable format unblocked me.
>
> As a final hint, selecting an output using `hda-verb` uses the following
> form:
>
> hda-verb /dev/snd/hwC1D0 $NODE SET_CONNECT_SEL $INDEX
>
> Where `$NODE` is the node identifier found under
> `/proc/asound/card1/codec#0`, and `$INDEX` is the index of the desired
> DAC connection under `Connection:` in the same `/proc` file.
>
> For my particular system, the `$NODE` is `0x17`, and the DAC can be
> either `0` or `1`, as `0x06` is the DAC without volume control, and
> `0x08` is an input.
>
> ~ $ cat /proc/asound/card1/codec#0 | grep -A15 '^Node 0x17'
> Node 0x17 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
> Control: name="Bass Speaker Playback Switch", index=0, device=0
> ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> Amp-Out vals: [0x80 0x80]
> Pincap 0x0000001c: OUT HP Detect
> Pin Default 0x90170120: [Fixed] Speaker at Int N/A
> Conn = Analog, Color = Unknown
> DefAssociation = 0x2, Sequence = 0x0
> Misc = NO_PRESENCE
> Pin-ctls: 0x40: OUT
> Unsolicited: tag=00, enabled=0
> Power states: D0 D1 D2 D3 EPSS
> Power: setting=D0, actual=D0
> Connection: 4
> 0x02 0x03 0x06* 0x08
>
> ~ $ cat /proc/asound/card1/codec#0 | grep '^Node 0x0[2368]'
> Node 0x02 [Audio Output] wcaps 0x41d: Stereo Amp-Out
> Node 0x03 [Audio Output] wcaps 0x41d: Stereo Amp-Out
> Node 0x06 [Audio Output] wcaps 0x411: Stereo
> Node 0x08 [Audio Input] wcaps 0x10051b: Stereo Amp-In
>
> Signed-off-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
> ---
> sound/hda/codecs/realtek/alc269.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
> index 5d38e371a6836..bcac3e9f106ca 100644
> --- a/sound/hda/codecs/realtek/alc269.c
> +++ b/sound/hda/codecs/realtek/alc269.c
> @@ -7370,6 +7370,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
> SND_PCI_QUIRK(0xf111, 0x0009, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE),
> SND_PCI_QUIRK(0xf111, 0x000b, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE),
> SND_PCI_QUIRK(0xf111, 0x000c, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE),
> + SND_PCI_QUIRK(0x1f4c, 0xe001, "Minisforum V3 (SE)", ALC245_FIXUP_BASS_HP_DAC),
The table is sorted in PCI SSID order. Please put at the appropriate
position.
thanks,
Takashi
prev parent reply other threads:[~2026-02-02 10:00 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-01 23:12 [PATCH 0/2] ALSA: hda/realtek: Add quirk for Minisforum V3 SE Samuel Dionne-Riel
2026-02-01 23:12 ` [PATCH 1/2] ALSA: hda/realtek: Add generic quirk for Bass speaker DAC avoidance Samuel Dionne-Riel
2026-02-02 10:03 ` Takashi Iwai
2026-02-01 23:12 ` [PATCH 2/2] ALSA: hda/realtek: Add quirk for Minisforum V3 SE Samuel Dionne-Riel
2026-02-02 10:00 ` Takashi Iwai [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87o6m71n4u.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=perex@perex.cz \
--cc=samuel@dionne-riel.com \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox