lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87o6m71n4u.wl-tiwai@suse.de>
Date: Mon, 02 Feb 2026 11:00:01 +0100
From: Takashi Iwai <tiwai@...e.de>
To: Samuel Dionne-Riel <samuel@...nne-riel.com>
Cc: Jaroslav Kysela <perex@...ex.cz>,
	Takashi Iwai <tiwai@...e.com>,
	linux-sound@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/2] ALSA: hda/realtek: Add quirk for Minisforum V3 SE

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@...nne-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@...nne-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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ