ソースを参照

msm: camera: common: Define debugflag to allocate usecase info

Define debug flag to allocate usecase info for debug purpose.
This flag can be used to get usecase buffer index at issue
time.

CRs-Fixed: 2707314
Change-Id: Iffacdb48f77ec6907b8070d4c19eb1c56be30f14
Signed-off-by: Alok Chauhan <[email protected]>
Alok Chauhan 5 年 前
コミット
23fc6a670c

+ 4 - 0
drivers/cam_req_mgr/cam_mem_mgr.c

@@ -733,6 +733,9 @@ int cam_mem_mgr_alloc_and_map(struct cam_mem_mgr_alloc_cmd *cmd)
 		}
 	}
 
+	if (cmd->flags & CAM_MEM_FLAG_KMD_DEBUG_FLAG)
+		tbl.dbg_buf_idx = idx;
+
 	tbl.bufq[idx].kmdvaddr = kvaddr;
 	tbl.bufq[idx].vaddr = hw_vaddr;
 	tbl.bufq[idx].dma_buf = dmabuf;
@@ -1023,6 +1026,7 @@ void cam_mem_mgr_deinit(void)
 	bitmap_zero(tbl.bitmap, tbl.bits);
 	kfree(tbl.bitmap);
 	tbl.bitmap = NULL;
+	tbl.dbg_buf_idx = -1;
 	mutex_unlock(&tbl.m_lock);
 	mutex_destroy(&tbl.m_lock);
 }

+ 2 - 0
drivers/cam_req_mgr/cam_mem_mgr.h

@@ -71,6 +71,7 @@ struct cam_mem_buf_queue {
  * @bufq: array of buffers
  * @dentry: Debugfs entry
  * @alloc_profile_enable: Whether to enable alloc profiling
+ * @dbg_buf_idx: debug buffer index to get usecases info
  */
 struct cam_mem_table {
 	struct mutex m_lock;
@@ -79,6 +80,7 @@ struct cam_mem_table {
 	struct cam_mem_buf_queue bufq[CAM_MEM_BUFQ_MAX];
 	struct dentry *dentry;
 	bool alloc_profile_enable;
+	size_t dbg_buf_idx;
 };
 
 /**

+ 2 - 0
include/uapi/camera/media/cam_req_mgr.h

@@ -284,6 +284,8 @@ struct cam_req_mgr_link_control {
 #define CAM_MEM_FLAG_HW_SHARED_ACCESS           (1<<11)
 #define CAM_MEM_FLAG_CDSP_OUTPUT                (1<<12)
 #define CAM_MEM_FLAG_DISABLE_DELAYED_UNMAP      (1<<13)
+#define CAM_MEM_FLAG_KMD_DEBUG_FLAG             (1<<14)
+
 
 #define CAM_MEM_MMU_MAX_HANDLE                  16