Chi*_*nna 5 c device-driver linux-device-driver linux-kernel dma
我有一个情况我需要调用dma_unmap_single后dma_sync_single_for_cpu.以下是我的情景.
kmalloc()dma_map_single与DMA_FROM_DEVICE方向.dma_sync_single_for_cpu.dma_unmap_single带DMA_FROM_DEVICE方向的unmap缓冲区.以上所有步骤都可以接受吗?
缓冲区“所有权”(CPU 或设备)仅在决定谁可以访问缓冲区内容时才重要。
dma_unmap_single()不关心内容;它可以在任一状态下调用。
请注意,DMA 取消映射后,内存再次“属于”CPU。如果您只进行一次 DMA 传输,则无需调用dma_sync_single_for_cpu(); 您可以在调用后读取缓冲区dma_unmap_single()。