summaryrefslogtreecommitdiff
authorTao Guo <tao.guo@amlogic.com>2019-01-17 06:03:37 (GMT)
committer Shen Liu <shen.liu@amlogic.com>2019-04-04 11:16:13 (GMT)
commit84ced1ae65628216fd8d81807eb3fe5a5d36daa2 (patch)
treee9fdd732139b6c66611f08671ea82d011f2d6c98
parente05ed2ac6c67f34141be80f0d22ea4c270707a1e (diff)
downloadmedia_modules-84ced1ae65628216fd8d81807eb3fe5a5d36daa2.zip
media_modules-84ced1ae65628216fd8d81807eb3fe5a5d36daa2.tar.gz
media_modules-84ced1ae65628216fd8d81807eb3fe5a5d36daa2.tar.bz2
media_module: add atrace print [1/1]
PD#SWPL-4956 Problem: Need atrace to debug multimedia issue Solution: Add atrace prints Verify: P212 Change-Id: Idd414734dd88223c3640878be26a82991f44a880 Signed-off-by: Tao Guo <tao.guo@amlogic.com>
Diffstat
-rw-r--r--drivers/frame_provider/decoder/avs/avs.c6
-rw-r--r--drivers/frame_provider/decoder/avs2/vavs2.c2
-rw-r--r--drivers/frame_provider/decoder/h264/vh264.c7
-rw-r--r--drivers/frame_provider/decoder/h264/vh264_4k2k.c5
-rw-r--r--drivers/frame_provider/decoder/h264_multi/vmh264.c7
-rw-r--r--drivers/frame_provider/decoder/h265/vh265.c12
-rw-r--r--drivers/frame_provider/decoder/mjpeg/vmjpeg.c6
-rw-r--r--drivers/frame_provider/decoder/mjpeg/vmjpeg_multi.c5
-rw-r--r--drivers/frame_provider/decoder/mpeg12/vmpeg12.c7
-rw-r--r--drivers/frame_provider/decoder/mpeg4/vmpeg4.c6
-rw-r--r--drivers/frame_provider/decoder/mpeg4/vmpeg4_multi.c6
-rw-r--r--drivers/frame_provider/decoder/real/vreal.c4
-rw-r--r--drivers/frame_provider/decoder/utils/vdec_input.c4
-rw-r--r--drivers/frame_provider/decoder/utils/vdec_profile.c2
-rw-r--r--drivers/frame_provider/decoder/vc1/vvc1.c6
-rw-r--r--drivers/frame_provider/decoder/vp9/vvp9.c4
16 files changed, 85 insertions, 4 deletions
diff --git a/drivers/frame_provider/decoder/avs/avs.c b/drivers/frame_provider/decoder/avs/avs.c
index b8bf8e4..7e15114 100644
--- a/drivers/frame_provider/decoder/avs/avs.c
+++ b/drivers/frame_provider/decoder/avs/avs.c
@@ -45,6 +45,9 @@
#include "../../../common/chips/decoder_cpu_ver_info.h"
#include <linux/amlogic/tee.h>
+
+#include <trace/events/meson_atrace.h>
+
#define DRIVER_NAME "amvdec_avs"
#define MODULE_NAME "amvdec_avs"
@@ -585,6 +588,7 @@ static void vavs_isr(void)
kfifo_put(&display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(PROVIDER_NAME,
VFRAME_EVENT_PROVIDER_VFRAME_READY,
NULL);
@@ -643,6 +647,7 @@ static void vavs_isr(void)
kfifo_put(&display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(PROVIDER_NAME,
VFRAME_EVENT_PROVIDER_VFRAME_READY,
NULL);
@@ -720,6 +725,7 @@ static void vavs_isr(void)
buffer_index);
kfifo_put(&display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(PROVIDER_NAME,
VFRAME_EVENT_PROVIDER_VFRAME_READY,
NULL);
diff --git a/drivers/frame_provider/decoder/avs2/vavs2.c b/drivers/frame_provider/decoder/avs2/vavs2.c
index 275dfc2..8949a97 100644
--- a/drivers/frame_provider/decoder/avs2/vavs2.c
+++ b/drivers/frame_provider/decoder/avs2/vavs2.c
@@ -56,6 +56,7 @@
#include "../utils/firmware.h"
#include "../../../common/chips/decoder_cpu_ver_info.h"
#include <linux/amlogic/tee.h>
+#include <trace/events/meson_atrace.h>
#define MIX_STREAM_SUPPORT
#define G12A_BRINGUP_DEBUG
@@ -4427,6 +4428,7 @@ static int avs2_prepare_display_buf(struct AVS2Decoder_s *dec)
set_vframe(dec, vf, pic, 0);
kfifo_put(&dec->display_q, (const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
#ifndef CONFIG_AMLOGIC_MEDIA_MULTI_DEC
/*count info*/
diff --git a/drivers/frame_provider/decoder/h264/vh264.c b/drivers/frame_provider/decoder/h264/vh264.c
index bc49465..345bcfe 100644
--- a/drivers/frame_provider/decoder/h264/vh264.c
+++ b/drivers/frame_provider/decoder/h264/vh264.c
@@ -56,6 +56,9 @@
#include <linux/amlogic/tee.h>
#include "../../../common/chips/decoder_cpu_ver_info.h"
+#include <trace/events/meson_atrace.h>
+
+
#define DRIVER_NAME "amvdec_h264"
#define MODULE_NAME "amvdec_h264"
#define MEM_NAME "codec_264"
@@ -479,6 +482,7 @@ static void prepare_display_q(void)
if (kfifo_get(&delay_display_q, &vf)) {
kfifo_put(&display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(PROVIDER_NAME,
VFRAME_EVENT_PROVIDER_VFRAME_READY, NULL);
}
@@ -2920,6 +2924,7 @@ static void stream_switching_do(struct work_struct *work)
if (kfifo_get(&delay_display_q, &vf)) {
kfifo_put(&display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(PROVIDER_NAME,
VFRAME_EVENT_PROVIDER_VFRAME_READY, NULL);
} else
@@ -3001,7 +3006,7 @@ static void stream_switching_do(struct work_struct *work)
/* send clone to receiver */
kfifo_put(&display_q,
(const struct vframe_s *)&fense_vf[i]);
-
+ ATRACE_COUNTER(MODULE_NAME, fense_vf[i].pts);
/* early recycle frames for last session */
if (delay)
vh264_vf_put(vf, NULL);
diff --git a/drivers/frame_provider/decoder/h264/vh264_4k2k.c b/drivers/frame_provider/decoder/h264/vh264_4k2k.c
index cbbe36f..897147f 100644
--- a/drivers/frame_provider/decoder/h264/vh264_4k2k.c
+++ b/drivers/frame_provider/decoder/h264/vh264_4k2k.c
@@ -59,6 +59,9 @@
#include <linux/amlogic/media/codec_mm/codec_mm.h>
#include <linux/amlogic/media/codec_mm/configs.h>
+#include <trace/events/meson_atrace.h>
+
+
#if 0 /* MESON_CPU_TYPE == MESON_CPU_TYPE_MESON6TVD */
#define DOUBLE_WRITE
#endif
@@ -74,7 +77,6 @@
#define VF_BUFFER_IDX(n) (2 + n)
#define DECODER_WORK_SPACE_SIZE 0x800000
-
#if 1 /* MESON_CPU_TYPE == MESON_CPU_TYPE_MESONG9TV */
#define H264_4K2K_SINGLE_CORE 1
#else
@@ -764,6 +766,7 @@ static irqreturn_t vh264_4k2k_isr(int irq, void *dev_id)
VF_BUFFER_IDX(display_buff_id));
kfifo_put(&display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(PROVIDER_NAME,
VFRAME_EVENT_PROVIDER_VFRAME_READY,
diff --git a/drivers/frame_provider/decoder/h264_multi/vmh264.c b/drivers/frame_provider/decoder/h264_multi/vmh264.c
index 22696db..003658d 100644
--- a/drivers/frame_provider/decoder/h264_multi/vmh264.c
+++ b/drivers/frame_provider/decoder/h264_multi/vmh264.c
@@ -61,6 +61,9 @@
#include "../../../common/chips/decoder_cpu_ver_info.h"
#include <linux/crc32.h>
+#include <trace/events/meson_atrace.h>
+
+
#undef pr_info
#define pr_info printk
#define VDEC_DW
@@ -2559,7 +2562,7 @@ int prepare_display_buf(struct vdec_s *vdec, struct FrameStore *frame)
}
kfifo_put(&hw->display_q, (const struct vframe_s *)vf);
-
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
hw->vf_pre_count++;
vf_notify_receiver(vdec->vf_provider_name,
VFRAME_EVENT_PROVIDER_VFRAME_READY, NULL);
@@ -2596,6 +2599,8 @@ int notify_v4l_eos(struct vdec_s *vdec)
vf->flag = VFRAME_FLAG_EMPTY_FRAME_V4L;
kfifo_put(&hw->display_q, (const struct vframe_s *)vf);
+
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(vdec->vf_provider_name,
VFRAME_EVENT_PROVIDER_VFRAME_READY, NULL);
diff --git a/drivers/frame_provider/decoder/h265/vh265.c b/drivers/frame_provider/decoder/h265/vh265.c
index 49fe2dc..e991954 100644
--- a/drivers/frame_provider/decoder/h265/vh265.c
+++ b/drivers/frame_provider/decoder/h265/vh265.c
@@ -46,6 +46,7 @@
#include "../utils/config_parser.h"
#include "../utils/firmware.h"
#include "../../../common/chips/decoder_cpu_ver_info.h"
+#include <trace/events/meson_atrace.h>
#define SWAP_HEVC_UCODE
#define DETREFILL_ENABLE
@@ -7382,6 +7383,7 @@ static int process_pending_vframe(struct hevc_state_s *hevc,
__func__, vf->index);
hevc->vf_pre_count++;
kfifo_put(&hevc->display_q, (const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
}
if (kfifo_peek(&hevc->pending_q, &vf)) {
@@ -7403,6 +7405,7 @@ static int process_pending_vframe(struct hevc_state_s *hevc,
hevc->vf_pre_count++;
kfifo_put(&hevc->display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
}
} else if ((!pair_frame_top_flag) &&
(((vf->index >> 8) & 0xff) == 0xff)) {
@@ -7420,6 +7423,7 @@ static int process_pending_vframe(struct hevc_state_s *hevc,
pair_pic->vf_ref++;
kfifo_put(&hevc->display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
hevc->vf_pre_count++;
if (get_dbg_flag(hevc) & H265_DEBUG_PIC_STRUCT)
hevc_print(hevc, 0,
@@ -7442,6 +7446,7 @@ static int process_pending_vframe(struct hevc_state_s *hevc,
pair_pic->vf_ref++;
kfifo_put(&hevc->display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
hevc->vf_pre_count++;
if (get_dbg_flag(hevc) & H265_DEBUG_PIC_STRUCT)
hevc_print(hevc, 0,
@@ -7806,9 +7811,11 @@ static int prepare_display_buf(struct hevc_state_s *hevc, struct PIC_s *pic)
hevc->vf_pre_count++;
kfifo_put(&hevc->display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
hevc->vf_pre_count++;
kfifo_put(&hevc->display_q,
(const struct vframe_s *)vf2);
+ ATRACE_COUNTER(MODULE_NAME, vf2->pts);
} else if (pic->pic_struct == 5
|| pic->pic_struct == 6) {
struct vframe_s *vf2, *vf3;
@@ -7852,12 +7859,15 @@ static int prepare_display_buf(struct hevc_state_s *hevc, struct PIC_s *pic)
hevc->vf_pre_count++;
kfifo_put(&hevc->display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
hevc->vf_pre_count++;
kfifo_put(&hevc->display_q,
(const struct vframe_s *)vf2);
+ ATRACE_COUNTER(MODULE_NAME, vf2->pts);
hevc->vf_pre_count++;
kfifo_put(&hevc->display_q,
(const struct vframe_s *)vf3);
+ ATRACE_COUNTER(MODULE_NAME, vf3->pts);
} else if (pic->pic_struct == 9
|| pic->pic_struct == 10) {
@@ -7961,12 +7971,14 @@ static int prepare_display_buf(struct hevc_state_s *hevc, struct PIC_s *pic)
hevc->vf_pre_count++;
kfifo_put(&hevc->display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
}
#else
vf->type_original = vf->type;
pic->vf_ref = 1;
hevc->vf_pre_count++;
kfifo_put(&hevc->display_q, (const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
if (get_dbg_flag(hevc) & H265_DEBUG_PIC_STRUCT)
hevc_print(hevc, 0,
diff --git a/drivers/frame_provider/decoder/mjpeg/vmjpeg.c b/drivers/frame_provider/decoder/mjpeg/vmjpeg.c
index 95bb222..4614789 100644
--- a/drivers/frame_provider/decoder/mjpeg/vmjpeg.c
+++ b/drivers/frame_provider/decoder/mjpeg/vmjpeg.c
@@ -38,6 +38,9 @@
#include <linux/amlogic/media/codec_mm/configs.h>
#include <linux/amlogic/tee.h>
+#include <trace/events/meson_atrace.h>
+
+
#ifdef CONFIG_AM_VDEC_MJPEG_LOG
#define AMLOG
#define LOG_LEVEL_VAR amlog_level_vmjpeg
@@ -219,6 +222,7 @@ static irqreturn_t vmjpeg_isr(int irq, void *dev_id)
vdec_count_info(gvs, 0, offset);
kfifo_put(&display_q, (const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(PROVIDER_NAME,
VFRAME_EVENT_PROVIDER_VFRAME_READY,
@@ -276,6 +280,7 @@ static irqreturn_t vmjpeg_isr(int irq, void *dev_id)
vfbuf_use[index]++;
kfifo_put(&display_q, (const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
#else
/* send whole frame by weaving top & bottom field */
#ifdef NV21
@@ -304,6 +309,7 @@ static irqreturn_t vmjpeg_isr(int irq, void *dev_id)
vdec_count_info(gvs, 0, offset);
kfifo_put(&display_q, (const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(PROVIDER_NAME,
VFRAME_EVENT_PROVIDER_VFRAME_READY,
diff --git a/drivers/frame_provider/decoder/mjpeg/vmjpeg_multi.c b/drivers/frame_provider/decoder/mjpeg/vmjpeg_multi.c
index f1de5b9..a3e2053 100644
--- a/drivers/frame_provider/decoder/mjpeg/vmjpeg_multi.c
+++ b/drivers/frame_provider/decoder/mjpeg/vmjpeg_multi.c
@@ -44,6 +44,9 @@
#include <linux/amlogic/media/codec_mm/configs.h>
#include "../utils/firmware.h"
+#include <trace/events/meson_atrace.h>
+
+
#define MEM_NAME "codec_mmjpeg"
#define DRIVER_NAME "ammvdec_mjpeg"
@@ -300,7 +303,7 @@ static irqreturn_t vmjpeg_isr(struct vdec_s *vdec, int irq)
hw->vfbuf_use[index]++;
kfifo_put(&hw->display_q, (const struct vframe_s *)vf);
-
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
hw->frame_num++;
mmjpeg_debug_print(DECODE_ID(hw), PRINT_FRAME_NUM,
"%s:frame num:%d,pts=%d,pts64=%lld. dur=%d\n",
diff --git a/drivers/frame_provider/decoder/mpeg12/vmpeg12.c b/drivers/frame_provider/decoder/mpeg12/vmpeg12.c
index f758076..003ffb3 100644
--- a/drivers/frame_provider/decoder/mpeg12/vmpeg12.c
+++ b/drivers/frame_provider/decoder/mpeg12/vmpeg12.c
@@ -43,6 +43,9 @@
#include <linux/amlogic/media/codec_mm/configs.h>
#include <linux/amlogic/tee.h>
+#include <trace/events/meson_atrace.h>
+
+
#ifdef CONFIG_AM_VDEC_MPEG12_LOG
#define AMLOG
#define LOG_LEVEL_VAR amlog_level_vmpeg
@@ -995,6 +998,7 @@ static irqreturn_t vmpeg12_isr(int irq, void *dev_id)
index);
kfifo_put(&display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(PROVIDER_NAME,
VFRAME_EVENT_PROVIDER_VFRAME_READY,
NULL);
@@ -1080,6 +1084,7 @@ static irqreturn_t vmpeg12_isr(int irq, void *dev_id)
index);
kfifo_put(&display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(PROVIDER_NAME,
VFRAME_EVENT_PROVIDER_VFRAME_READY,
NULL);
@@ -1132,6 +1137,7 @@ static irqreturn_t vmpeg12_isr(int irq, void *dev_id)
index);
kfifo_put(&display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(PROVIDER_NAME,
VFRAME_EVENT_PROVIDER_VFRAME_READY,
NULL);
@@ -1172,6 +1178,7 @@ static irqreturn_t vmpeg12_isr(int irq, void *dev_id)
} else {
kfifo_put(&display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(PROVIDER_NAME,
VFRAME_EVENT_PROVIDER_VFRAME_READY,
NULL);
diff --git a/drivers/frame_provider/decoder/mpeg4/vmpeg4.c b/drivers/frame_provider/decoder/mpeg4/vmpeg4.c
index 56351f7..149a3d2 100644
--- a/drivers/frame_provider/decoder/mpeg4/vmpeg4.c
+++ b/drivers/frame_provider/decoder/mpeg4/vmpeg4.c
@@ -42,6 +42,9 @@
#include <linux/amlogic/media/codec_mm/configs.h>
#include <linux/amlogic/tee.h>
+#include <trace/events/meson_atrace.h>
+
+
/* #define CONFIG_AM_VDEC_MPEG4_LOG */
#ifdef CONFIG_AM_VDEC_MPEG4_LOG
#define AMLOG
@@ -490,6 +493,7 @@ static irqreturn_t vmpeg4_isr(int irq, void *dev_id)
buffer_index);
kfifo_put(&display_q, (const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(PROVIDER_NAME,
VFRAME_EVENT_PROVIDER_VFRAME_READY,
@@ -536,6 +540,7 @@ static irqreturn_t vmpeg4_isr(int irq, void *dev_id)
vmpeg4_amstream_dec_info.rate, picture_type);
kfifo_put(&display_q, (const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(PROVIDER_NAME,
VFRAME_EVENT_PROVIDER_VFRAME_READY,
@@ -583,6 +588,7 @@ static irqreturn_t vmpeg4_isr(int irq, void *dev_id)
buffer_index);
kfifo_put(&display_q, (const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(PROVIDER_NAME,
VFRAME_EVENT_PROVIDER_VFRAME_READY,
diff --git a/drivers/frame_provider/decoder/mpeg4/vmpeg4_multi.c b/drivers/frame_provider/decoder/mpeg4/vmpeg4_multi.c
index 705b0ac..406ae8b 100644
--- a/drivers/frame_provider/decoder/mpeg4/vmpeg4_multi.c
+++ b/drivers/frame_provider/decoder/mpeg4/vmpeg4_multi.c
@@ -46,6 +46,9 @@
#include <linux/amlogic/media/codec_mm/configs.h>
#include "../utils/firmware.h"
+#include <trace/events/meson_atrace.h>
+
+
#define DRIVER_NAME "ammvdec_mpeg4"
#define MODULE_NAME "ammvdec_mpeg4"
@@ -752,6 +755,7 @@ static irqreturn_t vmpeg4_isr_thread_fn(struct vdec_s *vdec, int irq)
} else {
kfifo_put(&hw->display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
hw->frame_num++;
vf_notify_receiver(vdec->vf_provider_name,
VFRAME_EVENT_PROVIDER_VFRAME_READY,
@@ -800,6 +804,7 @@ static irqreturn_t vmpeg4_isr_thread_fn(struct vdec_s *vdec, int irq)
} else {
kfifo_put(&hw->display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
hw->frame_num++;
vf_notify_receiver(vdec->vf_provider_name,
VFRAME_EVENT_PROVIDER_VFRAME_READY,
@@ -854,6 +859,7 @@ static irqreturn_t vmpeg4_isr_thread_fn(struct vdec_s *vdec, int irq)
vf->duration = duration * (hw->timeout_flag + 1);
kfifo_put(&hw->display_q,
(const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
hw->frame_num++;
hw->timeout_flag = 0;
vf_notify_receiver(vdec->vf_provider_name,
diff --git a/drivers/frame_provider/decoder/real/vreal.c b/drivers/frame_provider/decoder/real/vreal.c
index 88911ec..afce94e 100644
--- a/drivers/frame_provider/decoder/real/vreal.c
+++ b/drivers/frame_provider/decoder/real/vreal.c
@@ -54,6 +54,9 @@
#include "../utils/firmware.h"
#include <linux/amlogic/tee.h>
+#include <trace/events/meson_atrace.h>
+
+
#define DRIVER_NAME "amvdec_real"
#define MODULE_NAME "amvdec_real"
@@ -355,6 +358,7 @@ static irqreturn_t vreal_isr(int irq, void *dev_id)
buffer_index);
kfifo_put(&display_q, (const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
frame_count++;
vf_notify_receiver(PROVIDER_NAME,
diff --git a/drivers/frame_provider/decoder/utils/vdec_input.c b/drivers/frame_provider/decoder/utils/vdec_input.c
index 9b4f01e..af95293 100644
--- a/drivers/frame_provider/decoder/utils/vdec_input.c
+++ b/drivers/frame_provider/decoder/utils/vdec_input.c
@@ -28,6 +28,8 @@
#include <asm/cacheflush.h>
#include <linux/crc32.h>
+#include <trace/events/meson_atrace.h>
+
#define VFRAME_BLOCK_SIZE (512 * SZ_1K)/*512 for 1080p default init.*/
#define VFRAME_BLOCK_SIZE_4K (2 * SZ_1M) /*2M for 4K default.*/
#define VFRAME_BLOCK_SIZE_MAX (4 * SZ_1M)
@@ -897,6 +899,7 @@ int vdec_input_add_chunk(struct vdec_input_s *input, const char *buf,
list_add_tail(&chunk->list, &input->vframe_chunk_list);
input->data_size += chunk->size;
input->have_frame_num++;
+ ATRACE_COUNTER(MEM_NAME, input->have_frame_num);
if (chunk->pts_valid) {
input->last_inpts_u64 = chunk->pts64;
input->last_in_nopts_cnt = 0;
@@ -995,6 +998,7 @@ void vdec_input_release_chunk(struct vdec_input_s *input,
list_del(&chunk->list);
input->have_frame_num--;
+ ATRACE_COUNTER(MEM_NAME, input->have_frame_num);
if (chunk->pts_valid) {
input->last_comsumed_no_pts_cnt = 0;
input->last_comsumed_pts_u64 = chunk->pts64;
diff --git a/drivers/frame_provider/decoder/utils/vdec_profile.c b/drivers/frame_provider/decoder/utils/vdec_profile.c
index efdbc84..f8f6c10 100644
--- a/drivers/frame_provider/decoder/utils/vdec_profile.c
+++ b/drivers/frame_provider/decoder/utils/vdec_profile.c
@@ -21,6 +21,7 @@
#include <linux/debugfs.h>
#include <linux/amlogic/media/utils/vdec_reg.h>
+#include <trace/events/meson_atrace.h>
#include "vdec_profile.h"
#include "vdec.h"
@@ -106,6 +107,7 @@ EXPORT_SYMBOL(vdec_profile_more);
void vdec_profile(struct vdec_s *vdec, int event)
{
+ ATRACE_COUNTER(vdec_device_name_str(vdec), event);
vdec_profile_more(vdec, event, 0 , 0);
}
EXPORT_SYMBOL(vdec_profile);
diff --git a/drivers/frame_provider/decoder/vc1/vvc1.c b/drivers/frame_provider/decoder/vc1/vvc1.c
index 4de5c3c..86f171a 100644
--- a/drivers/frame_provider/decoder/vc1/vvc1.c
+++ b/drivers/frame_provider/decoder/vc1/vvc1.c
@@ -43,6 +43,9 @@
#include "../utils/firmware.h"
#include <linux/amlogic/tee.h>
+#include <trace/events/meson_atrace.h>
+
+
#define DRIVER_NAME "amvdec_vc1"
#define MODULE_NAME "amvdec_vc1"
@@ -490,6 +493,7 @@ static irqreturn_t vvc1_isr(int irq, void *dev_id)
buffer_index);
kfifo_put(&display_q, (const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(
PROVIDER_NAME,
@@ -549,6 +553,7 @@ static irqreturn_t vvc1_isr(int irq, void *dev_id)
buffer_index);
kfifo_put(&display_q, (const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(
PROVIDER_NAME,
@@ -633,6 +638,7 @@ static irqreturn_t vvc1_isr(int irq, void *dev_id)
mm_blk_handle,
buffer_index);
kfifo_put(&display_q, (const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
vf_notify_receiver(PROVIDER_NAME,
VFRAME_EVENT_PROVIDER_VFRAME_READY,
diff --git a/drivers/frame_provider/decoder/vp9/vvp9.c b/drivers/frame_provider/decoder/vp9/vvp9.c
index be64a0d..0524633 100644
--- a/drivers/frame_provider/decoder/vp9/vvp9.c
+++ b/drivers/frame_provider/decoder/vp9/vvp9.c
@@ -55,6 +55,9 @@
#include "../utils/firmware.h"
#include "../../../common/chips/decoder_cpu_ver_info.h"
+#include <trace/events/meson_atrace.h>
+
+
#define MIX_STREAM_SUPPORT
#include "vvp9.h"
@@ -6879,6 +6882,7 @@ static int prepare_display_buf(struct VP9Decoder_s *pbi,
)) {
inc_vf_ref(pbi, pic_config->index);
kfifo_put(&pbi->display_q, (const struct vframe_s *)vf);
+ ATRACE_COUNTER(MODULE_NAME, vf->pts);
pbi->vf_pre_count++;
#ifndef CONFIG_AMLOGIC_MEDIA_MULTI_DEC
/*count info*/