[alsa-devel] Problems with ALC882

Christophe Osuna christophe.osuna at gmail.com
Fri Jan 18 17:10:06 CET 2008

2008/1/16, Takashi Iwai <tiwai at suse.de>:
> At Wed, 16 Jan 2008 18:20:20 +0100,
> Christophe Osuna wrote:
> >
> > I am having a bad time trying to get an ALC882 [1] to work. I hope
> > that you can help me. Currently I am using alsa-driver-1.0.14 but it
> > would probably be the same with 1.0.15 since there has been no change
> > in /pci/hda/.
> There have been tons of changes for HD-audio between these versions :)
> You should have looked at alsa-driver*/alsa-kernel/pci/hda.
> Anyway, now it's much better to try the latest ALSA HG version than
> 1.0.15.  1.0.15 is so old.  If you are not familiar with HG, try the
> daily snapshot tarball below:
>         ftp://ftp.suse.com/pub/projects/alsa/snapshot/

I have tried alsa-driver-hg20080117; it shows two additional mixer
options (Mic Boost and Front Mic Boost) but in the end it's the same:
I am unable to access the 3rd ADC.

  ~# cat /proc/asound/version
  Advanced Linux Sound Architecture Driver Version 1.0.15.
  Compiled on Jan 18 2008 for kernel (SMP).
  ~# cat /proc/asound/devices
    0: [ 0]   : control
    6: [ 0- 2]: hardware dependent
   16: [ 0- 0]: digital audio playback
   17: [ 0- 1]: digital audio playback
   24: [ 0- 0]: digital audio capture
   25: [ 0- 1]: digital audio capture
   26: [ 0- 2]: digital audio capture
   33:        : timer
  ~# cat /proc/asound/pcm
  00-02: ALC882 Analog : ALC882 Analog : capture 2
  00-01: ALC882 Digital : ALC882 Digital : playback 1 : capture 1
  00-00: ALC882 Analog : ALC882 Analog : playback 1 : capture 2
  ~# arecord -l
  **** List of CAPTURE Hardware Devices ****
  card 0: Intel [HDA Intel], device 0: ALC882 Analog [ALC882 Analog]
    Subdevices: 2/2
    Subdevice #0: subdevice #0
    Subdevice #1: subdevice #1
  card 0: Intel [HDA Intel], device 1: ALC882 Digital [ALC882 Digital]
    Subdevices: 1/1
    Subdevice #0: subdevice #0
  card 0: Intel [HDA Intel], device 2: ALC882 Analog [ALC882 Analog]
    Subdevices: 2/2
    Subdevice #0: subdevice #0
    Subdevice #1: subdevice #1

When I start two instances of arecord to pipe hw:0,0,0 and hw:0,2,0 to
/dev/null, both stop because of I/O error.

The ALC882 datasheet states that "3 stereo ADCs support 16/20-bit PCM
format, two for microphone array, one for legacy mixer recording".
This is the only place that suggests there could be a difference, but
I do not understand this sentence as "only 2 ADC can be used at a
time" (English is not my native language). The block diagram in the
following page does not suggest such a limit either.

Besides that I have read in the same datasheet that "rates in
sub-multiples (1/n) of 48kHz are interleaving n frames containing no
sample blocks" and so we can have 8 kHz by setting one sample block
every six frames. Still, I can't set the device to 8 kHz.

Here is a summary of my questions:
1) Why is the 3rd ADC missing from PCM (the mixer does show it)?
2) If that is a bug, where should I look first? (However, because of
my very limited experience I am not very confident in fixing that
3) Is it possible to use two ALC882 driven by the same HDA?
4) In that case, how will I be able to access the second ALC882 (hw:0,x,y)?
5) Still in that case, will I be able to use snd_pcm_link() for all devices?
6) Would you know any ALSA-supported card with three ADC?
7) Does HDA really support 8 kHz?
8) If it does, will ALSA support it?

Thanks for your help.

More information about the Alsa-devel mailing list