summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrikanth Uyyala <suyyala@codeaurora.org>2019-05-07 16:27:36 +0530
committerSumalatha Malothu <smalot@codeaurora.org>2019-07-04 12:12:07 +0530
commit45b4ac208b7bbea82bd9f5123c416cedfc991307 (patch)
tree90d7e34704ee7a832f6fcf5467a14993d2578de4
parent5974bd4025eab2158a28039d29a35d4afe2ec6bd (diff)
msm:camera: add trace log support for VFE events
trace log support added for important VFE events, these traces can be enabled with camera trace event. Change-Id: I1e5c043ad3b69df632ff63130ff8eea10ab2097c Signed-off-by: Srikanth Uyyala <suyyala@codeaurora.org> Signed-off-by: Sumalatha Malothu <smalot@codeaurora.org>
-rw-r--r--drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c9
-rw-r--r--drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c7
-rw-r--r--include/trace/events/msm_cam.h30
3 files changed, 43 insertions, 3 deletions
diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c b/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c
index d498ef0ae7a6..2245cca4f8c7 100644
--- a/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c
+++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp_axi_util.c
@@ -16,6 +16,7 @@
#include "msm_isp_stats_util.h"
#include "msm_isp_axi_util.h"
#include "msm_isp48.h"
+#include "trace/events/msm_cam.h"
#define HANDLE_TO_IDX(handle) (handle & 0xFF)
#define ISP_SOF_DEBUG_COUNT 0
@@ -1048,8 +1049,12 @@ void msm_isp_notify(struct vfe_device *vfe_dev, uint32_t event_type,
vfe_dev->isp_raw2_debug++;
}
- ISP_DBG("%s: vfe %d frame_src %d\n", __func__,
- vfe_dev->pdev->id, frame_src);
+ ISP_DBG("%s: vfe %d frame_src %d frameid %d\n", __func__,
+ vfe_dev->pdev->id, frame_src,
+ vfe_dev->axi_data.src_info[VFE_PIX_0].frame_id);
+ trace_msm_cam_isp_status_dump("SOFNOTIFY:", vfe_dev->pdev->id,
+ vfe_dev->axi_data.src_info[VFE_PIX_0].frame_id,
+ 0, 0);
/*
* Cannot support dual_cam and framedrop same time in union.
diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c b/drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c
index 05c955ac7cd5..260d546c76ce 100644
--- a/drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c
+++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp_util.c
@@ -2090,6 +2090,10 @@ static void msm_isp_enqueue_tasklet_cmd(struct vfe_device *vfe_dev,
} else {
atomic_add(1, &vfe_dev->irq_cnt);
}
+ atomic_add(1, &vfe_dev->irq_cnt);
+ trace_msm_cam_isp_status_dump("VFE_IRQ:", vfe_dev->pdev->id,
+ vfe_dev->axi_data.src_info[VFE_PIX_0].frame_id,
+ irq_status0, irq_status1);
queue_cmd->vfeInterruptStatus0 = irq_status0;
queue_cmd->vfeInterruptStatus1 = irq_status1;
queue_cmd->vfe_pingpong_status = ping_pong_status;
@@ -2189,6 +2193,9 @@ void msm_isp_do_tasklet(unsigned long data)
atomic_sub(1, &vfe_dev->irq_cnt);
msm_isp_prepare_tasklet_debug_info(vfe_dev,
irq_status0, irq_status1, ts);
+ trace_msm_cam_isp_status_dump("VFE_TASKLET:", vfe_dev->pdev->id,
+ vfe_dev->axi_data.src_info[VFE_PIX_0].frame_id,
+ irq_status0, irq_status1);
irq_ops = &vfe_dev->hw_info->vfe_ops.irq_ops;
irq_ops->process_reset_irq(vfe_dev,
irq_status0, irq_status1);
diff --git a/include/trace/events/msm_cam.h b/include/trace/events/msm_cam.h
index b52845407ef0..b0dc7eac8b7a 100644
--- a/include/trace/events/msm_cam.h
+++ b/include/trace/events/msm_cam.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -131,6 +131,34 @@ TRACE_EVENT(msm_cam_ping_pong_debug_dump,
)
);
+TRACE_EVENT(msm_cam_isp_status_dump,
+ TP_PROTO(char *event, uint32_t vfe_id, uint32_t frame_id,
+ uint32_t irq_status0, uint32_t irq_status1),
+ TP_ARGS(event, vfe_id, frame_id, irq_status0,
+ irq_status1),
+ TP_STRUCT__entry(
+ __field(char *, event)
+ __field(unsigned int, vfe_id)
+ __field(unsigned int, frame_id)
+ __field(unsigned int, irq_status0)
+ __field(unsigned int, irq_status1)
+ ),
+ TP_fast_assign(
+ __entry->event = event;
+ __entry->vfe_id = vfe_id;
+ __entry->frame_id = frame_id;
+ __entry->irq_status0 = irq_status0;
+ __entry->irq_status1 = irq_status1;
+ ),
+ TP_printk("%s vfe %d, frame %d, irq_st0 %x, irq_st1 %x\n",
+ __entry->event,
+ __entry->vfe_id,
+ __entry->frame_id,
+ __entry->irq_status0,
+ __entry->irq_status1
+ )
+);
+
#endif /* _MSM_CAM_TRACE_H */
/* This part must be outside protection */
#include <trace/define_trace.h>