diff --git a/msm/eva/msm_cvp_buf.c b/msm/eva/msm_cvp_buf.c index df49bc5e7f..491bf2bc4e 100644 --- a/msm/eva/msm_cvp_buf.c +++ b/msm/eva/msm_cvp_buf.c @@ -1917,7 +1917,7 @@ int cvp_release_arp_buffers(struct msm_cvp_inst *inst) __func__, rc); mutex_lock(&inst->persistbufs.lock); } else { - dprintk(CVP_WARN, "Fail to send Rel prst buf\n"); + dprintk_rl(CVP_WARN, "Fail to send Rel prst buf\n"); } } diff --git a/msm/eva/msm_cvp_core.c b/msm/eva/msm_cvp_core.c index 1fbeef440d..ef549ecd58 100644 --- a/msm/eva/msm_cvp_core.c +++ b/msm/eva/msm_cvp_core.c @@ -182,7 +182,7 @@ void *msm_cvp_open(int core_id, int session_type, struct task_struct *task) goto err_invalid_core; } - pr_info( + pr_info_ratelimited( CVP_DBG_TAG "%s opening cvp instance: %pK type %d cnt %d\n", "sess", task->comm, inst, session_type, instance_count); mutex_init(&inst->sync_lock); @@ -356,7 +356,7 @@ wait_frame: } if (cvp_release_arp_buffers(inst)) - dprintk(CVP_ERR, + dprintk_rl(CVP_WARN, "Failed to release persist buffers\n"); if (inst->prop.type == HFI_SESSION_FD @@ -412,7 +412,7 @@ int msm_cvp_destroy(struct msm_cvp_inst *inst) __deinit_fence_queue(inst); core->synx_ftbl->cvp_sess_deinit_synx(inst); - pr_info( + pr_info_ratelimited( CVP_DBG_TAG "closed cvp instance: %pK session_id = %d type %d %d\n", inst->proc_name, inst, hash32_ptr(inst->session), @@ -448,7 +448,7 @@ int msm_cvp_close(void *instance) int rc = 0; if (!inst || !inst->core) { - dprintk(CVP_ERR, "%s: invalid params\n", __func__); + dprintk_rl(CVP_ERR, "%s: invalid params\n", __func__); return -EINVAL; } diff --git a/msm/eva/msm_cvp_debug.h b/msm/eva/msm_cvp_debug.h index ceaf821bd3..ce75d2ded2 100644 --- a/msm/eva/msm_cvp_debug.h +++ b/msm/eva/msm_cvp_debug.h @@ -82,6 +82,18 @@ extern bool cvp_kernel_fence_enabled; } \ } while (0) +/* dprintk_rl is designed for printing frequent recurring errors */ +#define dprintk_rl(__level, __fmt, arg...) \ + do { \ + if (msm_cvp_debug & __level) { \ + if (msm_cvp_debug_out == CVP_OUT_PRINTK) { \ + pr_info_ratelimited(CVP_DBG_TAG __fmt, \ + get_debug_level_str(__level), \ + ## arg); \ + } \ + } \ + } while (0) + #define MSM_CVP_ERROR(value) \ do { if (value) \ dprintk(CVP_ERR, "BugOn"); \ diff --git a/msm/eva/msm_cvp_ioctl.c b/msm/eva/msm_cvp_ioctl.c index e273b92821..437b4bc6cf 100644 --- a/msm/eva/msm_cvp_ioctl.c +++ b/msm/eva/msm_cvp_ioctl.c @@ -302,7 +302,7 @@ static int convert_from_user(struct eva_kmd_arg *kp, int pkt_idx; if (!kp || !up) { - dprintk(CVP_ERR, "%s: invalid params\n", __func__); + dprintk_rl(CVP_ERR, "%s: invalid params\n", __func__); return -EINVAL; } @@ -439,7 +439,7 @@ static int convert_from_user(struct eva_kmd_arg *kp, break; } default: - dprintk(CVP_ERR, "%s: unknown cmd type 0x%x\n", + dprintk_rl(CVP_ERR, "%s: unknown cmd type 0x%x\n", __func__, kp->type); rc = -EINVAL; break; @@ -615,7 +615,7 @@ static long cvp_ioctl(struct msm_cvp_inst *inst, return -ENOMEM; if (convert_from_user(karg, arg, inst)) { - dprintk(CVP_ERR, "%s: failed to get from user cmd %x\n", + dprintk_rl(CVP_ERR, "%s: failed to get from user cmd %x\n", __func__, karg->type); kfree(karg); return -EFAULT;