Subject: Re: azalia(4) and volume control - SUCCESS
To: None <port-i386@NetBSD.org>
From: Stuart Brooks <stuartb@cat.co.za>
List: port-i386
Date: 03/28/2006 10:56:25
> > > > azalia0 at pci0 dev 27 function 0: Generic High Definition Audio
> > > Controller
> > > > azalia0: interrupting at ioapic0 pin 19 (irq 5)
> > > > azalia0: host: 82801GB/GR High Definition Audio Controller (rev.
> 1)
> > > > azalia0: host: High Definition Audio rev. 1.0
> > > > azalia0: codec: Realtek ALC882 (rev. 1.1)
> > > > azalia0: codec: High Definition Audio rev. 1.0
> > > >
> > > > Audio playback works fine but the volume is very low. All my
> > attempts
> > > > to turn boosts or change the mixer volume have not worked. And
the
> > > > driver doesn't provide a "outputs.master" property.
> > >
> > > I have seen a similar thing. The play.gain (audioctl) seems frozen
> at
> > > 127 on the azalia audio controller and the volume is very low. My
> > dmesg
> > > is as follows:
> > >
> > > NetBSD 3.0_STABLE (GENERIC) #2: Tue Feb 14 12:42:15 SAST 2006
> > > azalia0 at pci0 dev 27 function 0: Generic High Definition Audio
> > > Controller
> > > azalia0: interrupting at irq 9
> > > azalia0: host: 82801GB/GR High Definition Audio Controller (rev.
1)
> > > azalia0: host: High Definition Audio rev. 1.0
> > > azalia0: codec: 0x8384/0x7683 (rev. 50.1)
> >
> > "play.gain" behaves like an alias of "outputs.master" mixer
> > item. However, azalia diver doesn't provide "ouputs.master" for
> > any codec at this moment.
> > High Definition Audio doesn't define the master volume, and we
> > need to investigate what is the master volume on each of codecs.
> > As for ALC882, "outputs.green.*" or "outputs.heaphones.*", and
> > "outputs.mix0c" are important for playback volume. I don't know
> > about STAC9221D (0x8384/0x7683) codec.
>
> The mixerctl options (-a -v) for the STAC9221D (0x8384/0x7683) codec
are
> as follows:
>
> inputs.dac02.mute=off [ off on ]
> inputs.dac02=126,126 delta=2
> inputs.dac03.mute=off [ off on ]
> inputs.dac03=126,126 delta=2
> inputs.dac04.mute=off [ off on ]
> inputs.dac04=126,126 delta=2
> inputs.dac05.mute=off [ off on ]
> inputs.dac05=126,126 delta=2
> outputs.green0a.dir=output [ input output ]
> outputs.green0a.boost=on [ off on ]

Finally nailed this one. It appears that changing the inputs.dac02
volume results in the output volume changing. The name "inputs" is quite
misleading as in the spec widget 0x02 is in actual fact tied to an
output pin (pin 0x0d). The outputs.volume16 does change the master
volume but this is only meaningful if the other output volumes are at a
high enough level.