mmc request handle
2017-11-24 15:31:59 0 举报
linux 内核mmc 子系统IO request处理流程
作者其他创作
大纲/内容
mmc_blk_issue_rq
mmc_start_request
wake up mmcqd
condition A
YES
MSDC host controller
mmc_start_req
Generic Block Layer
mmc_blk_issue_dscard
host-ops-request
Start transfer data
mmc_blk_issue_flush
1. Condition A: There is no request in transfer. It has request in process2. Condition B: There is no request in transfer and no request in process3. Condition C: get a request from the queue or this is a request in transfer.4. Condition D: There is an request in transfer4. Condition E: Have new request
NO
No
Finish transfer
Wakup
Handle result
REQ_DISCARD?
condition D?
condition E?
return
INT
mrq-donemmc_wait_data_done
Stop DMA
msdc_irq
Wakeup
mmc_request_fn
__mmc_start_data_req
Get request fromqueue
yes
Sleep
condition B
start DMA
REQ_FLUSH?
end
mmc_blk_issue_rw_rq
mmc_queue_thread
Wake up mmcqd
blk_end_request
BIO reuqest
Request OK?
mmc_pre_req
condition C
mrq-done = mmc_wait_data_done
mmc_blk_part_switch(Switch eMMC region)
收藏
0 条评论
下一页