音频DMA分析结果

测试:DMA:查找imx-sdma与imx-dma. imx-sdma.c最后再查看
printk("ttttttttttttttttttttttttttttttttttt   %s  %s \n", __func__, __func__);
compat_filter_fn


imx6 pcmͨ·
  if (prtd->callback)
 desc->callback = prtd->callback;
  dmaengine_pcm_prepare_and_submit
  snd_dmaengine_pcm_trigger
 
 
  snd_dmaengine_pcm_trigger
 


[    8.395658] ttttttttttttttttttttttttttttttttttt   devm_snd_soc_register_component  devm_snd_soc_register_component 
[    8.395675] ttttttttttttttttttttttttttttttttttt   devm_snd_soc_register_platform  devm_snd_soc_register_platform 
[    8.396686] ttttttttttttttttttttttttttttttttttt   devm_snd_dmaengine_pcm_register  devm_snd_dmaengine_pcm_register 


[    8.396756] ttttttttttttttttttttttttttttttttttt   devm_snd_soc_register_component  devm_snd_soc_register_component 
[    8.397067] ttttttttttttttttttttttttttttttttttt   devm_snd_dmaengine_pcm_register  devm_snd_dmaengine_pcm_register 


[    8.397124] ttttttttttttttttttttttttttttttttttt   devm_snd_soc_register_component  devm_snd_soc_register_component 
[    8.397436] ttttttttttttttttttttttttttttttttttt   devm_snd_dmaengine_pcm_register  devm_snd_dmaengine_pcm_register 




[    8.397487] ttttttttttttttttttttttttttttttttttt   devm_snd_soc_register_component  devm_snd_soc_register_component 
[    8.398394] ttttttttttttttttttttttttttttttttttt   devm_snd_soc_register_card  devm_snd_soc_register_card 

 
 
------------------------------------------------------------

 
devm_snd_soc_register_component  devm_snd_soc_register_component 
devm_snd_soc_register_platform  devm_snd_soc_register_platform 
dma_params_tx.maxburst = 13 ssi_private->dma_params_rx.maxburst = 13
fsl_ssi_imx_probe    imx_pcm_dma_init
imx_pcm_dma_init  imx_pcm_dma_init 
devm_snd_dmaengine_pcm_register  devm_snd_dmaengine_pcm_register 
snd_dmaengine_pcm_register  snd_dmaengine_pcm_register 
dmaengine_pcm_request_chan_of  dmaengine_pcm_request_chan_of 






devm_snd_soc_register_component  devm_snd_soc_register_component 
dma_params_tx.maxburst = 13 ssi_private->dma_params_rx.maxburst = 13
fsl_ssi_imx_probe    imx_pcm_dma_init
imx_pcm_dma_init  imx_pcm_dma_init 
devm_snd_dmaengine_pcm_register  devm_snd_dmaengine_pcm_register 
snd_dmaengine_pcm_register  snd_dmaengine_pcm_register 
dmaengine_pcm_request_chan_of  dmaengine_pcm_request_chan_of 




devm_snd_soc_register_component  devm_snd_soc_register_component 
dma_params_tx.maxburst = 13 ssi_private->dma_params_rx.maxburst = 13
fsl_ssi_imx_probe    imx_pcm_dma_init
imx_pcm_dma_init  imx_pcm_dma_init 
devm_snd_dmaengine_pcm_register  devm_snd_dmaengine_pcm_register 
snd_dmaengine_pcm_register  snd_dmaengine_pcm_register 
dmaengine_pcm_request_chan_of  dmaengine_pcm_request_chan_of 




devm_snd_soc_register_component  devm_snd_soc_register_component 
devm_snd_soc_register_card  devm_snd_soc_register_card 


   
 dmaengine_pcm_new  dmaengine_pcm_new 
soc_platform_to_pcm  soc_platform_to_pcm 
dmaengine_dma_dev  dmaengine_dma_dev 
dmaengine_pcm_can_report_residue  dmaengine_pcm_can_report_residue 
dmaengine_dma_dev  dmaengine_dma_dev 
dmaengine_pcm_can_report_residue  dmaengine_pcm_can_report_residue 
imx-ak7738codec sound: ak7738codec <-> 202c000.ssi mapping ok
 
 
 dmaengine_pcm_new  dmaengine_pcm_new 
soc_platform_to_pcm  soc_platform_to_pcm 
dmaengine_dma_dev  dmaengine_dma_dev 
dmaengine_pcm_can_report_residue  dmaengine_pcm_can_report_residue 
dmaengine_dma_dev  dmaengine_dma_dev 
dmaengine_pcm_can_report_residue  dmaengine_pcm_can_report_residue 
imx-tef663x sound_media: tef663x <-> 2030000.ssi mapping ok
 
 
 dmaengine_pcm_new  dmaengine_pcm_new 
soc_platform_to_pcm  soc_platform_to_pcm 
dmaengine_dma_dev  dmaengine_dma_dev 
dmaengine_pcm_can_report_residue  dmaengine_pcm_can_report_residue 
dmaengine_dma_dev  dmaengine_dma_dev 
dmaengine_pcm_can_report_residue  dmaengine_pcm_can_report_residue 
imx-pcm178x sound_navi: pcm178x <-> 2028000.ssi mapping ok










DMA调用时序图


*/
 1、dmaengine_pcm_open  dmaengine_pcm_open 
 2、snd_pcm_lib_ioctl 11111111111111 snd_pcm_lib_ioctl   SNDRV_PCM_IOCTL1_INFO
 3、while(10)
  snd_pcm_lib_ioctl 4444444444444444444 snd_pcm_lib_ioctl   SNDRV_PCM_IOCTL1_FIFO_SIZE


 4、dmaengine_pcm_hw_params  dmaengine_pcm_hw_params 
  ------>imx_pcm_dma_prepare_slave_config  imx_pcm_dma_prepare_slave_config 
 5、 while(2)
snd_pcm_lib_ioctl 333333333333333 snd_pcm_lib_ioctl  SNDRV_PCM_IOCTL1_CHANNEL_INFO
     snd_pcm_lib_ioctl 22222222222222222 snd_pcm_lib_ioctl    SNDRV_PCM_IOCTL1_RESET
 6、 snd_dmaengine_pcm_trigger 111111111111111 snd_dmaengine_pcm_trigger   SNDRV_PCM_TRIGGER_START
dmaengine_pcm_prepare_and_submit  
dmaengine_submit
 7、while(2)
  snd_pcm_lib_ioctl 11111111111111 snd_pcm_lib_ioctl    SNDRV_PCM_IOCTL1_INFO


 8、dmaengine_pcm_pointer  dmaengine_pcm_pointer
  ------------------------------------------------------------
imx_pcm_dma_complete  imx_pcm_dma_complete 
dmaengine_pcm_pointer  dmaengine_pcm_pointer 
soc_platform_to_pcm  soc_platform_to_pcm 
——————————————————————————————————————————————
9、  snd_dmaengine_pcm_trigger 5555555555555 snd_dmaengine_pcm_trigger  SNDRV_PCM_TRIGGER_STOP
10、 snd_pcm_lib_free_pages  snd_pcm_lib_free_pages 
11、 snd_dmaengine_pcm_close  snd_dmaengine_pcm_close 









你可能感兴趣的:(嵌入式,Bootloader)