codec_mm: changes the prot of pages to PAGE_KERNEL. [2/2]

PD#SWPL-4597

Problem:
Probabilistic full-screen display mosaic after seek 8K H265

Solution:
alloc mem area with the cached which from the vmap. this way
can improve the efficiency of I/O.

Change-Id: Icf18b9cd57bdc54f832aa827a535399939b28611
Signed-off-by: Nanxin Qin <nanxin.qin@amlogic.com>
This commit is contained in:
Nanxin Qin
2019-03-12 20:35:54 +08:00
committed by Jianxin Pan
parent d61c997693
commit 38c72c8cf1

View File

@@ -329,14 +329,11 @@ u8 *codec_mm_vmap(ulong addr, u32 size)
struct page **pages = NULL;
u32 i, npages, offset = 0;
ulong phys, page_start;
pgprot_t pgprot;
pgprot_t pgprot = PAGE_KERNEL;
if (!PageHighMem(phys_to_page(addr)))
return phys_to_virt(addr);
/*No cache*/
pgprot = pgprot_noncached(PAGE_KERNEL);
offset = offset_in_page(addr);
page_start = addr - offset;
npages = DIV_ROUND_UP(size + offset, PAGE_SIZE);
@@ -874,7 +871,8 @@ void codec_mm_dma_flush(void *vaddr,
phy_addr = page_to_phys(vmalloc_to_page(vaddr))
+ offset_in_page(vaddr);
if (phy_addr && PageHighMem(phys_to_page(phy_addr)))
flush_cache_vmap(phy_addr, phy_addr + size);
dma_sync_single_for_device(mgt->dev,
phy_addr, size, dir);
return;
}