On Wed, Jun 27, 2012 at 10:57 AM, Patrick Lai plai@codeaurora.org wrote:
On 6/26/2012 12:52 AM, rashmi narayan wrote:
Thank you Patrick .
Currently my codec driver SGTL5000.c has the following audio map static const struct snd_soc_dapm_route audio_map[] = { {"ADC Mux", "LINE_IN", "LINE_IN"}, {"ADC Mux", "MIC_IN", "MIC_IN"}, {"ADC", NULL, "ADC Mux"}, {"DAC Mux", "DAC", "DAC"}, {"DAC Mux", "LINE_IN", "LINE_IN"}, {"LO", NULL, "DAC"}, {"HP", NULL, "DAC Mux"}, {"LINE_OUT", NULL, "LO"}, {"HP_OUT", NULL, "HP"}, };
This map does not have a link from ADC to DAC. You mention "After a set of ALSA mixer commands is issued to create a path from one end point to another end point" , how do we issue those commands? to create a link , currently my alsa mixer shows no option for a ADC to DAC select.
If you have widgets defined matching what you specify in audio_map, you should see mixer command i.e "ADC Mux' base on audio map you have given. Then you give amixer 'ADC Mux' 'LINE_IN', this would translate to writing codec register to have ADC Mux take LINE_IN as input. Audio map is defined base on your CODEC topology. I would not be able to comment on how to enable CODEC loopback for your CODEC. However, the audio map you provided above is kind of fishy. For example, shouldn't DAC be sink instead of source {"DAC", "DAC", "DAC MUX"} as opposed to {"DAC Mux", "DAC", "DAC"}
The DAC MUX is a misnomer , it can be thought of as HeadphoneMux where
the inputs are LINE_IN and DAC(arch of SGTL5000). The datasheet has a DAC select register to choose between ADC and I2S_ IN(I2S In is default) . I don't see that in the map. The driver doesn't understand the command * amixer 'ADC Mux' 'LINE_IN' *it understands amixer control or alsamixer though . So is there any other option for the connect source to destination command... Am I missing something here? -amateur hence!
-Rashmi
-- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.