Bug 217786

Summary: No support for "mic boost" control on MSI B650 TOMAHAWK WIFI board
Product: Drivers Reporter: nas-linuxbugzilla
Component: Sound(ALSA)Assignee: Jaroslav Kysela (perex)
Status: NEW ---    
Severity: normal    
Priority: P3    
Hardware: All   
OS: Linux   
Kernel Version: Subsystem:
Regression: No Bisected commit-id:
Attachments: Dump from alsactl and alsaucm

Description nas-linuxbugzilla 2023-08-11 22:23:16 UTC
Created attachment 304822 [details]
Dump from alsactl and alsaucm

Motherboard is an "MSI MAG B650 TOMAHAWK WIFI AM5 AMD B650".

This is the audio device that has an issue:
https://linux-hardware.org/?id=usb:0db0-422d&hwid=ead3b1f0f0e8

From lsusb, the USB Id is:
0db0:422d Micro Star International USB Audio

After updating the UCM files for ALSA, the mic now provides a signal. However, the volume is low, even at everything turned to maximum volume.

I was able to pass-through the device to Windows 10 running in Qemu.  After installing the "Realtek Audio Console", I see there is a "Microphone Boost" control under the mic settings.  It has positions 0, +10 dB, +20 dB, +30 dB.  Setting it to +20 dB solved the mic signal issue (software-based amplification of the signal, inside the chip?).

My guess, without being too familiar with ALSA is that this board might need an entry in sound/usb/mixer_maps.c to specify which control is for the "Mic Boost".  The chip seems to be an ALC4080.  Some info on the chip here:

https://www.igorslab.de/en/the-old-alc4080-on-the-new-intel-boards-demystified-and-the-differences-from-alc1220-insider/

I found this datasheet, but it is for a different model?  It does mention a "mic boost" feature but I don't see how you set that.

http://realtek.info/pdf/ALC888_1-0.pdf
Comment 1 nas-linuxbugzilla 2023-08-12 21:36:40 UTC
I tried compiling the v6.5-rc5 Linux kernel but that doesn't help.  I'm not surprised since there doesn't seem to be any relevant changes in the sound/* tree.

I found a work-around for the lack of mic boost.  With pipewire, it seems you can set a volume property that will increase the gain of the mic signal.  I'm not sure what the downside of this would be but at least I can use applications that expect a larger mic input signal.


################################################
#!/bin/sh

set -e

# This is the node.description for the mic
name='USB Audio Microphone'

# Default value is 1.0.
volume=15

# Lookup id of node for mic
id=$(pw-dump -N| \
	jq --arg n "$name" \
		'..|objects|select(.["node.description"]==$n)|.["object.id"]')

# Set volume property
pw-cli set-param $id Props "{ volume: $volume }"

################################################