As promised: Soft volume mixer controller

Michael Nottebrock lofi at freebsd.org
Wed Sep 14 03:41:38 PDT 2005


On Wednesday, 14. September 2005 04:12, Ariff Abdullah wrote:

> Can you revisit sys/dev/sound/pcm/ac97.c, look for
> ac97_fix_volume(codec); , and comment or remove it? I just want to make
> sure it is the fault of feeder volume, not something else.

Yes, that makes vchans work again (and the pcm mixer is binary again, so I 
guess I commented out the right line, too).

However, it seems I also found another bug related to vchans somewhere else in 
that patchset - and one in the current unpatched 5-STABLE:

I have hw.snd.pcm0.vchans=4 set in /etc/sysctl.conf

With an unpatched kernel (5-STABLE), this gives me:

[lofi at kiste]:0:~ > ls -l /dev/dsp*
crw-rw-rw-  1 root  wheel   30,   3 14 Sep 12:31 /dev/dsp0.0
crw-rw-rw-  1 root  wheel   30, 0x00010003 14 Sep 12:31 /dev/dsp0.1
crw-rw-rw-  1 root  wheel   30, 0x00020003 14 Sep 12:31 /dev/dsp0.2
crw-rw-rw-  1 root  wheel   30, 0x00030003 14 Sep 12:31 /dev/dsp0.3
crw-rw-rw-  1 root  wheel   30, 0x00040003 14 Sep 12:31 /dev/dsp0.4
crw-rw-rw-  1 root  wheel   30, 0x00050003 14 Sep 12:31 /dev/dsp0.5
crw-rw-rw-  1 root  wheel   30,   5 14 Sep 12:29 /dev/dspW0.0
crw-rw-rw-  1 root  wheel   30, 0x00010005 14 Sep 12:29 /dev/dspW0.1
crw-rw-rw-  1 root  wheel   30, 0x00020005 14 Sep 12:29 /dev/dspW0.2
crw-rw-rw-  1 root  wheel   30, 0x00030005 14 Sep 12:29 /dev/dspW0.3
crw-rw-rw-  1 root  wheel   30, 0x00040005 14 Sep 12:29 /dev/dspW0.4
crw-rw-rw-  1 root  wheel   30, 0x00050005 14 Sep 12:29 /dev/dspW0.5
crw-rw-rw-  1 root  wheel   30, 0x0001000b 14 Sep 12:29 /dev/dspr0.1

i.e. six virtual devices rather then four. I have no idea if that has always 
been the case or not - I never bothered to actually cound the devices before, 
after the four I requested were there! :-)

With a patched kernel however I get:

[lofi at kiste]:0:~ > ls -l /dev/dsp*
crw-rw-rw-  1 root  wheel   30,   3 14 Sep 12:36 /dev/dsp0.0
crw-rw-rw-  1 root  wheel   30, 0x00020003 14 Sep 12:36 /dev/dsp0.2
crw-rw-rw-  1 root  wheel   30, 0x00030003 14 Sep 12:37 /dev/dsp0.3
crw-rw-rw-  1 root  wheel   30, 0x00040003 14 Sep 12:36 /dev/dsp0.4
crw-rw-rw-  1 root  wheel   30, 0x00050003 14 Sep 12:36 /dev/dsp0.5
crw-rw-rw-  1 root  wheel   30, 0x00060003 14 Sep 12:36 /dev/dsp0.6
crw-rw-rw-  1 root  wheel   30,   5 14 Sep 12:36 /dev/dspW0.0
crw-rw-rw-  1 root  wheel   30, 0x00020005 14 Sep 12:36 /dev/dspW0.2
crw-rw-rw-  1 root  wheel   30, 0x00030005 14 Sep 12:36 /dev/dspW0.3
crw-rw-rw-  1 root  wheel   30, 0x00040005 14 Sep 12:36 /dev/dspW0.4
crw-rw-rw-  1 root  wheel   30, 0x00050005 14 Sep 12:36 /dev/dspW0.5
crw-rw-rw-  1 root  wheel   30, 0x00060005 14 Sep 12:36 /dev/dspW0.6
crw-rw-rw-  1 root  wheel   30, 0x0002000b 14 Sep 12:36 /dev/dspr0.2

Note how /dev/dsp(W|r)0.1 are missing and instead I get /dev/dsp(W)0.6 
and /dev/dspr0.2 ...

-- 
   ,_,   | Michael Nottebrock               | lofi at freebsd.org
 (/^ ^\) | FreeBSD - The Power to Serve     | http://www.freebsd.org
   \u/   | K Desktop Environment on FreeBSD | http://freebsd.kde.org


More information about the freebsd-multimedia mailing list