• Rahul Sharma's avatar
    drm: exynos: fix for mapping of dma buffers · 4ddc404b
    Rahul Sharma authored
    This patch fixes the problem of mapping contigous and non contigous dma buffers.
    
    Currently page struct is calculated from the buf->dma_addr which is not the
    physical address. It is replaced by buf->pages which points to the page struct
    of the first page of contigous memory chunk. This gives the correct page frame
    number for mapping.
    
    Non-contigous dma buffers are described using SG table and SG lists. Each
    valid SG List is pointing to a single page or group of pages which are
    physically contigous. Current implementation just maps the first page of each
    SG List and leave the other pages unmapped, leading to a crash. Given solution
    finds the page struct for the faulting page through parsing SG table and map it.
    Signed-off-by: default avatarRahul Sharma <rahul.sharma@samsung.com>
    Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
    Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
    4ddc404b
exynos_drm_gem.c 14.4 KB