淺析Linux下sdio介面對sd卡硬體檢測流程__Linux

來源:互聯網
上載者:User

mmc_alloc_host()申請平台SD單元對應的mmc_host結構體->
INIT_DELAYED_WORK(&host->detect, mmc_rescan)建立該平台SD單元對應的sdio裝置插入
檢測核心work_queue工作隊列函數mmc_rescan->mmc_rescan()這是一個共用函數,如果有4個SD卡控制器在你的arm平台上,
那麼4個SD控制器將分別對應4個mmc_host結構體,分別對應4個sdio裝置插入檢測核心work_queue工作隊列,
但工作隊列都將調用mmc_rescan()這1個函數,所以linux核心的物件導向的類共用機製做得很好->

使用mmc_alloc_host()函數申請的平台mmc_host結構體,沒有對其分配bus匯流排指標,僅分配了它所屬的parent,即這個mmc不屬於某個bus,
所以這個mmc_host對應的dev也不會從任何bus匯流排上分配到任何driver驅動,這也是應該的.

mmc_attach_sdio()->mmc_attach_bus(host, &mmc_sdio_ops);
mmc_sdio_init_card()->sdio_init_func()->sdio_alloc_func()->這樣當detect到sdio裝置之後,
將分配dev對應的sdio_func結構題,

調用sdio_read_func_cis()的cistpl_manfid()來填充sd卡的vendor,這樣當wlan驅動probe的時候,
就會和wlan驅動的id表中的vendor嘗試匹配,如果成功,那麼wlan驅動將接管該檢測到的sd卡

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.