PPMGR: modify phys_to_virt to codec_mm_vmap. [5/5]

PD#TV-2649

Problem:
Kernel panic with phys_to_virt.

Solution:
Replace phys_to_virt with codec_mm_vmap.

Verify:
on u212

Change-Id: Ib3f94f66d37463490720cd1348b4ec94ad12aa15
Signed-off-by: renjiang.han <renjiang.han@amlogic.com>
This commit is contained in:
renjiang.han
2019-03-21 11:16:43 +08:00
committed by Luan Yuan
parent a2d7677c04
commit 111ce08241

View File

@@ -3632,7 +3632,8 @@ void stop_ppmgr_task(void)
static int tb_buffer_init(void)
{
int i;
int flags = CODEC_MM_FLAGS_DMA_CPU | CODEC_MM_FLAGS_CMA_CLEAR;
//int flags = CODEC_MM_FLAGS_DMA_CPU | CODEC_MM_FLAGS_CMA_CLEAR;
int flags = 0;
if (tb_buffer_status)
return tb_buffer_status;
@@ -3681,7 +3682,8 @@ static int tb_buffer_init(void)
detect_buf[i].paddr = tb_buffer_start +
TB_DETECT_H * TB_DETECT_W * i;
detect_buf[i].vaddr =
(ulong)phys_to_virt(detect_buf[i].paddr);
(ulong)codec_mm_vmap(detect_buf[i].paddr,
TB_DETECT_H * TB_DETECT_W);
if (ppmgr_device.tb_detect & 0xc) {
PPMGRVPP_INFO(
"detect buff(%d) paddr: %lx, vaddr: %lx\n",
@@ -3697,6 +3699,7 @@ static int tb_buffer_init(void)
static int tb_buffer_uninit(void)
{
int i;
if (tb_src_canvas) {
if (tb_src_canvas & 0xff)
canvas_pool_map_free_canvas(
@@ -3717,6 +3720,13 @@ static int tb_buffer_uninit(void)
PPMGRVPP_INFO("tb cma free addr is %x, size is %x\n",
(unsigned int)tb_buffer_start,
(unsigned int)tb_buffer_size);
for (i = 0; i < tb_buffer_len; i++) {
if (detect_buf[i].vaddr) {
codec_mm_unmap_phyaddr(
(u8 *)detect_buf[i].vaddr);
detect_buf[i].vaddr = 0;
}
}
codec_mm_free_for_dma(
"tb_detect",
tb_buffer_start);