https://paz00.ru/index.php?title=Alsa-dapm&feed=atom&action=history
Alsa-dapm - История изменений
2024-03-29T14:14:20Z
История изменений этой страницы в вики
MediaWiki 1.39.5
https://paz00.ru/index.php?title=Alsa-dapm&diff=142&oldid=prev
Unknown user в 08:14, 15 октября 2014
2014-10-15T08:14:06Z
<p></p>
<p><b>Новая страница</b></p><div>'''PAGE IS NOT COMPLETED'''<br />
<br />
===Links===<br />
[http://nv-tegra.nvidia.com/gitweb/?p=user/swarren/linux-2.6.git;a=blob;f=sound/soc/codecs/wm8903.c;h=4ad8ebd290e3decbe79f181bbbd1af2a3b014d4f;hb=ad07c857aadf8ad0ca1554823c1295aa1d67ffe7 wm8903.c] from nVidia's tree.<br />
[http://ac100.wikispaces.com/file/view/alc5632_mixer_path.PNG/251095266/alc5632_mixer_path.PNG full codec path]<br />
<br />
==Samples of DAPM usage==<br />
<br />
===Example 1===<br />
[[File:dapm_example1.PNG]]<br />
<br />
<pre><br />
SND_SOC_DAPM_INPUT("DMICDAT"),<br />
<br />
SND_SOC_DAPM_AIF_OUT("AIFTXL", "HiFi Capture", 0, SND_SOC_NOPM, 0, 0),<br />
SND_SOC_DAPM_AIF_OUT("AIFTXR", "HiFi Capture", 0, SND_SOC_NOPM, 0, 0),<br />
SND_SOC_DAPM_AIF_OUT("VAIFTX", "Voice Capture", 0, SND_SOC_NOPM, 0, 0),<br />
SND_SOC_DAPM_AIF_OUT("VAIFRX", "Voice Playback", 0, SND_SOC_NOPM, 0, 0),<br />
<br />
/* ADC right output select */<br />
static const char *adcr_func_sel[] = {"Stereo ADC", "Voice ADC"};<br />
static const struct soc_enum adcr_func_enum =<br />
SOC_ENUM_SINGLE(DAC_FUNC_SELECT, 5, 2, adcr_func_sel);<br />
static const struct snd_kcontrol_new adcr_func_controls =<br />
SOC_DAPM_ENUM("ADCR Mux", adcr_func_enum); // is name important?<br />
<br />
/* I2S out select */<br />
static const char *i2s_out_sel[] = {"ADC LR", "Voice Stereo Digital"};<br />
static const struct soc_enum i2s_out_enum =<br />
SOC_ENUM_SINGLE(I2S_OUT_CTL, 5, 2, i2s_out_sel);<br />
static cpmst struct snd_kcontrol_new i2s_out_controls =<br />
SOC_DAPM_ENUM("I2SOut Mux", i2s_out_enum);<br />
<br />
/* input mixers */<br />
SND_SOC_DAPM_MIXER("Left Capture Mix", PWR_MANAG_ADD2, 1, 0,<br />
&captureL_mixer_controls[0],<br />
ARRAY_SIZE(captureL_mixer_controls)),<br />
SND_SOC_DAPM_MIXER("Right Capture Mix", PWR_MANAG_ADD2, 0, 0,<br />
&captureR_mixer_controls[0],<br />
ARRAY_SIZE(captureR_mixer_controls)),<br />
<br />
/* DACs and ADCs */<br />
SND_SOC_DAPM_ADC("Voice DAC", NULL, PWR_MANAG_ADD2, 10, 0),<br />
SND_SOC_DAPM_ADC("Left ADC", NULL, PWR_MANAG_ADD2, 7, 0),<br />
SND_SOC_DAPM_ADC("Right ADC", NULL, PWR_MANAG_ADD2, 6, 0),<br />
<br />
/* Muxes */<br />
SND_SOC_DAPM_MUX("ADCR Mux", SND_SOC_NOPM, 0, 0, &adcr_func_controls),<br />
SND_SOC_DAPM_MUX("I2SOut Mux", SND_SOC_NOPM, 0, 0, &i2s_out_controls),<br />
<br />
</pre><br />
<br />
Routes:<br />
<pre><br />
{"Left Capture Mix", "Mic Capture Switch", "Mic"},<br />
{"Left Capture Mix", "SeakerL Capture Switch", "Speaker"},<br />
{"Right Capture Mix", "Mic Capture Switch", "Mic"},<br />
{"Right Capture Mix", "SeakerR Capture Switch", "Speaker"},<br />
<br />
/* left ADC */<br />
{"Left ADC", NULL, "Left Capture Mix"},<br />
{"Left ADC", NULL, "DMICDAT"},<br />
{"I2SOut Mux", "ADC LR", "Left ADC"},<br />
<br />
/* right ADC */<br />
{"Right ADC", NULL, "Right Capture Mix"},<br />
{"Right ADC", NULL, "DMICDAT"},<br />
{"ADCR Mux", "Stereo ADC", "Right ADC"},<br />
{"ADCR Mux", "Voice ADC", "Right ADC"},<br />
{"I2SOut Mux", "ADC LR", "ADCR Mux"},<br />
{"I2SOut Mux", "Voice Stereo Digital", "VAIFRX"},<br />
<br />
/* HiFi Capture */<br />
{"AIFTXL", NULL, "I2SOut Mux"}<br />
{"AIFTXR", NULL, "I2SOut Mux"}<br />
<br />
/* Voice Capture */<br />
{"VAIFTX", NULL, "ADCR Mux"},<br />
<br />
/* Voice Playback */<br />
{"Voice DAC", NULL, "VAIFRX"}<br />
<br />
</pre><br />
<br />
<br />
WRONG IMAGE!!!<br />
[[File:dapm_example1_graph.png]]</div>
Unknown user