|
@@ -2255,6 +2255,7 @@ void free_mem_ce_debug_hist_data(struct hif_softc *scn, uint32_t ce_id)
|
|
/* define below variables for crashscope parse */
|
|
/* define below variables for crashscope parse */
|
|
struct hif_ce_desc_event *hif_ce_desc_history[CE_COUNT_MAX];
|
|
struct hif_ce_desc_event *hif_ce_desc_history[CE_COUNT_MAX];
|
|
uint32_t hif_ce_history_max = HIF_CE_HISTORY_MAX;
|
|
uint32_t hif_ce_history_max = HIF_CE_HISTORY_MAX;
|
|
|
|
+uint32_t hif_ce_count_max = CE_COUNT_MAX;
|
|
|
|
|
|
/*
|
|
/*
|
|
* for debug build, it will enable ce history for all ce, but for
|
|
* for debug build, it will enable ce history for all ce, but for
|
|
@@ -2269,23 +2270,37 @@ uint32_t hif_ce_history_max = HIF_CE_HISTORY_MAX;
|
|
#define CE_DESC_HISTORY_BUFF_CNT 3
|
|
#define CE_DESC_HISTORY_BUFF_CNT 3
|
|
#define IS_CE_DEBUG_ONLY_FOR_CRIT_CE (BIT(2) | BIT(3) | BIT(7))
|
|
#define IS_CE_DEBUG_ONLY_FOR_CRIT_CE (BIT(2) | BIT(3) | BIT(7))
|
|
#endif
|
|
#endif
|
|
|
|
+bool hif_ce_only_for_crit = IS_CE_DEBUG_ONLY_FOR_CRIT_CE;
|
|
struct hif_ce_desc_event
|
|
struct hif_ce_desc_event
|
|
hif_ce_desc_history_buff[CE_DESC_HISTORY_BUFF_CNT][HIF_CE_HISTORY_MAX];
|
|
hif_ce_desc_history_buff[CE_DESC_HISTORY_BUFF_CNT][HIF_CE_HISTORY_MAX];
|
|
|
|
|
|
-static void __hif_ce_desc_history_log_register(void)
|
|
|
|
|
|
+static void
|
|
|
|
+__hif_ce_desc_history_log_register(struct hif_softc *scn)
|
|
{
|
|
{
|
|
- qdf_ssr_driver_dump_register_region("hif_ce_desc_history",
|
|
|
|
- hif_ce_desc_history,
|
|
|
|
- sizeof(hif_ce_desc_history));
|
|
|
|
qdf_ssr_driver_dump_register_region("hif_ce_desc_history_buff",
|
|
qdf_ssr_driver_dump_register_region("hif_ce_desc_history_buff",
|
|
hif_ce_desc_history_buff,
|
|
hif_ce_desc_history_buff,
|
|
sizeof(hif_ce_desc_history_buff));
|
|
sizeof(hif_ce_desc_history_buff));
|
|
|
|
+ qdf_ssr_driver_dump_register_region("hif_ce_desc_hist",
|
|
|
|
+ &scn->hif_ce_desc_hist,
|
|
|
|
+ sizeof(scn->hif_ce_desc_hist));
|
|
|
|
+ qdf_ssr_driver_dump_register_region("hif_ce_count_max",
|
|
|
|
+ &hif_ce_count_max,
|
|
|
|
+ sizeof(hif_ce_count_max));
|
|
|
|
+ qdf_ssr_driver_dump_register_region("hif_ce_history_max",
|
|
|
|
+ &hif_ce_history_max,
|
|
|
|
+ sizeof(hif_ce_history_max));
|
|
|
|
+ qdf_ssr_driver_dump_register_region("hif_ce_only_for_crit",
|
|
|
|
+ &hif_ce_only_for_crit,
|
|
|
|
+ sizeof(hif_ce_only_for_crit));
|
|
}
|
|
}
|
|
|
|
|
|
static void __hif_ce_desc_history_log_unregister(void)
|
|
static void __hif_ce_desc_history_log_unregister(void)
|
|
{
|
|
{
|
|
|
|
+ qdf_ssr_driver_dump_unregister_region("hif_ce_only_for_crit");
|
|
|
|
+ qdf_ssr_driver_dump_unregister_region("hif_ce_history_max");
|
|
|
|
+ qdf_ssr_driver_dump_unregister_region("hif_ce_count_max");
|
|
|
|
+ qdf_ssr_driver_dump_unregister_region("hif_ce_desc_hist");
|
|
qdf_ssr_driver_dump_unregister_region("hif_ce_desc_history_buff");
|
|
qdf_ssr_driver_dump_unregister_region("hif_ce_desc_history_buff");
|
|
- qdf_ssr_driver_dump_unregister_region("hif_ce_desc_history");
|
|
|
|
}
|
|
}
|
|
|
|
|
|
static struct hif_ce_desc_event *
|
|
static struct hif_ce_desc_event *
|
|
@@ -2373,7 +2388,10 @@ static void free_mem_ce_debug_history(struct hif_softc *scn, unsigned int ce_id)
|
|
}
|
|
}
|
|
#else
|
|
#else
|
|
|
|
|
|
-static void __hif_ce_desc_history_log_register(void) { }
|
|
|
|
|
|
+static void
|
|
|
|
+__hif_ce_desc_history_log_register(struct hif_softc *scn)
|
|
|
|
+{
|
|
|
|
+}
|
|
|
|
|
|
static void __hif_ce_desc_history_log_unregister(void) { }
|
|
static void __hif_ce_desc_history_log_unregister(void) { }
|
|
|
|
|
|
@@ -2390,7 +2408,10 @@ free_mem_ce_debug_history(struct hif_softc *scn, unsigned int CE_id) { }
|
|
#else
|
|
#else
|
|
#if defined(HIF_CE_DEBUG_DATA_BUF)
|
|
#if defined(HIF_CE_DEBUG_DATA_BUF)
|
|
|
|
|
|
-static void __hif_ce_desc_history_log_register(void) { }
|
|
|
|
|
|
+static void
|
|
|
|
+__hif_ce_desc_history_log_register(struct hif_softc *scn)
|
|
|
|
+{
|
|
|
|
+}
|
|
|
|
|
|
static void __hif_ce_desc_history_log_unregister(void) { }
|
|
static void __hif_ce_desc_history_log_unregister(void) { }
|
|
|
|
|
|
@@ -2430,7 +2451,10 @@ static void free_mem_ce_debug_history(struct hif_softc *scn, unsigned int CE_id)
|
|
|
|
|
|
#else
|
|
#else
|
|
|
|
|
|
-static void __hif_ce_desc_history_log_register(void) { }
|
|
|
|
|
|
+static void
|
|
|
|
+__hif_ce_desc_history_log_register(struct hif_softc *scn)
|
|
|
|
+{
|
|
|
|
+}
|
|
|
|
|
|
static void __hif_ce_desc_history_log_unregister(void) { }
|
|
static void __hif_ce_desc_history_log_unregister(void) { }
|
|
|
|
|
|
@@ -2720,9 +2744,9 @@ error_no_dma_mem:
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
|
|
-void hif_ce_desc_history_log_register(void)
|
|
|
|
|
|
+void hif_ce_desc_history_log_register(struct hif_softc *scn)
|
|
{
|
|
{
|
|
- __hif_ce_desc_history_log_register();
|
|
|
|
|
|
+ __hif_ce_desc_history_log_register(scn);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|