dw_mci_init_slot(zx29_mmc.c)-->Mmc_alloc_host(host.c)-->INIT_DELAYED_WORK(host.c)創(chuàng)建delayed_wo..."/>
您好,登錄后才能下訂單哦!
dw_mci_probe(zx29_mmc.c)-->dw_mci_init_slot(zx29_mmc.c)-->Mmc_alloc_host(host.c)-->INIT_DELAYED_WORK(host.c)創(chuàng)建delayed_work將mmc_rescan放入工作隊(duì)列。
dw_mci_probe(zx29_mmc.c)-->dw_mci_init_slot(zx29_mmc.c)-->Mmc_add_host(host.c)-->mmc_start_host(core.c)-->mmc_detect_change(core.c),在mmc_detect_change中將喚醒工作隊(duì)列,進(jìn)行mmc_rescan。
mmcrescan-> 分別使用400k、300k、200k,100k的速率調(diào)用mmc_rescan_try_freq進(jìn)行掃描,只要掃描到了設(shè)備,就會(huì)退出掃描。所以如果在400k速率時(shí)掃描到了sdio設(shè)備,后面3種速率的掃描就不需要再執(zhí)行。
3. mmcattachsdio->
從整個(gè)掃描過(guò)程看,沒(méi)有使用到data線,所以如果sdio設(shè)備初始化的時(shí)候,能檢測(cè)到設(shè)備,但初始化失敗,很大可能那就是data線出問(wèn)題了。
mmc_request(queue.c)中調(diào)用wake_up_process喚醒mmc_queue_thread;
mmc_queue_thread(queue.c)-->
-blk_fetch_request(queue.c)-->獲取相應(yīng)的mmc_request
--mq->issue_fn()(mmc_blk_issue_rq block.c)-->處理request請(qǐng)求
---mmc_blk_issue_rw_rq(block.c)-->對(duì)請(qǐng)求隊(duì)列的數(shù)據(jù)進(jìn)行操作,最后調(diào)用mmc_wait_for_req
----mmc_start_req(core.c)-->開(kāi)始處理請(qǐng)求,進(jìn)入?yún)f(xié)議的核心層
-----__mmc_start_data_req(core.c)
------mmc_start_request(core.c)
-------host->ops->request()(dw_mci_request zx29_mmc.c)-->調(diào)用主機(jī)控制層實(shí)現(xiàn)真正硬件上請(qǐng)求的處理
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。