[alsa-devel] Throughts on getting ALC892 working better (was Re: Help With Getting Line-in monitoring working)
kevina at gnu.org
Tue Sep 6 12:06:07 CEST 2011
On Tue, 6 Sep 2011, Raymond Yau wrote:
> 2011/9/6 Kevin Atkinson <kevin at atkinson.dhs.org>:
> How did you get "snd: bad kfree" in the system log ?
No idea. I am using alsa-driver.git, kernel incompatibility?
>> I spent several hours going over the data sheet (ver 1.3, you can find it at
>> Apparently there is no hardware master control and the master and PCM slider
>> must be implemented in software.
>> So, after the change you suggest below the mixer are mapped better in the
>> newer drivers. But things can be still be improved. More below.
>> Also to get line-in pass-through working via headphone out please unmute the
>> second set of Amp-in vals of pin 0x26.
>>> Node 0x26 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
>>> Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
>>> Amp-In vals: [0x00 0x00] [0x80 0x80]
>> ^^^^^^^^^^^ set these to 0x00
>>> Connection: 2
>>> 0x25 0x0b
> The ALC892 provides ten DAC channels that simultaneously support 7.1
> channel sound playback, plus 2 channels of independent stereo sound
> output (multiple streaming) through the front panel stereo outputs.
> you can create playback device 2 for the front panel headphone by adding
> spec->alt_dac_nid = 0x25;
I'm sorry I know nothing of the alsa code, but this doesn't seam like it
will do what we want. What is this doing? Basically I want the driver to
unmute the input from 0x0b for mixer 0x26, like it doesn't on all the
other internal mixers that have 0x0b going into it.
>> Apparently all analog inputs are mixed together using 0x0B and then the
>> output is sent to a bunch of other audio mixers, but these mixers don't
>> really control the volume, they just have a separate mute for the PCM and
>> analog input. That being said, it probably also makes sense to mute analog
>> audio (coming from 0x0B) on all but pins 0x26 (headphone) and 0x0C (front)
>> by default.
> The hardest thing is how to add the controls for this alc892
I think we are talking past each other here....
>> On an even lesser note, it would be really nice if ALSA could expose the
>> full capacity of the hardware without having an unwieldy number of mixer
>> controls. For example each of the 5 output mixers have a separate PCM and
>> analog pass-though mute control, it would be nice to expose this. Also,
>> each of the 8 analog pins can be repurposed as either input or output, some
>> of them have a headphone amp, some of them have a mic boost, it would be
>> nice if all this could all be exposed. However, I can see how exposing all
>> this will lead to a lot of confusing mixer settings.
> does any user really want to pass the stereo signal from line in to
> "center/lfe" ?
I did say "On an even lesser note", my point is the hardware can do it,
the driver should be able to expose the functionality somehow. I don't
really care through.
Anyway the point is that on my machine using the latest code from the
alsa-driver.git all the mixer setups are working well after I make the
two additional changes to the initial setup everything seams to work.
If it helps I can resend the /proc/* output after I manually tweak the
setting so that things work correctly for me.
I don't have time right now to figure out how to get these changes into
the code, but if someone can give me a patch to try or a strong hint on
what needs to change I am willing to try it out.
At this point I don't have time to try the latest kernel code.
I guess the point of this post is to serve as a data points on what work
on my hardware with the alc892 which is the ASUS P7H55-M motherboard.
The alc892 matches perfectly with what are in the official data sheet,
except that some of the pins are not hooked up to anything (BEEP-IN,
More information about the Alsa-devel