mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 11:26:02 +09:00
video/rockchip: rga2: alter some print level for debug
Change-Id: I776a07416ddc36d473cd9ed39aa6fbf900facce7 Signed-off-by: Shixiang Zheng <shixiang.zheng@rock-chips.com> Signed-off-by: Li Huang <putin.li@rock-chips.com>
This commit is contained in:
committed by
Tao Huang
parent
04bb8c98db
commit
f15b108e67
@@ -321,27 +321,28 @@ static const char *rga2_get_format_name(uint32_t format)
|
||||
|
||||
static void print_debug_info(struct rga2_req *req)
|
||||
{
|
||||
DBG("render_mode:%s,bitblit_mode=%d,rotate_mode:%s\n",
|
||||
rga2_get_render_mode_str(req->render_mode), req->bitblt_mode,
|
||||
rga2_get_rotate_mode_str(req->rotate_mode));
|
||||
DBG("src : y=%lx uv=%lx v=%lx aw=%d ah=%d vw=%d vh=%d xoff=%d yoff=%d format=%s\n",
|
||||
req->src.yrgb_addr, req->src.uv_addr, req->src.v_addr,
|
||||
req->src.act_w, req->src.act_h, req->src.vir_w, req->src.vir_h,
|
||||
req->src.x_offset, req->src.y_offset,
|
||||
rga2_get_format_name(req->src.format));
|
||||
DBG("dst : y=%lx uv=%lx v=%lx aw=%d ah=%d vw=%d vh=%d xoff=%d yoff=%d format=%s\n",
|
||||
req->dst.yrgb_addr, req->dst.uv_addr, req->dst.v_addr,
|
||||
req->dst.act_w, req->dst.act_h, req->dst.vir_w, req->dst.vir_h,
|
||||
req->dst.x_offset, req->dst.y_offset,
|
||||
rga2_get_format_name(req->dst.format));
|
||||
DBG("mmu : src=%.2x src1=%.2x dst=%.2x els=%.2x\n",
|
||||
req->mmu_info.src0_mmu_flag, req->mmu_info.src1_mmu_flag,
|
||||
req->mmu_info.dst_mmu_flag, req->mmu_info.els_mmu_flag);
|
||||
DBG("alpha : flag %x mode0=%x mode1=%x\n",
|
||||
req->alpha_rop_flag, req->alpha_mode_0, req->alpha_mode_1);
|
||||
DBG("blend mode is %s\n", rga2_get_blend_mode_str(req->alpha_rop_flag,
|
||||
req->alpha_mode_0, req->alpha_mode_1));
|
||||
DBG("yuv2rgb mode is %x\n", req->yuv2rgb_mode);
|
||||
INFO("render_mode:%s,bitblit_mode=%d,rotate_mode:%s\n",
|
||||
rga2_get_render_mode_str(req->render_mode), req->bitblt_mode,
|
||||
rga2_get_rotate_mode_str(req->rotate_mode));
|
||||
INFO("src : y=%lx uv=%lx v=%lx aw=%d ah=%d vw=%d vh=%d xoff=%d yoff=%d format=%s\n",
|
||||
req->src.yrgb_addr, req->src.uv_addr, req->src.v_addr,
|
||||
req->src.act_w, req->src.act_h, req->src.vir_w, req->src.vir_h,
|
||||
req->src.x_offset, req->src.y_offset,
|
||||
rga2_get_format_name(req->src.format));
|
||||
INFO("dst : y=%lx uv=%lx v=%lx aw=%d ah=%d vw=%d vh=%d xoff=%d yoff=%d format=%s\n",
|
||||
req->dst.yrgb_addr, req->dst.uv_addr, req->dst.v_addr,
|
||||
req->dst.act_w, req->dst.act_h, req->dst.vir_w, req->dst.vir_h,
|
||||
req->dst.x_offset, req->dst.y_offset,
|
||||
rga2_get_format_name(req->dst.format));
|
||||
INFO("mmu : src=%.2x src1=%.2x dst=%.2x els=%.2x\n",
|
||||
req->mmu_info.src0_mmu_flag, req->mmu_info.src1_mmu_flag,
|
||||
req->mmu_info.dst_mmu_flag, req->mmu_info.els_mmu_flag);
|
||||
INFO("alpha : flag %x mode0=%x mode1=%x\n",
|
||||
req->alpha_rop_flag, req->alpha_mode_0, req->alpha_mode_1);
|
||||
INFO("blend mode is %s\n",
|
||||
rga2_get_blend_mode_str(req->alpha_rop_flag,
|
||||
req->alpha_mode_0, req->alpha_mode_1));
|
||||
INFO("yuv2rgb mode is %x\n", req->yuv2rgb_mode);
|
||||
}
|
||||
|
||||
static int rga2_align_check(struct rga2_req *req)
|
||||
@@ -350,23 +351,23 @@ static int rga2_align_check(struct rga2_req *req)
|
||||
if ((req->src.vir_w % 16) || (req->src.x_offset % 2) ||
|
||||
(req->src.act_w % 2) || (req->src.y_offset % 2) ||
|
||||
(req->src.act_h % 2) || (req->src.vir_h % 2))
|
||||
DBG("err src wstride is not align to 16 or yuv not align to 2");
|
||||
INFO("err src wstride is not align to 16 or yuv not align to 2");
|
||||
if (rga2_is_yuv10bit_format(req->dst.format))
|
||||
if ((req->dst.vir_w % 16) || (req->dst.x_offset % 2) ||
|
||||
(req->dst.act_w % 2) || (req->dst.y_offset % 2) ||
|
||||
(req->dst.act_h % 2) || (req->dst.vir_h % 2))
|
||||
DBG("err dst wstride is not align to 16 or yuv not align to 2");
|
||||
INFO("err dst wstride is not align to 16 or yuv not align to 2");
|
||||
if (rga2_is_yuv8bit_format(req->src.format))
|
||||
if ((req->src.vir_w % 8) || (req->src.x_offset % 2) ||
|
||||
(req->src.act_w % 2) || (req->src.y_offset % 2) ||
|
||||
(req->src.act_h % 2) || (req->src.vir_h % 2))
|
||||
DBG("err src wstride is not align to 8 or yuv not align to 2");
|
||||
INFO("err src wstride is not align to 8 or yuv not align to 2");
|
||||
if (rga2_is_yuv8bit_format(req->dst.format))
|
||||
if ((req->dst.vir_w % 8) || (req->dst.x_offset % 2) ||
|
||||
(req->dst.act_w % 2) || (req->dst.y_offset % 2) ||
|
||||
(req->dst.act_h % 2) || (req->dst.vir_h % 2))
|
||||
DBG("err dst wstride is not align to 8 or yuv not align to 2");
|
||||
DBG("rga align check over!\n");
|
||||
INFO("err dst wstride is not align to 8 or yuv not align to 2");
|
||||
INFO("rga align check over!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -377,7 +378,7 @@ static int rga2_memory_check(void *vaddr, u32 w, u32 h, u32 format, int fd)
|
||||
void *one_line = kzalloc(w * 4, GFP_KERNEL);
|
||||
|
||||
if (!one_line) {
|
||||
DBG("kzalloc fail %s[%d]\n", __func__, __LINE__);
|
||||
ERR("kzalloc fail %s[%d]\n", __func__, __LINE__);
|
||||
return 0;
|
||||
}
|
||||
switch (format) {
|
||||
@@ -416,20 +417,20 @@ static int rga2_memory_check(void *vaddr, u32 w, u32 h, u32 format, int fd)
|
||||
bits = 15;
|
||||
break;
|
||||
default:
|
||||
DBG("un know format\n");
|
||||
INFO("un know format\n");
|
||||
kfree(one_line);
|
||||
return -1;
|
||||
}
|
||||
temp_data = w * (h - 1) * bits >> 3;
|
||||
if (fd > 0) {
|
||||
DBG("vaddr is%p, bits is %d, fd check\n", vaddr, bits);
|
||||
INFO("vaddr is%p, bits is %d, fd check\n", vaddr, bits);
|
||||
memcpy(one_line, (char *)vaddr + temp_data, w * bits >> 3);
|
||||
DBG("fd check ok\n");
|
||||
INFO("fd check ok\n");
|
||||
} else {
|
||||
DBG("vir addr memory check.\n");
|
||||
INFO("vir addr memory check.\n");
|
||||
memcpy((void *)((char *)vaddr + temp_data), one_line,
|
||||
w * bits >> 3);
|
||||
DBG("vir addr check ok.\n");
|
||||
INFO("vir addr check ok.\n");
|
||||
}
|
||||
kfree(one_line);
|
||||
return 0;
|
||||
@@ -447,16 +448,16 @@ int rga2_scale_check(struct rga2_req *req)
|
||||
|
||||
if (strncmp(data->version, "2.20", 4) == 0) {
|
||||
if (((saw >> 4) >= daw) || ((sah >> 4) >= dah))
|
||||
DBG("unsupported to scaling less than 1/16 times.\n");
|
||||
INFO("unsupported to scaling less than 1/16 times.\n");
|
||||
if (((daw >> 4) >= saw) || ((dah >> 4) >= sah))
|
||||
DBG("unsupported to scaling more than 16 times.\n");
|
||||
INFO("unsupported to scaling more than 16 times.\n");
|
||||
} else {
|
||||
if (((saw >> 3) >= daw) || ((sah >> 3) >= dah))
|
||||
DBG("unsupported to scaling less than 1/8 tiems.\n");
|
||||
INFO("unsupported to scaling less than 1/8 tiems.\n");
|
||||
if (((daw >> 3) >= saw) || ((dah >> 3) >= sah))
|
||||
DBG("unsupported to scaling more than 8 times.\n");
|
||||
INFO("unsupported to scaling more than 8 times.\n");
|
||||
}
|
||||
DBG("rga2 scale check over.\n");
|
||||
INFO("rga2 scale check over.\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -946,9 +947,11 @@ static void rga2_try_set_reg(void)
|
||||
if (rga2_flag) {
|
||||
int32_t i, *p;
|
||||
p = rga2_service.cmd_buff;
|
||||
printk("CMD_REG\n");
|
||||
INFO("CMD_REG\n");
|
||||
for (i=0; i<8; i++)
|
||||
printk("%.8x %.8x %.8x %.8x\n", p[0 + i*4], p[1+i*4], p[2 + i*4], p[3 + i*4]);
|
||||
INFO("%.8x %.8x %.8x %.8x\n",
|
||||
p[0 + i * 4], p[1 + i * 4],
|
||||
p[2 + i * 4], p[3 + i * 4]);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -971,10 +974,13 @@ static void rga2_try_set_reg(void)
|
||||
if (RGA2_TEST_REG) {
|
||||
if (rga2_flag) {
|
||||
uint32_t i;
|
||||
printk("CMD_READ_BACK_REG\n");
|
||||
INFO("CMD_READ_BACK_REG\n");
|
||||
for (i=0; i<8; i++)
|
||||
printk("%.8x %.8x %.8x %.8x\n", rga2_read(0x100 + i*16 + 0),
|
||||
rga2_read(0x100 + i*16 + 4), rga2_read(0x100 + i*16 + 8), rga2_read(0x100 + i*16 + 12));
|
||||
INFO("%.8x %.8x %.8x %.8x\n",
|
||||
rga2_read(0x100 + i * 16 + 0),
|
||||
rga2_read(0x100 + i * 16 + 4),
|
||||
rga2_read(0x100 + i * 16 + 8),
|
||||
rga2_read(0x100 + i * 16 + 12));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1489,7 +1495,7 @@ static int rga2_blit_async(rga2_session *session, struct rga2_req *req)
|
||||
if (1) {
|
||||
print_debug_info(req);
|
||||
rga2_flag = 1;
|
||||
DBG("*** rga_blit_async proc ***\n");
|
||||
INFO("*** rga_blit_async proc ***\n");
|
||||
} else {
|
||||
rga2_flag = 0;
|
||||
}
|
||||
@@ -1517,7 +1523,7 @@ retry:
|
||||
if (1) {
|
||||
print_debug_info(req);
|
||||
rga2_flag = 1;
|
||||
DBG("*** rga2_blit_sync proc ***\n");
|
||||
INFO("*** rga2_blit_sync proc ***\n");
|
||||
} else {
|
||||
rga2_flag = 0;
|
||||
}
|
||||
@@ -1646,9 +1652,11 @@ static long rga_ioctl(struct file *file, uint32_t cmd, unsigned long arg)
|
||||
memset(&req, 0x0, sizeof(req));
|
||||
#if RGA2_DEBUGFS
|
||||
if (RGA2_TEST_MSG)
|
||||
DBG("cmd is %s\n", rga2_get_cmd_mode_str(cmd));
|
||||
if (RGA2_NONUSE)
|
||||
INFO("cmd is %s\n", rga2_get_cmd_mode_str(cmd));
|
||||
if (RGA2_NONUSE) {
|
||||
mutex_unlock(&rga2_service.mutex);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
switch (cmd)
|
||||
{
|
||||
@@ -1813,11 +1821,11 @@ static long compat_rga_ioctl(struct file *file, uint32_t cmd, unsigned long arg)
|
||||
|
||||
#if RGA2_DEBUGFS
|
||||
if (RGA2_TEST_MSG)
|
||||
DBG("use compat_rga_ioctl\n");
|
||||
INFO("using %s\n", __func__);
|
||||
#endif
|
||||
|
||||
if (NULL == session) {
|
||||
printk("%s [%d] rga thread session is null\n",__FUNCTION__,__LINE__);
|
||||
ERR("%s [%d] rga thread session is null\n", __func__, __LINE__);
|
||||
mutex_unlock(&rga2_service.mutex);
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -1947,7 +1955,7 @@ static long rga2_ioctl_kernel(struct rga_req *req_rga)
|
||||
session = &rga2_session_global;
|
||||
if (NULL == session)
|
||||
{
|
||||
printk("%s [%d] rga thread session is null\n",__FUNCTION__,__LINE__);
|
||||
ERR("%s [%d] rga thread session is null\n", __func__, __LINE__);
|
||||
mutex_unlock(&rga2_service.mutex);
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -2013,8 +2021,8 @@ static irqreturn_t rga2_irq_thread(int irq, void *dev_id)
|
||||
{
|
||||
#if RGA2_DEBUGFS
|
||||
if (RGA2_INT_FLAG)
|
||||
DBG("irqthread INT[%x],STATS[%x]\n", rga2_read(RGA2_INT),
|
||||
rga2_read(RGA2_STATUS));
|
||||
INFO("irqthread INT[%x],STATS[%x]\n", rga2_read(RGA2_INT),
|
||||
rga2_read(RGA2_STATUS));
|
||||
#endif
|
||||
mutex_lock(&rga2_service.lock);
|
||||
if (rga2_service.enable) {
|
||||
@@ -2030,8 +2038,8 @@ static irqreturn_t rga2_irq(int irq, void *dev_id)
|
||||
{
|
||||
#if RGA2_DEBUGFS
|
||||
if (RGA2_INT_FLAG)
|
||||
DBG("irq INT[%x], STATS[%x]\n", rga2_read(RGA2_INT),
|
||||
rga2_read(RGA2_STATUS));
|
||||
INFO("irq INT[%x], STATS[%x]\n", rga2_read(RGA2_INT),
|
||||
rga2_read(RGA2_STATUS));
|
||||
#endif
|
||||
/*if error interrupt then soft reset hardware*/
|
||||
if (rga2_read(RGA2_INT) & 0x01) {
|
||||
@@ -2151,9 +2159,9 @@ static int rga2_drv_probe(struct platform_device *pdev)
|
||||
}
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 1, 0))
|
||||
rga2_init_version();
|
||||
pr_info("Driver loaded successfully ver:%s\n", rga2_drvdata->version);
|
||||
INFO("Driver loaded successfully ver:%s\n", rga2_drvdata->version);
|
||||
#else
|
||||
pr_info("Driver loaded successfully\n");
|
||||
INFO("Driver loaded successfully\n");
|
||||
#endif
|
||||
return 0;
|
||||
|
||||
@@ -2229,50 +2237,50 @@ static ssize_t rga2_debug_write(struct file *file, const char __user *ubuf,
|
||||
if (strncmp(buf, "reg", 4) == 0) {
|
||||
if (RGA2_TEST_REG) {
|
||||
RGA2_TEST_REG = 0;
|
||||
DBG("close rga2 reg!\n");
|
||||
INFO("close rga2 reg!\n");
|
||||
} else {
|
||||
RGA2_TEST_REG = 1;
|
||||
DBG("open rga2 reg!\n");
|
||||
INFO("open rga2 reg!\n");
|
||||
}
|
||||
} else if (strncmp(buf, "msg", 3) == 0) {
|
||||
if (RGA2_TEST_MSG) {
|
||||
RGA2_TEST_MSG = 0;
|
||||
DBG("close rga2 test MSG!\n");
|
||||
INFO("close rga2 test MSG!\n");
|
||||
} else {
|
||||
RGA2_TEST_MSG = 1;
|
||||
DBG("open rga2 test MSG!\n");
|
||||
INFO("open rga2 test MSG!\n");
|
||||
}
|
||||
} else if (strncmp(buf, "time", 4) == 0) {
|
||||
if (RGA2_TEST_TIME) {
|
||||
RGA2_TEST_TIME = 0;
|
||||
DBG("close rga2 test time!\n");
|
||||
INFO("close rga2 test time!\n");
|
||||
} else {
|
||||
RGA2_TEST_TIME = 1;
|
||||
DBG("open rga2 test time!\n");
|
||||
INFO("open rga2 test time!\n");
|
||||
}
|
||||
} else if (strncmp(buf, "check", 5) == 0) {
|
||||
if (RGA2_CHECK_MODE) {
|
||||
RGA2_CHECK_MODE = 0;
|
||||
DBG("close rga2 check flag!\n");
|
||||
INFO("close rga2 check flag!\n");
|
||||
} else {
|
||||
RGA2_CHECK_MODE = 1;
|
||||
DBG("open rga2 check flag!\n");
|
||||
INFO("open rga2 check flag!\n");
|
||||
}
|
||||
} else if (strncmp(buf, "stop", 4) == 0) {
|
||||
if (RGA2_NONUSE) {
|
||||
RGA2_NONUSE = 0;
|
||||
DBG("stop using rga hardware!\n");
|
||||
INFO("stop using rga hardware!\n");
|
||||
} else {
|
||||
RGA2_NONUSE = 1;
|
||||
DBG("use rga hardware!\n");
|
||||
INFO("use rga hardware!\n");
|
||||
}
|
||||
} else if (strncmp(buf, "int", 3) == 0) {
|
||||
if (RGA2_INT_FLAG) {
|
||||
RGA2_INT_FLAG = 0;
|
||||
DBG("close inturrupt MSG!\n");
|
||||
INFO("close inturrupt MSG!\n");
|
||||
} else {
|
||||
RGA2_INT_FLAG = 1;
|
||||
DBG("open inturrupt MSG!\n");
|
||||
INFO("open inturrupt MSG!\n");
|
||||
}
|
||||
} else if (strncmp(buf, "slt", 3) == 0) {
|
||||
rga2_slt();
|
||||
@@ -2363,9 +2371,9 @@ void rga2_slt(void)
|
||||
|
||||
memset(src_vir, 0x80, srcW * srcH * 4);
|
||||
|
||||
DBG("\n********************************\n");
|
||||
DBG("************ RGA_TEST ************\n");
|
||||
DBG("********************************\n\n");
|
||||
INFO("\n********************************\n");
|
||||
INFO("************ RGA_TEST ************\n");
|
||||
INFO("********************************\n\n");
|
||||
|
||||
req.src.act_w = srcW;
|
||||
req.src.act_h = srcH;
|
||||
@@ -2397,16 +2405,17 @@ void rga2_slt(void)
|
||||
pstd = (unsigned int *)src_vir;
|
||||
pnow = (unsigned int *)dst_vir;
|
||||
|
||||
DBG("[ num : srcInfo dstInfo ]\n");
|
||||
INFO("[ num : srcInfo dstInfo ]\n");
|
||||
for (i = 0; i < size / 4; i++) {
|
||||
if (*pstd != *pnow) {
|
||||
DBG("[X%.8d : 0x%x 0x%x]", i, *pstd, *pnow);
|
||||
INFO("[X%.8d : 0x%x 0x%x]", i, *pstd, *pnow);
|
||||
if (i % 4 == 0)
|
||||
DBG("\n");
|
||||
INFO("\n");
|
||||
err_count++;
|
||||
} else {
|
||||
if (i % (640 * 1024) == 0)
|
||||
DBG("[Y%.8d : 0x%.8x 0x%.8x]\n", i, *pstd, *pnow);
|
||||
INFO("[Y%.8d : 0x%.8x 0x%.8x]\n",
|
||||
i, *pstd, *pnow);
|
||||
right_count++;
|
||||
}
|
||||
pstd++;
|
||||
@@ -2415,11 +2424,11 @@ void rga2_slt(void)
|
||||
break;
|
||||
}
|
||||
|
||||
DBG("err_count=%d, right_count=%d\n", err_count, right_count);
|
||||
INFO("err_count=%d, right_count=%d\n", err_count, right_count);
|
||||
if (err_count != 0)
|
||||
DBG("rga slt err !!\n");
|
||||
INFO("rga slt err !!\n");
|
||||
else
|
||||
DBG("rga slt success !!\n");
|
||||
INFO("rga slt success !!\n");
|
||||
|
||||
ion_unmap_kernel(data->ion_client, src_handle);
|
||||
ion_unmap_kernel(data->ion_client, dst_handle);
|
||||
@@ -2468,9 +2477,9 @@ void rga2_slt(void)
|
||||
rga2_dma_flush_range(&src_buf[0], &src_buf[400 * 200]);
|
||||
rga2_dma_flush_range(&dst_buf[0], &dst_buf[400 * 200]);
|
||||
|
||||
DBG("\n********************************\n");
|
||||
DBG("************ RGA_TEST ************\n");
|
||||
DBG("********************************\n\n");
|
||||
INFO("\n********************************\n");
|
||||
INFO("************ RGA_TEST ************\n");
|
||||
INFO("********************************\n\n");
|
||||
|
||||
req.src.act_w = srcW;
|
||||
req.src.act_h = srcH;
|
||||
@@ -2501,16 +2510,17 @@ void rga2_slt(void)
|
||||
pstd = (unsigned int *)src_vir;
|
||||
pnow = (unsigned int *)dst_vir;
|
||||
|
||||
DBG("[ num : srcInfo dstInfo ]\n");
|
||||
INFO("[ num : srcInfo dstInfo ]\n");
|
||||
for (i = 0; i < size / 4; i++) {
|
||||
if (*pstd != *pnow) {
|
||||
DBG("[X%.8d : 0x%x 0x%x]", i, *pstd, *pnow);
|
||||
INFO("[X%.8d : 0x%x 0x%x]", i, *pstd, *pnow);
|
||||
if (i % 4 == 0)
|
||||
DBG("\n");
|
||||
INFO("\n");
|
||||
err_count++;
|
||||
} else {
|
||||
if (i % (640 * 1024) == 0)
|
||||
DBG("[Y%.8d : 0x%.8x 0x%.8x]\n", i, *pstd, *pnow);
|
||||
INFO("[Y%.8d : 0x%.8x 0x%.8x]\n",
|
||||
i, *pstd, *pnow);
|
||||
right_count++;
|
||||
}
|
||||
pstd++;
|
||||
@@ -2519,11 +2529,11 @@ void rga2_slt(void)
|
||||
break;
|
||||
}
|
||||
|
||||
DBG("err_count=%d, right_count=%d\n", err_count, right_count);
|
||||
INFO("err_count=%d, right_count=%d\n", err_count, right_count);
|
||||
if (err_count != 0)
|
||||
DBG("rga slt err !!\n");
|
||||
INFO("rga slt err !!\n");
|
||||
else
|
||||
DBG("rga slt success !!\n");
|
||||
INFO("rga slt success !!\n");
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -399,11 +399,11 @@ static int rga2_UserMemory_cheeck(struct page **pages, u32 w, u32 h, u32 format,
|
||||
tai_vaddr = (int *)vaddr + taidata_num / 4 - 1;
|
||||
}
|
||||
if (flag == 1) {
|
||||
printk(KERN_DEBUG "src user memory check\n");
|
||||
printk(KERN_DEBUG "tai data is %d\n", *tai_vaddr);
|
||||
pr_info("src user memory check\n");
|
||||
pr_info("tai data is %d\n", *tai_vaddr);
|
||||
} else {
|
||||
printk(KERN_DEBUG "dst user memory check\n");
|
||||
printk(KERN_DEBUG "tai data is %d\n", *tai_vaddr);
|
||||
pr_info("dst user memory check\n");
|
||||
pr_info("tai data is %d\n", *tai_vaddr);
|
||||
}
|
||||
if (taidata_num == 0)
|
||||
kunmap(pages[taipage_num - 1]);
|
||||
|
||||
Reference in New Issue
Block a user