From fe34816d57d6f1b4c6a6108ddfb3ec6985eced0b Mon Sep 17 00:00:00 2001 From: Ayoung Sim Date: Fri, 15 Jun 2018 16:07:28 +0900 Subject: [PATCH] [COMMON] media: mfc: DRV4.0: update prefix [QoS][TS] Change-Id: I7e5275f499170304eb86612ad776691f859f7686 Signed-off-by: Ayoung Sim --- drivers/media/platform/exynos/mfc/s5p_mfc.c | 6 +- .../media/platform/exynos/mfc/s5p_mfc_dec.c | 2 +- .../platform/exynos/mfc/s5p_mfc_enc_vb2_ops.c | 6 +- .../media/platform/exynos/mfc/s5p_mfc_irq.c | 16 ++-- .../media/platform/exynos/mfc/s5p_mfc_nal_q.c | 16 ++-- .../media/platform/exynos/mfc/s5p_mfc_otf.c | 3 +- .../media/platform/exynos/mfc/s5p_mfc_qos.c | 73 ++++++++++--------- 7 files changed, 64 insertions(+), 58 deletions(-) diff --git a/drivers/media/platform/exynos/mfc/s5p_mfc.c b/drivers/media/platform/exynos/mfc/s5p_mfc.c index 0a880ccae668..b14dabec48d8 100644 --- a/drivers/media/platform/exynos/mfc/s5p_mfc.c +++ b/drivers/media/platform/exynos/mfc/s5p_mfc.c @@ -1017,7 +1017,7 @@ static void mfc_parse_dt(struct device_node *np, struct s5p_mfc_dev *mfc) sizeof(struct s5p_mfc_qos_boost), GFP_KERNEL); np_qos = of_find_node_by_name(np, "mfc_perf_boost_table"); if (!np_qos) { - pr_err("%s: could not find mfc_perf_boost_table node\n", node_name); + pr_err("%s:[QoS] could not find mfc_perf_boost_table node\n", node_name); return; } of_property_read_u32(np_qos, "num_cluster", &pdata->qos_boost_table->num_cluster); @@ -1366,10 +1366,10 @@ static int s5p_mfc_probe(struct platform_device *pdev) #ifdef CONFIG_MFC_USE_BUS_DEVFREQ atomic_set(&dev->qos_req_cur, 0); - mfc_info_dev("QoS control: mfc_freq(%d), mo(%d), bw(%d)\n", + mfc_info_dev("[QoS] control: mfc_freq(%d), mo(%d), bw(%d)\n", dev->pdata->mfc_freq_control, dev->pdata->mo_control, dev->pdata->bw_control); for (i = 0; i < dev->pdata->num_qos_steps; i++) { - mfc_info_dev("QoS table[%d] mfc: %d, int : %d, mif : %d\n", + mfc_info_dev("[QoS] table[%d] mfc: %d, int : %d, mif : %d\n", i, dev->pdata->qos_table[i].freq_mfc, dev->pdata->qos_table[i].freq_int, diff --git a/drivers/media/platform/exynos/mfc/s5p_mfc_dec.c b/drivers/media/platform/exynos/mfc/s5p_mfc_dec.c index 57c51bc76640..ff951b3c526b 100644 --- a/drivers/media/platform/exynos/mfc/s5p_mfc_dec.c +++ b/drivers/media/platform/exynos/mfc/s5p_mfc_dec.c @@ -1080,7 +1080,7 @@ static int vidioc_s_ctrl(struct file *file, void *priv, break; case V4L2_CID_MPEG_VIDEO_QOS_RATIO: ctx->qos_ratio = ctrl->value; - mfc_info_ctx("set %d qos_ratio.\n", ctrl->value); + mfc_info_ctx("[QoS] set %d qos_ratio\n", ctrl->value); break; case V4L2_CID_MPEG_MFC_SET_DYNAMIC_DPB_MODE: dec->is_dynamic_dpb = ctrl->value; diff --git a/drivers/media/platform/exynos/mfc/s5p_mfc_enc_vb2_ops.c b/drivers/media/platform/exynos/mfc/s5p_mfc_enc_vb2_ops.c index b995e647aa76..f4ad41562a7d 100644 --- a/drivers/media/platform/exynos/mfc/s5p_mfc_enc_vb2_ops.c +++ b/drivers/media/platform/exynos/mfc/s5p_mfc_enc_vb2_ops.c @@ -438,9 +438,9 @@ static void s5p_mfc_enc_buf_queue(struct vb2_buffer *vb) } else if (vq->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) { s5p_mfc_add_tail_buf(&ctx->buf_queue_lock, &ctx->src_buf_queue, buf); - mfc_debug(7, "framerate: %ld, timestamp: %lld\n", - ctx->framerate, buf->vb.vb2_buf.timestamp); - mfc_debug(7, "qos ratio: %d\n", ctx->qos_ratio); + if (debug_ts == 1) + mfc_info_ctx("[TS] framerate: %ld, timestamp: %lld\n", + ctx->framerate, buf->vb.vb2_buf.timestamp); s5p_mfc_qos_update_last_framerate(ctx, buf->vb.vb2_buf.timestamp); s5p_mfc_qos_update_framerate(ctx); diff --git a/drivers/media/platform/exynos/mfc/s5p_mfc_irq.c b/drivers/media/platform/exynos/mfc/s5p_mfc_irq.c index 0669cf9ee036..7fb909ff0c22 100644 --- a/drivers/media/platform/exynos/mfc/s5p_mfc_irq.c +++ b/drivers/media/platform/exynos/mfc/s5p_mfc_irq.c @@ -174,7 +174,7 @@ static void mfc_handle_frame_copy_timestamp(struct s5p_mfc_ctx *ctx) /* Get the source buffer */ src_mb = s5p_mfc_get_buf(&ctx->buf_queue_lock, &ctx->src_buf_queue, MFC_BUF_NO_TOUCH_USED); if (!src_mb) { - mfc_err_dev("no src buffers.\n"); + mfc_err_dev("[TS] no src buffers\n"); return; } @@ -728,24 +728,26 @@ static void mfc_handle_stream_copy_timestamp(struct s5p_mfc_ctx *ctx, struct s5p u64 new_timestamp; if (!ctx) { - mfc_err_dev("no mfc context to run\n"); + mfc_err_dev("[TS] no mfc context to run\n"); return; } dev = ctx->dev; if (!dev) { - mfc_err_dev("no device to run\n"); + mfc_err_dev("[TS] no device to run\n"); return; } start_timestamp = src_mb->vb.vb2_buf.timestamp; interval = NSEC_PER_SEC / (ENC_DEFAULT_CAM_VIDEO_FPS / 1000); - mfc_debug(3, "%dfps, start timestamp: %lld, base interval: %lld\n", - (ENC_DEFAULT_CAM_VIDEO_FPS / 1000), start_timestamp, interval); + if (debug_ts == 1) + mfc_info_ctx("[TS] %dfps, start timestamp: %lld, base interval: %lld\n", + (ENC_DEFAULT_CAM_VIDEO_FPS / 1000), start_timestamp, interval); new_timestamp = start_timestamp + (interval * src_mb->done_index); - mfc_debug(3, "new timestamp: %lld, interval: %lld\n", - new_timestamp, interval * src_mb->done_index); + if (debug_ts == 1) + mfc_info_ctx("[TS] new timestamp: %lld, interval: %lld\n", + new_timestamp, interval * src_mb->done_index); /* Get the destination buffer */ dst_mb = s5p_mfc_get_buf(&ctx->buf_queue_lock, &ctx->dst_buf_queue, MFC_BUF_NO_TOUCH_USED); diff --git a/drivers/media/platform/exynos/mfc/s5p_mfc_nal_q.c b/drivers/media/platform/exynos/mfc/s5p_mfc_nal_q.c index c05e438fe3f5..d774689a7fbf 100644 --- a/drivers/media/platform/exynos/mfc/s5p_mfc_nal_q.c +++ b/drivers/media/platform/exynos/mfc/s5p_mfc_nal_q.c @@ -873,24 +873,26 @@ static void mfc_nal_q_handle_stream_copy_timestamp(struct s5p_mfc_ctx *ctx, stru u64 new_timestamp; if (!ctx) { - mfc_err_dev("NAL Q: no mfc context to run\n"); + mfc_err_dev("NAL Q:[TS] no mfc context to run\n"); return; } dev = ctx->dev; if (!dev) { - mfc_err_dev("NAL Q: no device to run\n"); + mfc_err_dev("NAL Q:[TS] no device to run\n"); return; } start_timestamp = src_mb->vb.vb2_buf.timestamp; interval = NSEC_PER_SEC / (ENC_DEFAULT_CAM_VIDEO_FPS / 1000); - mfc_debug(3, "NAL Q: %dfps, start timestamp: %lld, base interval: %lld\n", - (ENC_DEFAULT_CAM_VIDEO_FPS / 1000), start_timestamp, interval); + if (debug_ts == 1) + mfc_info_ctx("NAL Q:[TS] %dfps, start timestamp: %lld, base interval: %lld\n", + (ENC_DEFAULT_CAM_VIDEO_FPS / 1000), start_timestamp, interval); new_timestamp = start_timestamp + (interval * src_mb->done_index); - mfc_debug(3, "NAL Q: new timestamp: %lld, interval: %lld\n", - new_timestamp, interval * src_mb->done_index); + if (debug_ts == 1) + mfc_info_ctx("NAL Q:[TS] new timestamp: %lld, interval: %lld\n", + new_timestamp, interval * src_mb->done_index); /* Get the destination buffer */ dst_mb = s5p_mfc_get_buf(&ctx->buf_queue_lock, &ctx->dst_buf_nal_queue, MFC_BUF_NO_TOUCH_USED); @@ -1164,7 +1166,7 @@ static void mfc_nal_q_handle_frame_copy_timestamp(struct s5p_mfc_ctx *ctx, Decod mfc_debug_enter(); if (!ctx) { - mfc_err_dev("no mfc context to run\n"); + mfc_err_dev("[TS] no mfc context to run\n"); return; } diff --git a/drivers/media/platform/exynos/mfc/s5p_mfc_otf.c b/drivers/media/platform/exynos/mfc/s5p_mfc_otf.c index fd0c9da2e83c..d8ec3015eb14 100644 --- a/drivers/media/platform/exynos/mfc/s5p_mfc_otf.c +++ b/drivers/media/platform/exynos/mfc/s5p_mfc_otf.c @@ -693,7 +693,8 @@ int s5p_mfc_hwfc_encode(int buf_index, int job_id, struct encoding_param *param) #ifdef CONFIG_VIDEO_EXYNOS_TSMUX packet_param.time_stamp = param->time_stamp; - mfc_debug(2, "OTF: timestamp: %llu\n", param->time_stamp); + if (debug_ts == 1) + mfc_info_ctx("OTF:[TS] timestamp: %llu\n", param->time_stamp); if (packetize(&packet_param)) { mfc_err_dev("OTF: packetize failed\n"); return -HWFC_ERR_TSMUX; diff --git a/drivers/media/platform/exynos/mfc/s5p_mfc_qos.c b/drivers/media/platform/exynos/mfc/s5p_mfc_qos.c index 844efd2944bc..b5e9d0f1c5a9 100644 --- a/drivers/media/platform/exynos/mfc/s5p_mfc_qos.c +++ b/drivers/media/platform/exynos/mfc/s5p_mfc_qos.c @@ -45,7 +45,7 @@ void s5p_mfc_perf_boost_enable(struct s5p_mfc_dev *dev) qos_boost_table->freq_int); pm_qos_add_request(&dev->qos_req_mif, PM_QOS_BUS_THROUGHPUT, qos_boost_table->freq_mif); - mfc_debug(3, "[QoS][perf_boost] DVFS mfc: %d, int:%d, mif:%d\n", + mfc_debug(3, "[QoS][BOOST] DVFS mfc: %d, int:%d, mif:%d\n", qos_boost_table->freq_mfc, qos_boost_table->freq_int, qos_boost_table->freq_mif); } @@ -54,7 +54,7 @@ void s5p_mfc_perf_boost_enable(struct s5p_mfc_dev *dev) if (perf_boost_mode & MFC_PERF_BOOST_MO) { if (pdata->mo_control) { bts_update_scen(BS_MFC_UHD_10BIT, 1); - mfc_debug(3, "[QoS][perf_boost] BTS(MO): UHD_10BIT\n"); + mfc_debug(3, "[QoS][BOOST] BTS(MO): UHD_10BIT\n"); } } #endif @@ -63,7 +63,7 @@ void s5p_mfc_perf_boost_enable(struct s5p_mfc_dev *dev) for (i = 0; i < qos_boost_table->num_cluster; i++) { pm_qos_add_request(&dev->qos_req_cluster[i], PM_QOS_CLUSTER0_FREQ_MIN + (i * 2), qos_boost_table->freq_cluster[i]); - mfc_debug(3, "[QoS][perf_boost] CPU cluster[%d]: %d\n", + mfc_debug(3, "[QoS][BOOST] CPU cluster[%d]: %d\n", i, qos_boost_table->freq_cluster[i]); } } @@ -79,14 +79,14 @@ void s5p_mfc_perf_boost_disable(struct s5p_mfc_dev *dev) pm_qos_remove_request(&dev->qos_req_mfc); pm_qos_remove_request(&dev->qos_req_int); pm_qos_remove_request(&dev->qos_req_mif); - mfc_debug(3, "[QoS][perf_boost] DVFS off\n"); + mfc_debug(3, "[QoS][BOOST] DVFS off\n"); } #ifdef CONFIG_EXYNOS_BTS if (perf_boost_mode & MFC_PERF_BOOST_MO) { if (pdata->mo_control) { bts_update_scen(BS_MFC_UHD_10BIT, 0); - mfc_debug(3, "[QoS][perf_boost] BTS(MO) off\n"); + mfc_debug(3, "[QoS][BOOST] BTS(MO) off\n"); } } #endif @@ -94,7 +94,7 @@ void s5p_mfc_perf_boost_disable(struct s5p_mfc_dev *dev) if (perf_boost_mode & MFC_PERF_BOOST_CPU) { for (i = 0; i < pdata->qos_boost_table->num_cluster; i++) { pm_qos_remove_request(&dev->qos_req_cluster[i]); - mfc_debug(3, "[QoS][perf_boost] CPU cluster[%d] off\n", i); + mfc_debug(3, "[QoS][BOOST] CPU cluster[%d] off\n", i); } } } @@ -208,7 +208,7 @@ static void mfc_qos_operate(struct s5p_mfc_ctx *ctx, int opr_type, int idx) #endif break; default: - mfc_err_ctx("Unknown request for opr [%d]\n", opr_type); + mfc_err_ctx("[QoS] Unknown request for opr [%d]\n", opr_type); break; } } @@ -223,7 +223,7 @@ static void mfc_qos_set(struct s5p_mfc_ctx *ctx, int i) struct s5p_mfc_platdata *pdata = dev->pdata; struct s5p_mfc_qos *qos_table = pdata->qos_table; - mfc_debug(2, "QoS table[%d] covered mb %d ~ %d (mfc: %d, int:%d, mif:%d)\n", + mfc_debug(2, "[QoS] table[%d] covered mb %d ~ %d (mfc: %d, int:%d, mif:%d)\n", i, qos_table[i].threshold_mb, i == pdata->num_qos_steps - 1 ? pdata->max_mb : qos_table[i + 1].threshold_mb, @@ -297,30 +297,30 @@ static inline unsigned long mfc_qos_get_weighted_mb(struct s5p_mfc_ctx *ctx, break; default: - mfc_err_ctx("wrong codec_mode (%d), no weight\n", ctx->codec_mode); + mfc_err_ctx("[QoS] wrong codec_mode (%d), no weight\n", ctx->codec_mode); } if (enc) { p = &enc->params; if ((IS_H264_ENC(ctx) || IS_HEVC_ENC(ctx)) && p->num_b_frame) { weight = (weight * 100) / MFC_QOS_WEIGHT_BFRAME; - mfc_debug(3, "QoS weight: B frame encoding\n"); + mfc_debug(3, "[QoS] weight: B frame encoding\n"); } if ((IS_H264_ENC(ctx) || IS_HEVC_ENC(ctx) || IS_VP8_ENC(ctx) || IS_VP9_ENC(ctx)) && (p->num_refs_for_p >= 2)) { weight = (weight * 100) / MFC_QOS_WEIGHT_NUM_OF_REF; - mfc_debug(3, "QoS weight: num of ref >= 2\n"); + mfc_debug(3, "[QoS] weight: num of ref >= 2\n"); } } if (dec) { if (dec->num_of_tile_over_4) { weight = (weight * 100) / MFC_QOS_WEIGHT_NUM_OF_TILE; - mfc_debug(3, "QoS weight: num of tile >= 4\n"); + mfc_debug(3, "[QoS] weight: num of tile >= 4\n"); } } weighted_mb = (mb * weight) / 1000; - mfc_debug(3, "QoS weight: %d.%03d, codec: %d, num planes: %d, " + mfc_debug(3, "[QoS] weight: %d.%03d, codec: %d, num planes: %d, " "10bit: %d, 422format: %d (mb: %ld)\n", weight / 1000, weight % 1000, ctx->codec_mode, num_planes, ctx->is_10bit, ctx->is_422, @@ -339,7 +339,7 @@ static inline unsigned long mfc_qos_get_mb_per_second(struct s5p_mfc_ctx *ctx) fps = ctx->framerate / 1000; mb = mb_width * mb_height * fps; - mfc_debug(4, "QoS ctx[%d:%s] %d x %d @ %ld fps (mb: %ld)\n", + mfc_debug(4, "[QoS] ctx[%d:%s] %d x %d @ %ld fps (mb: %ld)\n", ctx->num, ctx->type == MFCINST_ENCODER ? "ENC" : "DEC", ctx->crop_width, ctx->crop_height, fps, mb); @@ -433,11 +433,11 @@ static void mfc_qos_get_bw_per_second(struct s5p_mfc_ctx *ctx, struct bts_bw *mf bw_data.peak = 0; bw_data.read = 0; bw_data.write = 0; - mfc_err_ctx("wrong codec_mode (%d)\n", ctx->codec_mode); + mfc_err_ctx("[QoS] wrong codec_mode (%d)\n", ctx->codec_mode); } if (mb > (mb_count_per_uhd_frame * max_fps_per_uhd_frame)) { - mfc_debug(2, "fix upper mb bound (mb: %ld, fps: %ld)\n", mb, fps); + mfc_debug(4, "[QoS] fix upper mb bound (mb: %ld, fps: %ld)\n", mb, fps); mb = mb_count_per_uhd_frame * max_fps_per_uhd_frame; } @@ -446,15 +446,15 @@ static void mfc_qos_get_bw_per_second(struct s5p_mfc_ctx *ctx, struct bts_bw *mf write_bw_per_sec = (bw_data.write * mb) / mb_count_per_uhd_frame; if (peak_bw_per_sec == 0) { - mfc_debug(2, "fix lower peak bound (mb: %ld, fps: %ld)\n", mb, fps); + mfc_debug(4, "[QoS] fix lower peak bound (mb: %ld, fps: %ld)\n", mb, fps); peak_bw_per_sec = MIN_BW_PER_SEC; } if (read_bw_per_sec == 0) { - mfc_debug(2, "fix lower read bound (mb: %ld, fps: %ld)\n", mb, fps); + mfc_debug(4, "[QoS] fix lower read bound (mb: %ld, fps: %ld)\n", mb, fps); read_bw_per_sec = MIN_BW_PER_SEC; } if (write_bw_per_sec == 0) { - mfc_debug(2, "fix lower write bound (mb: %ld, fps: %ld)\n", mb, fps); + mfc_debug(4, "[QoS] fix lower write bound (mb: %ld, fps: %ld)\n", mb, fps); write_bw_per_sec = MIN_BW_PER_SEC; } @@ -479,7 +479,7 @@ void s5p_mfc_qos_on(struct s5p_mfc_ctx *ctx) #endif if (perf_boost_mode) { - mfc_info_ctx("[QoS][perf_boost] skip control\n"); + mfc_info_ctx("[QoS][BOOST] skip control\n"); return; } @@ -520,7 +520,7 @@ void s5p_mfc_qos_on(struct s5p_mfc_ctx *ctx) total_mb = ((1000000 * hw_mb) / (1000000 - (total_fps * sw_time))); - mfc_debug(4, "QoS table[%d] fw_time: %dus, hw_mb: %ld, " + mfc_debug(4, "[QoS] table[%d] fw_time: %dus, hw_mb: %ld, " "sw_time: %d, total_fps: %ld, total_mb: %ld\n", i, fw_time, hw_mb, sw_time, total_fps, total_mb); @@ -529,7 +529,7 @@ void s5p_mfc_qos_on(struct s5p_mfc_ctx *ctx) } if (total_mb > pdata->max_mb) - mfc_debug(4, "QoS overspec mb %ld > %d\n", total_mb, pdata->max_mb); + mfc_debug(4, "[QoS] overspec mb %ld > %d\n", total_mb, pdata->max_mb); #ifdef CONFIG_EXYNOS_BTS mfc_qos_set(ctx, &mfc_bw, i); @@ -553,13 +553,13 @@ void s5p_mfc_qos_off(struct s5p_mfc_ctx *ctx) #endif if (perf_boost_mode) { - mfc_info_ctx("[QoS][perf_boost] skip control\n"); + mfc_info_ctx("[QoS][BOOST] skip control\n"); return; } if (list_empty(&dev->qos_queue)) { if (atomic_read(&dev->qos_req_cur) != 0) { - mfc_err_ctx("MFC request count is wrong!\n"); + mfc_err_ctx("[QoS] MFC request count is wrong!\n"); mfc_qos_operate(ctx, MFC_QOS_REMOVE, 0); } return; @@ -599,7 +599,7 @@ void s5p_mfc_qos_off(struct s5p_mfc_ctx *ctx) sw_time = (MFC_DRV_TIME + fw_time); total_mb = ((1000000 * hw_mb) / (1000000 - (total_fps * sw_time))); - mfc_debug(4, "QoS table[%d] fw_time: %dus, hw_mb: %ld, " + mfc_debug(4, "[QoS] table[%d] fw_time: %dus, hw_mb: %ld, " "sw_time: %d, total_fps: %ld, total_mb: %ld\n", i, fw_time, hw_mb, sw_time, total_fps, total_mb); @@ -608,7 +608,7 @@ void s5p_mfc_qos_off(struct s5p_mfc_ctx *ctx) } if (total_mb > pdata->max_mb) - mfc_debug(4, "QoS overspec mb %ld > %d\n", total_mb, pdata->max_mb); + mfc_debug(4, "[QoS] overspec mb %ld > %d\n", total_mb, pdata->max_mb); if (found) list_del(&ctx->qos_list); @@ -733,14 +733,15 @@ static unsigned long mfc_qos_get_fps_by_timestamp(struct s5p_mfc_ctx *ctx, struc if (debug_ts == 1) { /* Debug info */ - mfc_info_ctx("======================================\n"); - mfc_info_ctx("New timestamp = %ld.%06ld, count = %d \n", + mfc_info_ctx("===================[TS]===================\n"); + mfc_info_ctx("[TS] New timestamp = %ld.%06ld, count = %d \n", time->tv_sec, time->tv_usec, ctx->ts_count); } if (IS_BUFFER_BATCH_MODE(ctx)) { - mfc_debug(3, "Keep framerate if buffer batch mode is used, %ldfps\n", - ctx->framerate); + if (debug_ts == 1) + mfc_info_ctx("[TS] Keep framerate if buffer batch mode is used, %ldfps\n", + ctx->framerate); return ctx->framerate; } @@ -778,22 +779,22 @@ static unsigned long mfc_qos_get_fps_by_timestamp(struct s5p_mfc_ctx *ctx, struc /* Debug info */ index = 0; list_for_each_entry(temp_ts, &ctx->ts_list, list) { - mfc_info_ctx("[%d] timestamp [i:%d]: %ld.%06ld\n", + mfc_info_ctx("[TS] [%d] timestamp [i:%d]: %ld.%06ld\n", index, temp_ts->index, temp_ts->timestamp.tv_sec, temp_ts->timestamp.tv_usec); index++; } - mfc_info_ctx("Min interval = %d, It is %ld fps\n", + mfc_info_ctx("[TS] Min interval = %d, It is %ld fps\n", min_interval, max_framerate); } else if (debug_ts == 2) { - mfc_info_ctx("Min interval = %d, It is %ld fps\n", + mfc_info_ctx("[TS] Min interval = %d, It is %ld fps\n", min_interval, max_framerate); } if (!ctx->ts_is_full) { if (debug_ts == 1) - mfc_info_ctx("ts doesn't full, keep %ld fps\n", ctx->framerate); + mfc_info_ctx("[TS] ts doesn't full, keep %ld fps\n", ctx->framerate); return ctx->framerate; } @@ -803,8 +804,8 @@ static unsigned long mfc_qos_get_fps_by_timestamp(struct s5p_mfc_ctx *ctx, struc void s5p_mfc_qos_update_framerate(struct s5p_mfc_ctx *ctx) { if (ctx->last_framerate != 0 && ctx->last_framerate != ctx->framerate) { - mfc_debug(2, "fps changed: %ld -> %ld\n", - ctx->framerate, ctx->last_framerate); + mfc_debug(2, "[QoS] fps changed: %ld -> %ld, qos ratio: %d\n", + ctx->framerate, ctx->last_framerate, ctx->qos_ratio); ctx->framerate = ctx->last_framerate; s5p_mfc_qos_on(ctx); } -- 2.20.1