[alsa-devel] Beaglebone black : Audio cap & Linux version 4.1.3-ti-r6.2
Micka
mickamusset at gmail.com
Thu Jul 30 18:39:56 CEST 2015
HI everyone, I'm trying to test the sound output with the
driver tlv320aic3104.
I'm stuck somewhere and I can't figure it out !
I Put a lot of printk and I don't know where to put other printk.
Do you know who call the function soc_pcm_prepare ?
693 <http://lxr.free-electrons.com/source/sound/soc/soc-pcm.c#L693>
*/**694 <http://lxr.free-electrons.com/source/sound/soc/soc-pcm.c#L694>
* * Called by ALSA when the PCM substream is prepared, can set format,
sample*695 <http://lxr.free-electrons.com/source/sound/soc/soc-pcm.c#L695>
* * rate, etc. This function is non atomic and can be called multiple
times,*696 <http://lxr.free-electrons.com/source/sound/soc/soc-pcm.c#L696>
* * it can refer to the runtime info.*697
<http://lxr.free-electrons.com/source/sound/soc/soc-pcm.c#L697> *
*/*698 <http://lxr.free-electrons.com/source/sound/soc/soc-pcm.c#L698>
static int soc_pcm_prepare
<http://lxr.free-electrons.com/ident?i=soc_pcm_prepare>(struct
snd_pcm_substream
<http://lxr.free-electrons.com/ident?i=snd_pcm_substream> *substream)
Looks like that it's ALSA, but I can't find where ?
I tried to find a line in the kernel calling the function:
rtd->ops <http://lxr.free-electrons.com/ident?i=ops>.prepare(.... )
can't find it ....
my trace :
[ 550.269286] ASoC: tlv320aic3x-hifi <-> 48038000.mcasp info:
[ 550.269363] ASoC: rate mask 0x7fe
[ 550.269398] ASoC: min ch 2 max ch 2
[ 550.269431] ASoC: min rate 8000 max rate 96000
[ 550.275809] tlv aic3x_hw_params
[ 550.275862] snd_soc_read: snd soc component read: ret 0 reg 9 val 64
[ 550.275934] snd_soc_component_write reg 9 val 64
[ 550.275987] snd_soc_component_write reg 101 val 0
[ 550.276030] snd_soc_component_write reg 7 val 10
[ 550.276063] snd_soc_component_write reg 2 val 0
[ 550.289260] snd_soc_component_write reg 11 val 1
[ 550.289339] snd_soc_component_write reg 4 val 32
[ 550.289375] snd_soc_component_write reg 5 val 30
[ 550.289407] snd_soc_component_write reg 6 val 0
[ 550.289952] soc_pcm_prepare
[ 550.290003] snd_soc_component_write reg 10 val 0
[ 550.290043] soc_dapm_stream_event 1
[ 550.290107] soc_dapm_stream_event: dapm_power_widgets:start
dapm_power_widgets 1
[ 550.290150] trace_snd_soc_dapm_start
[ 550.290176] dapm reset
[ 550.290226] trace_snd_soc_dapm_widget_power
[ 550.290257] trace_snd_soc_dapm_widget_power
[ 550.290284] trace_snd_soc_dapm_widget_power
[ 550.290311] trace_snd_soc_dapm_widget_power
[ 550.290339] trace_snd_soc_dapm_widget_power
[ 550.290370] trace_snd_soc_dapm_widget_power
[ 550.290395] trace_snd_soc_dapm_widget_power
[ 550.290423] trace_snd_soc_dapm_widget_power
[ 550.290448] trace_snd_soc_dapm_widget_power
[ 550.290477] trace_snd_soc_dapm_widget_power
[ 550.290503] trace_snd_soc_dapm_widget_power
[ 550.290531] trace_snd_soc_dapm_widget_power
[ 550.290557] trace_snd_soc_dapm_widget_power
[ 550.290582] trace_snd_soc_dapm_widget_power
[ 550.290608] trace_snd_soc_dapm_widget_power
[ 550.290634] trace_snd_soc_dapm_widget_power
[ 550.290659] trace_snd_soc_dapm_widget_power
[ 550.290686] trace_snd_soc_dapm_widget_power
[ 550.290712] trace_snd_soc_dapm_widget_power
[ 550.290738] trace_snd_soc_dapm_widget_power
[ 550.290765] trace_snd_soc_dapm_widget_power
[ 550.290791] trace_snd_soc_dapm_widget_power
[ 550.290817] trace_snd_soc_dapm_widget_power
[ 550.290842] trace_snd_soc_dapm_widget_power
[ 550.290879] dap set bias to off
[ 550.290910] dapm_pre_sequence_async off
[ 550.290937] snd soc dapm set bias level 1
[ 550.290962] trace_snd_soc_bias_level_start 1
[ 550.290988] trace_snd_soc_bias_level_done 1
[ 550.291011] dapm_pre_sequence_async onsnd soc dapm set bias level 2
[ 550.291047] trace_snd_soc_bias_level_start 2
[ 550.291073] trace_snd_soc_bias_level_done 2
[ 550.291318] dapm_pre_sequence_async off
[ 550.291354] snd soc dapm set bias level 1
[ 550.291381] trace_snd_soc_bias_level_start 1
[ 550.291405] soc set bias level
[ 550.291432] tlv set bias level 1
[ 550.291456] tlv standby
[ 550.291480] tlv set power
[ 550.300504] snd_soc_read: snd soc component read: ret 0 reg 5 val 30
[ 550.300583] snd_soc_read: snd soc component read: ret 0 reg 6 val 0
[ 550.300631] snd_soc_component_write reg 5 val 30
[ 550.301103] snd_soc_component_write reg 6 val 0
[ 550.301577] trace_snd_soc_bias_level_done 1
[ 550.301611] dapm_pre_sequence_async onsnd soc dapm set bias level 2
[ 550.301650] trace_snd_soc_bias_level_start 2
[ 550.301675] soc set bias level
[ 550.301701] tlv set bias level 2
[ 550.301724] tlv prepare
[ 550.301757] trace_snd_soc_bias_level_done 2
[ 550.301864] dapm event WILL_PMU
[ 550.301897] dapm event WILL_PMU
[ 550.301923] dapm event WILL_PMU
[ 550.301948] dapm event WILL_PMU
[ 550.301972] dapm event WILL_PMU
[ 550.301997] dapm event WILL_PMU
[ 550.302021] dapm event WILL_PMU
[ 550.302045] dapm event WILL_PMU
[ 550.302069] dapm event WILL_PMU
[ 550.302094] dapm event WILL_PMU
[ 550.302119] dapm event WILL_PMU
[ 550.302143] dapm event WILL_PMU
[ 550.302168] dapm event WILL_PMU
[ 550.302192] dapm event WILL_PMU
[ 550.302216] dapm event WILL_PMU
[ 550.302240] dapm event WILL_PMU
[ 550.302265] dapm event WILL_PMU
[ 550.302289] dapm event WILL_PMU
[ 550.302313] dapm event WILL_PMU
[ 550.302337] dapm event WILL_PMU
[ 550.302362] dapm event WILL_PMU
[ 550.302386] dapm event WILL_PMU
[ 550.302410] dapm event WILL_PMU
[ 550.302435] dapm event WILL_PMU
[ 550.302460] dapm sq run 1
[ 550.302489] dapm sq run 1
[ 550.302523] dapm event PRE_PMU
[ 550.302550] dapm event PRE_PMD
[ 550.302575] dapm event PRE_PMU
[ 550.302599] dapm event PRE_PMD
[ 550.302623] dapm event PRE_PMU
[ 550.302647] dapm event PRE_PMD
[ 550.302671] dapm event PRE_PMU
[ 550.302696] dapm event PRE_PMD
[ 550.302720] dapm event PRE_PMU
[ 550.302744] dapm event PRE_PMD
[ 550.302769] dapm event PRE_PMU
[ 550.302793] dapm event PRE_PMD
[ 550.302817] dapm event POST_PMU
[ 550.302842] dapm event POST_PMD
[ 550.302867] dapm event POST_PMU
[ 550.302891] dapm event POST_PMD
[ 550.302915] dapm event POST_PMU
[ 550.302939] dapm event POST_PMD
[ 550.302964] dapm event POST_PMU
[ 550.302988] dapm event POST_PMD
[ 550.303012] dapm event POST_PMU
[ 550.303036] dapm event POST_PMD
[ 550.303060] dapm event POST_PMU
[ 550.303084] dapm event POST_PMD
[ 550.303110] dapm event PRE_PMU
[ 550.303134] dapm event PRE_PMD
[ 550.303159] dapm event POST_PMU
[ 550.303183] dapm event POST_PMD
[ 550.303209] dapm event PRE_PMU
[ 550.303234] dapm event PRE_PMD
[ 550.303258] dapm event PRE_PMU
[ 550.303282] dapm event PRE_PMD
[ 550.303306] dapm event PRE_PMU
[ 550.303331] dapm event PRE_PMD
[ 550.303355] dapm event PRE_PMU
[ 550.303379] dapm event PRE_PMD
[ 550.303403] dapm event POST_PMU
[ 550.303427] dapm event POST_PMD
[ 550.303451] dapm event POST_PMU
[ 550.303475] dapm event POST_PMD
[ 550.303499] dapm event POST_PMU
[ 550.303524] dapm event POST_PMD
[ 550.303548] dapm event POST_PMU
[ 550.303572] dapm event POST_PMD
[ 550.303598] dapm event PRE_PMU
[ 550.303622] dapm event PRE_PMD
[ 550.303647] dapm event PRE_PMU
[ 550.303671] dapm event PRE_PMD
[ 550.304162] dapm event POST_PMU
[ 550.304199] dapm event POST_PMD
[ 550.304226] dapm event POST_PMU
[ 550.304250] dapm event POST_PMD
[ 550.304278] dapm event PRE_PMU
[ 550.304303] dapm event PRE_PMD
[ 550.304328] dapm event PRE_PMU
[ 550.304352] dapm event PRE_PMD
[ 550.304377] dapm event PRE_PMU
[ 550.304401] dapm event PRE_PMD
[ 550.304426] dapm event PRE_PMU
[ 550.304450] dapm event PRE_PMD
[ 550.304474] dapm event POST_PMU
[ 550.304499] dapm event POST_PMD
[ 550.304523] dapm event POST_PMU
[ 550.304547] dapm event POST_PMD
[ 550.304572] dapm event POST_PMU
[ 550.304596] dapm event POST_PMD
[ 550.304620] dapm event POST_PMU
[ 550.304644] dapm event POST_PMD
[ 550.304670] dapm event PRE_PMU
[ 550.304695] dapm event PRE_PMD
[ 550.305156] dapm event POST_PMU
[ 550.305191] dapm event POST_PMD
[ 550.305219] dapm event PRE_PMU
[ 550.305245] dapm event PRE_PMD
[ 550.305696] dapm event POST_PMU
[ 550.305730] dapm event POST_PMD
[ 550.305757] dapm event PRE_PMU
[ 550.305782] dapm event PRE_PMD
[ 550.306275] dapm event POST_PMU
[ 550.306312] dapm event POST_PMD
[ 550.306341] dapm event PRE_PMU
[ 550.306366] dapm event PRE_PMD
[ 550.306849] dapm event POST_PMU
[ 550.306885] dapm event POST_PMD
[ 550.306914] dapm event PRE_PMU
[ 550.306939] dapm event PRE_PMD
[ 550.317926] dapm event POST_PMU
[ 550.317958] dapm event POST_PMD
[ 550.317977] dapm event PRE_PMU
[ 550.317991] dapm event PRE_PMD
[ 550.318401] dapm event POST_PMU
[ 550.318422] dapm event POST_PMD
[ 550.318439] dapm event PRE_PMU
[ 550.318454] dapm event PRE_PMD
[ 550.318467] dapm event POST_PMU
[ 550.318480] dapm event POST_PMD
[ 550.318496] dapm_power_widgets run all the bias changes in parrallel
[ 550.321470] dapm_post_sequence_async prepare 1
[ 550.321498] snd soc dapm set bias level 3
[ 550.321513] trace_snd_soc_bias_level_start 3
[ 550.321527] soc set bias level
[ 550.321543] tlv set bias level 3
[ 550.321555] tlv bias on
[ 550.321570] trace_snd_soc_bias_level_done 3
[ 550.321649] dapm_power_widgets dapm_power_widgets
[ 550.321666] DAPM sequencing finished
[ 550.321680] trace_snd_soc_dapm_done
[ 550.321695] pcm prepare call snd_soc_dai_digital_mute
[ 550.321711] snd_soc_dai_digital_mute 0 0
[ 550.321725] tlv aic3x_mute
[ 550.321739] snd_soc_read: snd soc component read: ret 0 reg 43 val 168
[ 550.321772] snd_soc_read: snd soc component read: ret 0 reg 44 val 168
[ 550.321798] snd_soc_component_write reg 43 val 40
[ 550.322224] snd_soc_component_write reg 44 val 40
[ 550.322630] pcm prepare call snd_soc_dai_digital_mute for cpu_dai
[ 550.322651] snd_soc_dai_digital_mute 0 0
>
>
More information about the Alsa-devel
mailing list