alsa-ucm-conf: fix the rk817 playback mixer element - #3249
Closed
pkilar wants to merge 1 commit into
Closed
Conversation
RK3326 handhelds using the rk817 codec come up at full volume after a cold
boot while the stored setting reads whatever the user had chosen, and changing
the volume moves the number without moving the sound.
Root cause is in the rk817-sound UCM profile:
PlaybackMixerElem "Master Playback Volume"
PlaybackMixerElem takes the simple mixer ELEMENT name - "Master" - not the raw
kcontrol name. Everywhere else in alsa-ucm-conf it is spelled that way
("Headphone", "Speaker", "HP"); rk817-sound is the only file using the long
form. The element is therefore never found, pipewire gets no hardware volume
control, and its sink volume controls nothing audible - while common/050-audio
deliberately pins ALSA Master to 100%. Hence loud, with a correct-looking
number.
With the fix, the pipewire sink drives the hardware: sink 0.30 -> Master 67%,
0.20 -> 56% on the dB curve. Before, Master never moved. Confirmed audible on
hardware (Gusgu H7, RK3326).
Left CaptureMasterElem "Master Capture Volume" alone. It looks like the same
error, but I have not tested capture and will not change what I cannot verify.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01985tp15STZZvPFMfnVBGnm
stolen
force-pushed
the
alsa-ucm-rk817-mixer-elem
branch
from
August 30, 2026 05:37
e50c885 to
fe03494
Compare
stolen
enabled auto-merge
August 30, 2026 05:37
auto-merge was automatically disabled
September 4, 2026 21:23
Pull request was closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The
rk817-soundUCM profile sets:PlaybackMixerElemtakes the simple mixer element name —Master— not the raw kcontrol name. Everywhere else inalsa-ucm-confit is spelled that way (Headphone,Speaker,HP);rk817-soundis the only file using the long form.So the element is never found, pipewire gets no hardware volume control, and its sink volume controls nothing audible — while
common/050-audiodeliberately pins ALSAMasterto 100%. The symptom is a device that comes up at full volume after a cold boot while the stored setting reads whatever the user had chosen, and where changing the volume moves the number without moving the sound.Testing
0.30→Master67%,0.20→ 56%. Before the fixMasternever moved from 100% regardless of the sink value. Confirmed audible.Additional Context
patches/RK3326/), so it only affects RK3326.CaptureMasterElem "Master Capture Volume"alone. It looks like exactly the same error, but I have no way to test capture on this device and did not want to change what I could not verify — worth a look from someone who can.AI Usage
Did you use AI tools to help write this code? YES — Claude Code was used for the investigation and to draft the patch and this description. The root cause was confirmed by reading the alsa-ucm-conf tree for how
PlaybackMixerElemis spelled elsewhere, and the fix was verified againstamixerreadings on hardware.