dma

来源:互联网 发布:mac 下html开发工具 编辑:程序博客网 时间:2024/06/05 07:35

dma 是soc上的硬件模块之间数据通信的接口,基本所有模块上都用到了它,他们都是固定的api,虽然只要知道api怎么调用就够用了,但是还是有必要看看底层的逻辑是什么。


documentation/dmaengine.txt

documentation/dma-api.txt

documentation/dma-apt-howto.txt


dma_alloc_coherent--->ops->alloc == arm_dma_alloc

dma_request_slave_channel_compat--->  __dma_request_slave_channel_compat --->  dma_request_slave_channel ---> of_dma_request_slave_channel --->

ofdma->of_dma_xlate == (of_dma_controller_register--->at_dma_xlate) --->dma_request_channel--->__dma_request_channel--->private_candidate


dmaengine_slave_config--->dmaengine_device_control---> chan->device->device_control == atc_control--->set_runtime_config--->convert_burst


dma_map_single--->dma_map_single_attrs--->ops->map_page == arm_dma_map_page


sg_init_table


sg_dma_len


device_prep_slave_sg == atc_prep_slave_sg


tx_submit  ==atc_tx_submit--->atc_dostart


device_issue_pending==atc_issue_pending--->atc_advance_work--->atc_complete_all--->atc_chain_complete--->callback--->dma_run_dependencies

0 0