diff --git a/drivers/video/fbdev/msm/Kconfig b/drivers/video/fbdev/msm/Kconfig index 969f7b125622..a4d5d5e0d637 100644 --- a/drivers/video/fbdev/msm/Kconfig +++ b/drivers/video/fbdev/msm/Kconfig @@ -110,4 +110,13 @@ config FB_MSM_MDSS_MDP3 The MDP3 provides support for an older version display controller included in latest display sub-system, known as MDSS. +config FB_MSM_MDSS_XLOG_DEBUG + depends on FB_MSM_MDSS + bool "Enable MDSS debugging" + ---help--- + The MDSS debugging provides support to enable display debugging + features to: Dump MDSS registers during driver errors, panic + driver during fatal errors and enable some display-driver logging + into an internal buffer (this avoids logging overhead). + endif diff --git a/drivers/video/fbdev/msm/mdss_debug_xlog.c b/drivers/video/fbdev/msm/mdss_debug_xlog.c index c0c249b84acf..766edefb3766 100644 --- a/drivers/video/fbdev/msm/mdss_debug_xlog.c +++ b/drivers/video/fbdev/msm/mdss_debug_xlog.c @@ -21,6 +21,15 @@ #include "mdss_mdp.h" #include "mdss_debug.h" +#ifdef CONFIG_FB_MSM_MDSS_XLOG_DEBUG +#define XLOG_DEFAULT_ENABLE 1 +#else +#define XLOG_DEFAULT_ENABLE 0 +#endif + +#define XLOG_DEFAULT_PANIC 1 +#define XLOG_DEFAULT_REGDUMP 0x2 /* dump in RAM */ + #define MDSS_XLOG_ENTRY 256 #define MDSS_XLOG_MAX_DATA 6 #define MDSS_XLOG_BUF_MAX 512 @@ -486,5 +495,14 @@ int mdss_create_xlog_debug(struct mdss_debug_data *mdd) &mdss_dbg_xlog.panic_on_err); debugfs_create_u32("reg_dump", 0644, mdss_dbg_xlog.xlog, &mdss_dbg_xlog.enable_reg_dump); + + mdss_dbg_xlog.xlog_enable = XLOG_DEFAULT_ENABLE; + mdss_dbg_xlog.panic_on_err = XLOG_DEFAULT_PANIC; + mdss_dbg_xlog.enable_reg_dump = XLOG_DEFAULT_REGDUMP; + + pr_info("xlog_status: enable:%d, panic:%d, dump:%d\n", + mdss_dbg_xlog.xlog_enable, mdss_dbg_xlog.panic_on_err, + mdss_dbg_xlog.enable_reg_dump); + return 0; }