admin管理员组

文章数量:1403443

My driver was previously compiled with dma_gem_cma_helper.h using CMA-DMA in Kernel Ver-5.15.0-131. It seems that CMA either incomplete or something else in Kernel Ver-6.1.55. I am switching to DMA without CMA. Using dma_gem_dma_helper.h and replacing _cma with _dma, as shown in the patch file: . It needs both vaddr and paddr data members. But void * paddr is not defined in the struct drm_gem_dma_object.

struct drm_gem_dma_object {
        struct drm_gem_object base;
        dma_addr_t dma_addr;
        struct sg_table *sgt;

        /* For objects with DMA memory allocated by GEM DMA */
        void *vaddr;

        bool map_noncoherent;
};

How to convert CMA-DMA code into DMA-DMA code without paddr? Did I miss anything?

本文标签: kernelMissing paddr in struct drmgemdmaobjectStack Overflow