[ERD][RAMEN9610-14963] [COMMON] lib: dss: Change debug level policy.
authorChangki Kim <changki.kim@samsung.com>
Tue, 26 Mar 2019 11:20:46 +0000 (20:20 +0900)
committerKim Gunho <gunho.kim@samsung.com>
Fri, 30 Aug 2019 07:58:56 +0000 (16:58 +0900)
debug level is related with ramdump.
low: if error(like panic, wdtreset ..) happened,
     system does not enter fastboot mode.
mid: system enters fastboot mode.

debug level is determined in bootloader.

Change-Id: I9186dc97ee7591ef2f4e888da488602141779ebf
Signed-off-by: Changki Kim <changki.kim@samsung.com>
include/linux/debug-snapshot.h
lib/debug-snapshot-helper.c
lib/debug-snapshot.c

index 0ee303467fa773857aa41e44be105b81234b6193..0acc2a59dd8fc10f6ac28637fcca73de9d2c2b09 100644 (file)
@@ -39,9 +39,7 @@ extern int dbg_snapshot_post_panic(void);
 extern int dbg_snapshot_post_reboot(char *cmd);
 extern int dbg_snapshot_set_hardlockup(int);
 extern int dbg_snapshot_get_hardlockup(void);
-extern int dbg_snapshot_set_debug_level(int);
 extern int dbg_snapshot_get_debug_level(void);
-extern void dbg_snapshot_set_debug_level_reg(void);
 extern int dbg_snapshot_get_debug_level_reg(void);
 extern unsigned int dbg_snapshot_get_item_size(char *);
 extern unsigned int dbg_snapshot_get_item_paddr(char *);
@@ -217,8 +215,8 @@ extern void dbg_snapshot_binder(struct trace_binder_transaction_base *base,
 #define dbg_snapshot_post_reboot(a)    do { } while(0)
 #define dbg_snapshot_set_hardlockup(a) do { } while(0)
 #define dbg_snapshot_get_hardlockup()  do { } while(0)
-#define dbg_snapshot_set_debug_level(a) do { } while(0)
 #define dbg_snapshot_get_debug_level() do { } while(0)
+#define dbg_snapshot_get_debug_level_reg()     do { } while (0)
 #define dbg_snapshot_check_crash_key(a,b)      do { } while(0)
 #define dbg_snapshot_dm(a,b,c,d,e)             do { } while(0)
 #define dbg_snapshot_panic_handler_safe()      do { } while(0)
@@ -301,7 +299,6 @@ enum dsslog_freq_flag {
        DSS_FLAG_END
 };
 
-#define DSS_DEBUG_LEVEL_NONE   (-1)
 #define DSS_DEBUG_LEVEL_PREFIX (0xDB9 << 16)
 #define DSS_DEBUG_LEVEL_LOW    (0)
 #define DSS_DEBUG_LEVEL_MID    (1)
index 8a42d09092bfe327b99c9343dae3bb23523a7901..7f464ee04c049dd0e7b40d1f70216da61a7e7b0d 100644 (file)
@@ -104,16 +104,9 @@ static void dbg_snapshot_report_reason(unsigned int val)
                __raw_writel(val, dbg_snapshot_get_base_vaddr() + DSS_OFFSET_EMERGENCY_REASON);
 }
 
-void dbg_snapshot_set_debug_level_reg(void)
-{
-       if (dbg_snapshot_get_enable("header"))
-               __raw_writel(dss_desc.debug_level | DSS_DEBUG_LEVEL_PREFIX,
-                       dbg_snapshot_get_base_vaddr() + DSS_OFFSET_DEBUG_LEVEL);
-}
-
 int dbg_snapshot_get_debug_level_reg(void)
 {
-       int ret = DSS_DEBUG_LEVEL_NONE;
+       int ret = DSS_DEBUG_LEVEL_MID;
 
        if (dbg_snapshot_get_enable("header")) {
                int val = __raw_readl(dbg_snapshot_get_base_vaddr() + DSS_OFFSET_DEBUG_LEVEL);
index 201824b8581e50ca787479e77030b0eff8760e00..f38f4fa073024243daed2e4866036902f42ec4c4 100644 (file)
@@ -83,21 +83,6 @@ struct dbg_snapshot_desc dss_desc;
 /* Variable for assigning virtual address base */
 static size_t g_dbg_snapshot_vaddr_base = DSS_FIXED_VIRT_BASE;
 
-int dbg_snapshot_set_debug_level(int level)
-{
-       if (level > -1 && level < ARRAY_SIZE(debug_level_val)) {
-               dss_desc.debug_level = level;
-       } else {
-#if !IS_ENABLED(CONFIG_DEBUG_SNAPSHOT_USER_MODE)
-               dss_desc.debug_level = DSS_DEBUG_LEVEL_MID;
-#else
-               dss_desc.debug_level = DSS_DEBUG_LEVEL_LOW;
-#endif
-       }
-       dbg_snapshot_set_debug_level_reg();
-       return 0;
-}
-
 int dbg_snapshot_get_debug_level(void)
 {
        return dss_desc.debug_level;
@@ -748,14 +733,13 @@ static int __init dbg_snapshot_init_dt(void)
 
 static int __init dbg_snapshot_init_value(void)
 {
-       int val = dbg_snapshot_get_debug_level_reg();
-
-       dbg_snapshot_set_debug_level(val);
+       dss_desc.debug_level = dbg_snapshot_get_debug_level_reg();
 
        pr_info("debug-snapshot: debug_level [%s]\n",
                debug_level_val[dss_desc.debug_level]);
 
-       dbg_snapshot_scratch_reg(DSS_SIGN_SCRATCH);
+       if (dss_desc.debug_level != DSS_DEBUG_LEVEL_LOW)
+               dbg_snapshot_scratch_reg(DSS_SIGN_SCRATCH);
 
        /* copy linux_banner, physical address of
         * kernel log / platform log / kevents to DSS header */