mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
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:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user