From: Takashi Iwai <tiwai@suse.de>
To: Zipdox <zipdox@zipdox.net>
Cc: Takashi Iwai <tiwai@suse.de>,
linux-sound@vger.kernel.org, perex@perex.cz,
linux-kernel@vger.kernel.org, tiwai@suse.com
Subject: Re: [PATCH] USB Audio Class 2 Mixer unit support for GET_CUR, SET_CUR and RANGE
Date: Mon, 28 Sep 2026 12:59:55 +0200 [thread overview]
Message-ID: <87ik3p7iac.wl-tiwai@suse.de> (raw)
In-Reply-To: <b3af9756-d008-46e6-9465-13a059584ead@zipdox.net>
On Fri, 18 Sep 2026 10:35:28 +0200,
Zipdox wrote:
>
>
> On 9/17/26 6:40 PM, Takashi Iwai wrote:
> >> Another thing on my mind is the following section from section
> >> 5.2.5.5.1 from the spec:
> >>> A Mixer Unit consists of a number of Mixer Controls, either programmable or fixed. A Mixer Control must
> >>> support the CUR and RANGE(MIN, MAX, RES) attributes. The settings for the CUR, MIN, and MAX
> >>> attributes can range from +127.9961 dB (0x7FFF) down to -127.9961 dB (0x8001) in steps of 1/256 dB or
> >>> 0.00390625 dB (0x0001). The settings for the RES attribute can only have positive values and range from
> >>> 1/256 dB (0x0001) to +127.9961 dB (0x7FFF).
> >>> In addition, code 0x8000, representing silence (i.e., -∞ dB), must always be implemented. However, it must
> >>> never be reported as the MIN attribute value.
> >>
> >> Is this presently handled? For reference, 0x8000 is -32768. When I use
> >> qasmixer or alsamixer, for example, it only goes down to -32767. This
> >> is the same in UAC1 by the way. Should we add a mute control to mixer
> >> nodes? Or perhaps extend the reported range downward by one, and
> >> overwrite the lowest value to -32768 when writing to a mixer unit. The
> >> latter is my preferred solution.
> >
> > I guess it's not; there is cval->min_mute flag, but it's for another
> > case (the minimal volume = mute) for the statically mapped mixer
> > elements, and not for this mixer unit case.
> >
> > Maybe they should be implemented by additional mute switches.
> >
> > Overall, the mixer unit controls have been rarely used by the devices,
> > so far, and that's the reason we didn't hit this over years :)
> >
> >
> > Takashi
> >
>
> From a UX perspective, I would prefer if the lowest setting on the
> control equals mute. This makes the most sense for a "mixer". Like I
> mentioned before, extending the range down by 1 and making that
> translate to -32768 seems like a convenient solution. When setting,
> simply check if it's a mixer unit (UAC1 or UAC2, both do this) and if
> the set value is equal to the minimum, and set the value to
> -32768. For getting, check if it's a mixer unit and check if the
> retrieved value is -32768, and then set the value to the minimum. The
> only caveat is that the resolution might not align anymore with the
> range. What do you think of this idea?
I thought of it, too. OTOH, it'll be a bit tricky, because the range
isn't usually covering -32767 but only a part. So -32768 won't be
reached continuously.
I'm inclined to have a simple mute switch in addition.
thanks,
Takashi
next prev parent reply other threads:[~2026-09-28 11:00 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-15 8:54 [PATCH] USB Audio Class 2 Mixer unit support for GET_CUR, SET_CUR and RANGE Zipdox
2026-09-15 11:08 ` Takashi Iwai
2026-09-15 12:54 ` Zipdox
2026-09-15 14:19 ` Takashi Iwai
2026-09-16 7:43 ` Zipdox
2026-09-16 15:40 ` Takashi Iwai
2026-09-16 16:58 ` Takashi Iwai
2026-09-16 18:22 ` Takashi Iwai
2026-09-17 14:23 ` Zipdox
2026-09-17 14:49 ` Takashi Iwai
2026-09-17 14:54 ` Zipdox
2026-09-17 16:15 ` Takashi Iwai
2026-09-17 16:33 ` Zipdox
2026-09-17 16:40 ` Takashi Iwai
2026-09-18 8:35 ` Zipdox
2026-09-28 10:59 ` Takashi Iwai [this message]
2026-10-05 13:54 ` Zipdox
[not found] <2dfe5d78-9c87-42a2-a306-ab5c58b17756@zipdox.net>
2026-10-05 9:55 ` Zipdox
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=87ik3p7iac.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=tiwai@suse.com \
--cc=zipdox@zipdox.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.