From 6987242bf54172cc4ef7282659cc20ef85a7a4ed Mon Sep 17 00:00:00 2001 From: Tao Guo Date: Thu, 17 Jan 2019 14:03:37 +0800 Subject: [PATCH] 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 --- .../media_modules/frame_provider/decoder/avs/avs.c | 6 ++++++ .../frame_provider/decoder/avs2/vavs2.c | 2 ++ .../frame_provider/decoder/h264/vh264.c | 7 ++++++- .../frame_provider/decoder/h264/vh264_4k2k.c | 5 ++++- .../frame_provider/decoder/h264_multi/vmh264.c | 7 ++++++- .../frame_provider/decoder/h265/vh265.c | 12 ++++++++++++ .../frame_provider/decoder/mjpeg/vmjpeg.c | 6 ++++++ .../frame_provider/decoder/mjpeg/vmjpeg_multi.c | 5 ++++- .../frame_provider/decoder/mpeg12/vmpeg12.c | 7 +++++++ .../frame_provider/decoder/mpeg4/vmpeg4.c | 6 ++++++ .../frame_provider/decoder/mpeg4/vmpeg4_multi.c | 6 ++++++ .../frame_provider/decoder/real/vreal.c | 4 ++++ .../frame_provider/decoder/utils/vdec_input.c | 4 ++++ .../frame_provider/decoder/utils/vdec_profile.c | 2 ++ .../media_modules/frame_provider/decoder/vc1/vvc1.c | 6 ++++++ .../media_modules/frame_provider/decoder/vp9/vvp9.c | 4 ++++ 16 files changed, 85 insertions(+), 4 deletions(-) diff --git a/drivers/amlogic/media_modules/frame_provider/decoder/avs/avs.c b/drivers/amlogic/media_modules/frame_provider/decoder/avs/avs.c index 0e9282c723fe..dd76fbc61dba 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/avs/avs.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/avs/avs.c @@ -45,6 +45,9 @@ #include "../../../common/chips/decoder_cpu_ver_info.h" #include + +#include + #define DRIVER_NAME "amvdec_avs" #define MODULE_NAME "amvdec_avs" @@ -584,6 +587,7 @@ static void vavs_isr(void) decoder_do_frame_check(NULL, 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); @@ -642,6 +646,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) decoder_do_frame_check(NULL, 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); diff --git a/drivers/amlogic/media_modules/frame_provider/decoder/avs2/vavs2.c b/drivers/amlogic/media_modules/frame_provider/decoder/avs2/vavs2.c index 338fc7e94472..220d33d9bb34 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/avs2/vavs2.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/avs2/vavs2.c @@ -56,6 +56,7 @@ #include "../utils/firmware.h" #include "../../../common/chips/decoder_cpu_ver_info.h" #include +#include #define I_ONLY_SUPPORT #define MIX_STREAM_SUPPORT @@ -4518,6 +4519,7 @@ static int avs2_prepare_display_buf(struct AVS2Decoder_s *dec) set_vframe(dec, vf, pic, 0); decoder_do_frame_check(hw_to_vdec(dec), vf); 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/amlogic/media_modules/frame_provider/decoder/h264/vh264.c b/drivers/amlogic/media_modules/frame_provider/decoder/h264/vh264.c index 9423819de01c..1781bb7e11dd 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/h264/vh264.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/h264/vh264.c @@ -58,6 +58,9 @@ #include +#include + + #define DRIVER_NAME "amvdec_h264" #define MODULE_NAME "amvdec_h264" #define MEM_NAME "codec_264" @@ -490,6 +493,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); } @@ -3526,6 +3530,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 @@ -3607,7 +3612,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/amlogic/media_modules/frame_provider/decoder/h264/vh264_4k2k.c b/drivers/amlogic/media_modules/frame_provider/decoder/h264/vh264_4k2k.c index cbbe36f59fa3..897147f3b9d4 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/h264/vh264_4k2k.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/h264/vh264_4k2k.c @@ -59,6 +59,9 @@ #include #include +#include + + #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/amlogic/media_modules/frame_provider/decoder/h264_multi/vmh264.c b/drivers/amlogic/media_modules/frame_provider/decoder/h264_multi/vmh264.c index 0fefdfdeea73..88c86a9f31df 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/h264_multi/vmh264.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/h264_multi/vmh264.c @@ -61,6 +61,9 @@ #include "../../../common/chips/decoder_cpu_ver_info.h" #include +#include + + #undef pr_info #define pr_info printk #define VDEC_DW @@ -2587,7 +2590,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++; vdec->vdec_fps_detec(vdec->id); vf_notify_receiver(vdec->vf_provider_name, @@ -2625,6 +2628,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/amlogic/media_modules/frame_provider/decoder/h265/vh265.c b/drivers/amlogic/media_modules/frame_provider/decoder/h265/vh265.c index 463f37721ae8..9e7f8f3017d4 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/h265/vh265.c +++ b/drivers/amlogic/media_modules/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 #define CONSTRAIN_MAX_BUF_NUM @@ -7407,6 +7408,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)) { @@ -7428,6 +7430,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)) { @@ -7445,6 +7448,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, @@ -7467,6 +7471,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, @@ -7831,9 +7836,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; @@ -7877,12 +7884,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) { @@ -7986,6 +7996,7 @@ 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; @@ -7993,6 +8004,7 @@ static int prepare_display_buf(struct hevc_state_s *hevc, struct PIC_s *pic) hevc->vf_pre_count++; decoder_do_frame_check(hw_to_vdec(hevc), vf); 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/amlogic/media_modules/frame_provider/decoder/mjpeg/vmjpeg.c b/drivers/amlogic/media_modules/frame_provider/decoder/mjpeg/vmjpeg.c index 95bb2229bace..461478906250 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/mjpeg/vmjpeg.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/mjpeg/vmjpeg.c @@ -38,6 +38,9 @@ #include #include +#include + + #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/amlogic/media_modules/frame_provider/decoder/mjpeg/vmjpeg_multi.c b/drivers/amlogic/media_modules/frame_provider/decoder/mjpeg/vmjpeg_multi.c index 2e840ce46228..c3ed46072eaf 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/mjpeg/vmjpeg_multi.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/mjpeg/vmjpeg_multi.c @@ -44,6 +44,9 @@ #include #include "../utils/firmware.h" +#include + + #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/amlogic/media_modules/frame_provider/decoder/mpeg12/vmpeg12.c b/drivers/amlogic/media_modules/frame_provider/decoder/mpeg12/vmpeg12.c index dd43c7cea925..ea5b99114ce9 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/mpeg12/vmpeg12.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/mpeg12/vmpeg12.c @@ -43,6 +43,9 @@ #include #include +#include + + #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/amlogic/media_modules/frame_provider/decoder/mpeg4/vmpeg4.c b/drivers/amlogic/media_modules/frame_provider/decoder/mpeg4/vmpeg4.c index a930e849f16c..d43ef627c57e 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/mpeg4/vmpeg4.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/mpeg4/vmpeg4.c @@ -42,6 +42,9 @@ #include #include +#include + + /* #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/amlogic/media_modules/frame_provider/decoder/mpeg4/vmpeg4_multi.c b/drivers/amlogic/media_modules/frame_provider/decoder/mpeg4/vmpeg4_multi.c index 8e69c7468180..60f69ed10134 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/mpeg4/vmpeg4_multi.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/mpeg4/vmpeg4_multi.c @@ -46,6 +46,9 @@ #include #include "../utils/firmware.h" +#include + + #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++; vdec->vdec_fps_detec(vdec->id); vf_notify_receiver(vdec->vf_provider_name, @@ -801,6 +805,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++; vdec->vdec_fps_detec(vdec->id); vf_notify_receiver(vdec->vf_provider_name, @@ -856,6 +861,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; vdec->vdec_fps_detec(vdec->id); diff --git a/drivers/amlogic/media_modules/frame_provider/decoder/real/vreal.c b/drivers/amlogic/media_modules/frame_provider/decoder/real/vreal.c index 88911ec80cd0..afce94eee6bf 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/real/vreal.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/real/vreal.c @@ -54,6 +54,9 @@ #include "../utils/firmware.h" #include +#include + + #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/amlogic/media_modules/frame_provider/decoder/utils/vdec_input.c b/drivers/amlogic/media_modules/frame_provider/decoder/utils/vdec_input.c index 3b04ca9f4cdc..d70b4aa99343 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/utils/vdec_input.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/utils/vdec_input.c @@ -28,6 +28,8 @@ #include #include +#include + #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) @@ -895,6 +897,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; @@ -993,6 +996,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/amlogic/media_modules/frame_provider/decoder/utils/vdec_profile.c b/drivers/amlogic/media_modules/frame_provider/decoder/utils/vdec_profile.c index a61f2bde4bd3..d03335a6297c 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/utils/vdec_profile.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/utils/vdec_profile.c @@ -23,6 +23,7 @@ #include +#include #include "vdec_profile.h" #include "vdec.h" @@ -223,6 +224,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); if (dec_time_stat_flag == 1) vdec_profile_statistics(vdec, event); diff --git a/drivers/amlogic/media_modules/frame_provider/decoder/vc1/vvc1.c b/drivers/amlogic/media_modules/frame_provider/decoder/vc1/vvc1.c index 4de5c3cb2758..86f171ad8f67 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/vc1/vvc1.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/vc1/vvc1.c @@ -43,6 +43,9 @@ #include "../utils/firmware.h" #include +#include + + #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/amlogic/media_modules/frame_provider/decoder/vp9/vvp9.c b/drivers/amlogic/media_modules/frame_provider/decoder/vp9/vvp9.c index b8980033c93c..c246fe16ba85 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/vp9/vvp9.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/vp9/vvp9.c @@ -55,6 +55,9 @@ #include "../utils/firmware.h" #include "../../../common/chips/decoder_cpu_ver_info.h" +#include + + #define MIX_STREAM_SUPPORT #include "vvp9.h" @@ -6880,6 +6883,7 @@ static int prepare_display_buf(struct VP9Decoder_s *pbi, inc_vf_ref(pbi, pic_config->index); decoder_do_frame_check(hw_to_vdec(pbi), vf); 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*/