[alsa-devel] Problems with ALC882

Christophe Osuna christophe.osuna at gmail.com
Wed Jan 16 18:20:20 CET 2008


Hi,

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/.

The ALC882 has got three ADC, and for every one of them it is possible
to select one input source. amixer shows my current settings:

  ~# amixer get 'Input Source',0
  Simple mixer control 'Input Source',0
    Capabilities: enum
    Items: 'Mic' 'Front Mic' 'Line' 'CD'
    Item0: 'Mic'
  ~# amixer get 'Input Source',1
  Simple mixer control 'Input Source',1
    Capabilities: enum
    Items: 'Mic' 'Front Mic' 'Line' 'CD'
    Item0: 'Front Mic'
  ~# amixer get 'Input Source',2
  Simple mixer control 'Input Source',2
    Capabilities: enum
    Items: 'Mic' 'Front Mic' 'Line' 'CD'
    Item0: 'Line'

Put more simply:

  Mic -> Input 0 (1st ADC)
  Front Mic -> Input 1 (2nd ADC)
  Line In -> Input 2 (3rd ADC)

A grep in the proc filesystem shows that there are three ADC and one
digital input.

  ~# cat /proc/asound/card0/codec\#2 | grep Input
  Node 0x07 [Audio Input] wcaps 0x10011b: Stereo Amp-In
  Node 0x08 [Audio Input] wcaps 0x10011b: Stereo Amp-In
  Node 0x09 [Audio Input] wcaps 0x10011b: Stereo Amp-In
  Node 0x0a [Audio Input] wcaps 0x100391: Stereo Digital

So far, so good. But then I try to use the PCM system and things start
to go worse.

  ~# 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

If my ALSA understanding is right, that means I have two analog input
devices (hw:0,0 and hw:0,2). One is missing!

If I ask arecord to list the capture devices, it shows the following:

  ~# ./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

I have tried to pipe arecord into aplay several times:

  1) arecord -f dat -D hw:0,0,0 | aplay -f dat -D hw:0,0,0
  2) arecord -f dat -D hw:0,0,1 | aplay -f dat -D hw:0,0,0
  3) arecord -f dat -D hw:0,1,0 | aplay -f dat -D hw:0,0,0 (fails)
  4) arecord -f dat -D hw:0,2,0 | aplay -f dat -D hw:0,0,0
  5) arecord -f dat -D hw:0,2,1 | aplay -f dat -D hw:0,0,0
  6) arecord -f dat -D hw:0,0,0 > /dev/null (fails)
      and arecord -f dat -D hw:0,2,0 > /dev/null (fails)

and it shows that:

  1) hw:0,0,0 maps to 1st ADC: OK
  2) hw:0,0,1 maps to 2nd ADC: OK
  3) fails probably because digital input is not activated
  4) hw:0,2,0 maps to 1st ADC (same as hw:0,0,0)
  5) hw:0,2,1 maps to 2nd ADC (same as hw:0,0,1)
  6) when I start the second arecord the first stops (I/O error) and
then the second one stops (error), probably because they are working
on the same ADC.

So it appears that while the "control" ALSA layer detects the 3 ADC
the "PCM" layer does not. Do you have any idea of what could be wrong?

Besides that I have another smaller problem. According to the ALC882
documentation, the codec can handle 8 kHz signals (by sending setting
only one packet on every six packets  of the HDA bus which operates at
48 kHz). However the driver will not let me use that sample rate.
Example from /proc:

  Node 0x07 [Audio Input] wcaps 0x10011b: Stereo Amp-In
    Amp-In caps: ofs=0x08, nsteps=0x1f, stepsize=0x05, mute=1
    Amp-In vals:  [0x14 0x14]
    PCM:
      rates [0x160]: 44100 48000 96000
      bits [0x6]: 16 20
      formats [0x1]: PCM
    Connection: 1
       0x24

Is this a limit of the HDA implementation?

Thanks for your help.

[1] http://www.realtek.com.tw/products/productsView.aspx?Langid=1&PFid=28&Level=5&Conn=4&ProdID=43


More information about the Alsa-devel mailing list