Skip to content

Commit

Permalink
driver: Use dma_mmap_coherent on all platforms
Browse files Browse the repository at this point in the history
Signed-off-by: João Silva <jgc3silva@gmail.com>
  • Loading branch information
vankxr committed Apr 6, 2024
1 parent faf7876 commit ced04c7
Showing 1 changed file with 0 additions and 16 deletions.
16 changes: 0 additions & 16 deletions software/driver/src/icyradio.c
Original file line number Diff line number Diff line change
Expand Up @@ -406,27 +406,11 @@ static int icyradio_mmap(struct file *pFile, struct vm_area_struct *pVMA)

pr_notice("DMA Buffer, Phys start: 0x%016llX, Phys offset: 0x%016llX, map offset: 0x%016lX, map len: 0x%08lX", pDev->ulDMAPhysAddr, ulOffset - pDev->ulDMAPhysAddr, ulOffset, ulLength);

#if defined(__aarch64__) || defined(__arm__)
pr_notice("Running on ARM, using dma_mmap_coherent");

ulOffset -= pDev->ulDMAPhysAddr;

pVMA->vm_pgoff = ulOffset >> PAGE_SHIFT;

if(dma_mmap_coherent(&pDev->pPCIDev->dev, pVMA, pDev->pDMAVirtAddr + ulOffset, pDev->ulDMAPhysAddr + ulOffset, ulLength))
#else
pr_notice("Running on x86, using io_remap_pfn_range");

pVMA->vm_pgoff = ulOffset >> PAGE_SHIFT;
pVMA->vm_page_prot = pgprot_noncached(pVMA->vm_page_prot);
#if(LINUX_VERSION_CODE < KERNEL_VERSION(6, 3, 0))
pVMA->vm_flags |= VM_IO;
#else
vm_flags_set(pVMA, VM_IO);
#endif

if(io_remap_pfn_range(pVMA, pVMA->vm_start, pVMA->vm_pgoff, ulLength, pVMA->vm_page_prot))
#endif
{
pr_warn("Can't remap DMA buffer range for device %u, aborting", pDev->ulDevID);

Expand Down

0 comments on commit ced04c7

Please sign in to comment.