From c84b917f06267e77aa02bf0657674f81dd97c2a3 Mon Sep 17 00:00:00 2001 From: Mahadevan Date: Mon, 21 Aug 2023 22:33:59 +0530 Subject: [PATCH] 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: I781ae73cee09ce0fcddb6d2b3c847343c69f6c59 Signed-off-by: Prabhanjan Kandula Signed-off-by: Mahadevan --- msm/sde_dbg.c | 3 ++- msm/sde_dbg_evtlog.c | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/msm/sde_dbg.c b/msm/sde_dbg.c index 704d611d..5aff679d 100644 --- a/msm/sde_dbg.c +++ b/msm/sde_dbg.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2009-2021, The Linux Foundation. All rights reserved. */ @@ -2522,6 +2522,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); diff --git a/msm/sde_dbg_evtlog.c b/msm/sde_dbg_evtlog.c index ecd2fc52..62ced5a1 100644 --- a/msm/sde_dbg_evtlog.c +++ b/msm/sde_dbg_evtlog.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved. */ @@ -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(®log->curr) % SDE_REGLOG_ENTRY); @@ -250,6 +250,11 @@ struct sde_dbg_reglog *sde_reglog_init(void) return ERR_PTR(-ENOMEM); atomic64_set(®log->curr, 0); +#if IS_ENABLED(CONFIG_DEBUG_FS) + reglog->enable = true; +#else + reglog->enable = false; +#endif return reglog; }