*参照元 [#t396aca7]
#backlinks

*説明 [#g269c295]
-パス: [[linux-4.4.1/arch/arm64/mm/dma-mapping.c]]

-FIXME: これは何?
--説明


**引数 [#a011ec3e]
-struct device *dev
--
--[[linux-4.4.1/device]]
-size_t size
--
-void *vaddr
--
-dma_addr_t dma_handle
--
--[[linux-4.4.1/dma_addr_t]]
-struct dma_attrs *attrs
--
--[[linux-4.4.1/dma_attrs]]


**返り値 [#y76341d4]
-なし


**参考 [#de5d12f8]


*実装 [#kd17f3c4]
 static void __dma_free(struct device *dev, size_t size,
                        void *vaddr, dma_addr_t dma_handle,
                        struct dma_attrs *attrs)
 {
         void *swiotlb_addr = phys_to_virt(dma_to_phys(dev, dma_handle));
 
-
--[[linux-4.4.1/phys_to_virt()]]
--[[linux-4.4.1/dma_to_phys()]]

         size = PAGE_ALIGN(size);
 
-
--[[linux-4.4.1/PAGE_ALIGN()]]

         if (!is_device_dma_coherent(dev)) {
                 if (__free_from_pool(vaddr, size))
                         return;
                 vunmap(vaddr);
         }
-
--[[linux-4.4.1/is_device_dma_coherent()]]
--[[linux-4.4.1/__free_from_pool()]]
--[[linux-4.4.1/vunmap()]]

         __dma_free_coherent(dev, size, swiotlb_addr, dma_handle, attrs);
-
--[[linux-4.4.1/__dma_free_coherent()]]

 }


*コメント [#a0f215a0]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS