[alsa-devel] issue with AD1989A HDA codec and alsamixer
Hi all,
I am working on a system which includes a connexant AD1989A HDA codec connected to a ATOM processor. I have four microphones connected to the B and C ports of this codec. If I change one of the 3 capture gains present in the alsamixer (Capture, Capture 1 or Capture 3), I can't have any more signal on the B and C ports It seems to be due to the fact that ALSA breaks (for example for the Capture gain) the link between the ADC selector 0 and ADC_0 widgets of the codec, what can be easily seen with codecgraph.
Have you ever had this kind of problem? Do you know how can I resolve it ?
Many thanks for your asnwers and best regards
Vincent
2011/2/1 Vincent Meserette vmeserette@aldebaran-robotics.com
Hi all,
I am working on a system which includes a connexant AD1989A HDA codec connected to a ATOM processor. I have four microphones connected to the B and C ports of this codec. If I change one of the 3 capture gains present in the alsamixer (Capture, Capture 1 or Capture 3), I can't have any more signal on the B and C ports It seems to be due to the fact that ALSA breaks (for example for the Capture gain) the link between the ADC selector 0 and ADC_0 widgets of the codec, what can be easily seen with codecgraph.
Have you ever had this kind of problem? Do you know how can I resolve it ?
Many thanks for your asnwers and best regards
Vincent
What is the Vendor Id of conexant AD1989A ?
are your codec are using patch_analog.c according to vendor id of the codec ?
Looking at the datasheet of ad1988a , ad1988b and ad1989b at analog device web site and ad1989a conexant web site
The digital microphone of conexant ad1989a only connect to adc0 in the functional block diagram
2011/2/2 Raymond Yau superquad.vortex2@gmail.com
2011/2/1 Vincent Meserette vmeserette@aldebaran-robotics.com
Hi all,
I am working on a system which includes a connexant AD1989A HDA codec connected to a ATOM processor. I have four microphones connected to the B and C ports of this codec. If I change one of the 3 capture gains present in the alsamixer (Capture, Capture 1 or Capture 3), I can't have any more signal on the B and C ports It seems to be due to the fact that ALSA breaks (for example for the Capture gain) the link between the ADC selector 0 and ADC_0 widgets of the codec, what can be easily seen with codecgraph.
Have you ever had this kind of problem? Do you know how can I resolve it ?
Many thanks for your asnwers and best regards
Vincent
What is the Vendor Id of conexant AD1989A ?
are your codec are using patch_analog.c according to vendor id of the codec ?
Looking at the datasheet of ad1988a , ad1988b and ad1989b at analog device web site and ad1989a conexant web site
The digital microphone of conexant ad1989a only connect to adc0 in the functional block diagram
If the number of input sources of adc0 of ad1989a is more than those of adc1 and adc2
This may mean that you will need to implement a specific ad1989a_capture_mixer[] for ad1989a instead of using ad1988_capture_mixer and
may need to implement ad1989a_pcm_analog_alt_capture for adc1 and adc2 similar to alc880_pcm_analog_alt_capture
Hi Raymond,
Many thanks for your answer.
Looking the AD1989A datasheet (which can be found here : http://www.conexant.com/products/entry.jsp?id=599) the vendor id of the codec seems to be 11D4989A So, I think the codec taken into account in the "patch_analog.c" file is well the AD1989A because I found these lines in the source code :
/* * patch entries */ static struct hda_codec_preset snd_hda_preset_analog[] = { ... { .id = 0x11d4989a, .name = "AD1989A", .patch = patch_ad1988 }, ... {} /* terminator */ };
Concerning the digital microphone input of the codec, I don't use it. I have four electret microphones connected to the B and C ports of the codec (one on the PORT-B_L pin, one on the PORT-B_R pin, one on the PORT-C_L pin and one on the PORT-C_R pin). I have connected by software configuration the port B to the ADC1 and the port C to the ADC0. Maybe my problem comes from here, because I don't use the codec in a standard configuration ? if it is the case, do you know how can i resolve it ? Do you also know which registers control the three capture gains of the alsamixerl (i thought it was the gains of the ADC0, ADC1 and ADC2 )?
Many thanks
Kind regards
Vincent
2011/2/2 Raymond Yau superquad.vortex2@gmail.com
2011/2/2 Raymond Yau superquad.vortex2@gmail.com
2011/2/1 Vincent Meserette vmeserette@aldebaran-robotics.com
Hi all,
I am working on a system which includes a connexant AD1989A HDA codec connected to a ATOM processor. I have four microphones connected to the B and C ports of this codec. If I change one of the 3 capture gains present in the alsamixer (Capture, Capture 1 or Capture 3), I can't have any more signal on the B and C ports It seems to be due to the fact that ALSA breaks (for example for the Capture gain) the link between the ADC selector 0 and ADC_0 widgets of the codec, what can be easily seen with codecgraph.
Have you ever had this kind of problem? Do you know how can I resolve it ?
Many thanks for your asnwers and best regards
Vincent
What is the Vendor Id of conexant AD1989A ?
are your codec are using patch_analog.c according to vendor id of the
codec
?
Looking at the datasheet of ad1988a , ad1988b and ad1989b at analog
device
web site and ad1989a conexant web site
The digital microphone of conexant ad1989a only connect to adc0 in the functional block diagram
If the number of input sources of adc0 of ad1989a is more than those of adc1 and adc2
This may mean that you will need to implement a specific ad1989a_capture_mixer[] for ad1989a instead of using ad1988_capture_mixer and
may need to implement ad1989a_pcm_analog_alt_capture for adc1 and adc2 similar to alc880_pcm_analog_alt_capture _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
2011/2/3 Vincent Meserette vmeserette@aldebaran-robotics.com
Hi Raymond,
Many thanks for your answer.
Looking the AD1989A datasheet (which can be found here : http://www.conexant.com/products/entry.jsp?id=599) the vendor id of the codec seems to be 11D4989A So, I think the codec taken into account in the "patch_analog.c" file is well the AD1989A because I found these lines in the source code :
/*
- patch entries
*/ static struct hda_codec_preset snd_hda_preset_analog[] = { ... { .id = 0x11d4989a, .name = "AD1989A", .patch = patch_ad1988 }, ... {} /* terminator */ };
Concerning the digital microphone input of the codec, I don't use it. I have four electret microphones connected to the B and C ports of the codec (one on the PORT-B_L pin, one on the PORT-B_R pin, one on the PORT-C_L pin and one on the PORT-C_R pin). I have connected by software configuration the port B to the ADC1 and the port C to the ADC0. Maybe my problem comes from here, because I don't use the codec in a standard configuration ? if it is the case, do you know how can i resolve it ? Do you also know which registers control the three capture gains of the alsamixerl (i thought it was the gains of the ADC0, ADC1 and ADC2 )?
can you post the output of alsa-info.sh
Six 192kHz 92dB ADCs - simultaneous record of up to 3 stereo channels
It does not imply you can record 4 channels with the existing hda driver which create three subdevices
participants (2)
-
Raymond Yau
-
Vincent Meserette