diff options
Diffstat (limited to 'drivers/mxc/gpu-viv/hal/os/linux/kernel')
-rw-r--r-- | drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c index 4293ac9fbc75..8258cf8597ad 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c @@ -201,6 +201,21 @@ static int import_page_map(struct um_desc *um, goto error; } + if (addr & ~PAGE_MASK) + { + dma_sync_single_for_device(galcore_device, + page_to_phys(pages[0]), + PAGE_SIZE, + DMA_TO_DEVICE); + } + if (page_count > 1 && ((addr + size) & ~PAGE_MASK)) + { + dma_sync_single_for_device(galcore_device, + page_to_phys(pages[page_count-1]), + PAGE_SIZE, + DMA_TO_DEVICE); + } + um->type = UM_PAGE_MAP; um->pages = pages; |