mixer(3): Do not skip devices with no volume control

Some devices might not have a software volume control, but still be
able to be set as recording sources.

PR:		279787
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D48730

(cherry picked from commit f121de8fbcbc8aa82f9fb59039c502406b7c88b6)
This commit is contained in:
Christos Margiolis 2025-02-25 13:44:49 +02:00
parent 0a309ec1b8
commit 311b84540e

View file

@ -113,14 +113,14 @@ dunit:
TAILQ_INIT(&m->devs);
for (i = 0; i < SOUND_MIXER_NRDEVICES; i++) {
if (!MIX_ISDEV(m, i))
if (!MIX_ISDEV(m, i) && !MIX_ISREC(m, i))
continue;
if ((dp = calloc(1, sizeof(struct mix_dev))) == NULL)
goto fail;
dp->parent_mixer = m;
dp->devno = i;
dp->nctl = 0;
if (_mixer_readvol(dp) < 0)
if (MIX_ISDEV(m, i) && _mixer_readvol(dp) < 0)
goto fail;
(void)strlcpy(dp->name, names[i], sizeof(dp->name));
TAILQ_INIT(&dp->ctls);