[ALSA/usb-audio] Weltrend/XiiSound Headset (040b:0897) splits channels into independent 'PCM'/'PCM 1' mixer elements and suffers from severe dB volume curve mismatch

GitHub issues - edited <[email protected]>
Newsgroups org.alsa-project.alsa-devel
Message-ID <[email protected]>
alsa-project/alsa-ucm-conf issue #760 was edited from skye6034:

<img width="717" height="298" alt="Image" src="https://github.com/user-attachments/assets/3f81ef7d-5973-493c-a2c1-b2046bb958c1" />
<img width="958" height="529" alt="Image" src="https://github.com/user-attachments/assets/b49f830a-255a-4283-a561-0aa957a86b68" />

### Description of the Bug
The Weltrend Semiconductor / XiiSound wireless headset dongle (USB ID 040b:0897) is incorrectly handled by the `snd-usb-audio` driver. Instead of presenting a single unified stereo hardware volume control interface, the driver registers two completely separate hardware playback controls simultaneously:
1. `PCM` (Controls overall initial gain / Left physical channel)
2. `PCM 1` (Controls the hardware amplification exclusively for the physical Right ear channel)

Because of this firmware descriptor misinterpretation, standard desktop environments (like GNOME/KDE) parse the device into separate, conflicting "Analog Output" and "Digital Output (S/PDIF)" hardware profiles simultaneously. 

When a user adjusts the system volume slider, the audio engine modulates the primary `PCM` element but leaves `PCM 1` un-synchronized at 0%. This instantly kills the physical Left audio channel entirely, leaving sound playing exclusively out of the Right side.

Furthermore, the hardware volume scaling curve is completely non-linear and broken. Small adjustments to the user-space volume slider result in massive, disproportionate drops in the hardware mixer levels. For example, lowering the desktop system volume slider slightly from 100% down to 98% causes the ALSA hardware `PCM` channel level to violently plummet down to approximately 33%.

The hardware functions perfectly as a standard, unified single stereo device on Windows and macOS.

### Steps to Reproduce
1. Connect the wireless USB dongle.
2. See two "Analog Output" and "Digital Output (S/PDIF)" profiles on the desktop (GNOME/KDE)
3. Audio won't play until you set "Analog" to 100%, and then, it would only play on the Right Channel
4. Open `alsamixer` and select the `H878 Wireless headset` sound card.
5. Observe two independent, unlinked channel elements: `PCM` and `PCM 1`.
6. Set `PCM 1` to 100. The physical left speaker starts outputting audio.
7. Attempting to lower system volume via desktop controls drops the main `PCM` element while leaving the channels permanently split and mismatched.
8. Drop the system volume slider slightly from 100% to 98% and observe the hardware `PCM` slider collapse immediately to ~33% gain.### 

Current User Workaround:
To achieve functional stereo, a user must manually force both `PCM` and `PCM 1` to exactly 100% in `alsamixer` to force open both physical speaker channels, and then instruct their user-space audio server (PipeWire/PulseAudio) to utilize software-side attenuation rather than mapping to the hardware mixer paths.

### Hardware Details (`lsusb -v`):
Bus 005 Device 003: ID 040b:0897 Weltrend Semiconductor H878 Wireless headset
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x040b Weltrend Semiconductor
  idProduct          0x0897 H878 Wireless headset
  bcdDevice            0.31
  iManufacturer           1 XiiSound Technology Corporation
  iProduct                2 H878 Wireless headset
  bNumConfigurations      1

### Alsamixer Controls Detected:
- Card: H878 Wireless headset
- Chip: USB Mixer
- Item: PCM [dB gain: 0.39, 0.39] -> Controls Left channel pathing
- Item: PCM 1 [Volume: 0] -> Hard-muted by default, controls Right hardware amp pathing

### Suggested Fix / Quirk Needed
This chip requires a custom driver mapping entry added to the Linux kernel (`sound/usb/quirks.c` or `sound/usb/mixer.c`). The driver needs a mixer quirk targeting USB ID `040b:0897` to:
1. Alias or hard-link `PCM 1` to the master `PCM` control for unified, locked stereo tracking.
2. Implement a custom volume map (`dB_map`) to override the broken firmware descriptors, preventing the hardware volume level from collapsing to 33% when a minor user-space attenuation (98%) is requested.

Issue URL     : https://github.com/alsa-project/alsa-ucm-conf/issues/760
Repository URL: https://github.com/alsa-project/alsa-ucm-conf
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.