Kaynağa Gözat

disp: msm: limit reglog to user debug builds

This change limits reglog feature by default to user debug
builds only and provides debug option to selectively disable
reglog for power and perf profiling if required. This change
is needed as reglog is considerably heavy on commit thread
execution.

Change-Id: Id06a63e10fd0c93ba0af6c6f2d1ae36b70c47f67
Signed-off-by: Prabhanjan Kandula <[email protected]>
Prabhanjan Kandula 2 yıl önce
ebeveyn
işleme
74b0b24920
2 değiştirilmiş dosya ile 7 ekleme ve 1 silme
  1. 1 0
      msm/sde_dbg.c
  2. 6 1
      msm/sde_dbg_evtlog.c

+ 1 - 0
msm/sde_dbg.c

@@ -2528,6 +2528,7 @@ int sde_dbg_debugfs_register(struct device *dev)
 	debugfs_create_file("recovery_reg", 0400, debugfs_root, NULL, &sde_recovery_reg_fops);
 
 	debugfs_create_u32("enable", 0600, debugfs_root, &(sde_dbg_base.evtlog->enable));
+	debugfs_create_u32("reglog_enable", 0600, debugfs_root, &(sde_dbg_base.reglog->enable));
 	debugfs_create_u32("panic", 0600, debugfs_root, &sde_dbg_base.panic_on_err);
 	debugfs_create_u32("dump_mode", 0600, debugfs_root, &sde_dbg_base.dump_option);
 	debugfs_create_u64("reg_dump_blk_mask", 0600, debugfs_root, &sde_dbg_base.dump_blk_mask);

+ 6 - 1
msm/sde_dbg_evtlog.c

@@ -100,7 +100,7 @@ void sde_reglog_log(u8 blk_id, u32 val, u32 addr)
 	struct sde_dbg_reglog *reglog = sde_dbg_base_reglog;
 	int index;
 
-	if (!reglog)
+	if (!reglog || !reglog->enable)
 		return;
 
 	index = abs(atomic64_inc_return(&reglog->curr) % SDE_REGLOG_ENTRY);
@@ -250,6 +250,11 @@ struct sde_dbg_reglog *sde_reglog_init(void)
 		return ERR_PTR(-ENOMEM);
 
 	atomic64_set(&reglog->curr, 0);
+#if IS_ENABLED(CONFIG_DEBUG_FS)
+	reglog->enable = true;
+#else
+	reglog->enable = false;
+#endif
 
 	return reglog;
 }