mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 11:50:43 +09:00
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:
committed by
Jianxin Pan
parent
bad9d8cf88
commit
3c6f005419
@@ -3627,7 +3627,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;
|
||||
@@ -3676,7 +3677,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",
|
||||
@@ -3692,6 +3694,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(
|
||||
@@ -3712,6 +3715,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);
|
||||
|
||||
Reference in New Issue
Block a user