qcacmn: add hif_ce_desc_history to ssr driver dump

Current code doesn't have hif_ce_desc_history in ssr driver dump.
Fix this by adding the two data structs: hif_ce_desc_history_buff
and hif_ce_desc_history to the ssr driver dump regions.

Change-Id: I9256d94db6c3c3a3588e5729b9181efabdaf18ea
CRs-Fixed: 3443230
This commit is contained in:
Mohammed Ahmed
2023-03-16 17:45:53 -07:00
committed by Madan Koyyalamudi
父節點 310c7ce085
當前提交 b89db375d1
共有 2 個文件被更改,包括 56 次插入0 次删除

查看文件

@@ -424,6 +424,14 @@ ce_disable_custom_cb(struct CE_handle *copyeng);
struct CE_handle *ce_init(struct hif_softc *scn,
unsigned int CE_id, struct CE_attr *attr);
/*
* hif_ce_desc_history_log_register() - Register hif_ce_desc_history buffers
* to SSR driver dump.
*
* Return: None
*/
void hif_ce_desc_history_log_register(void);
/*==================CE Engine Shutdown=======================================*/
/*
* Support clean shutdown by allowing the caller to revoke
@@ -452,6 +460,14 @@ ce_cancel_send_next(struct CE_handle *copyeng,
void ce_fini(struct CE_handle *copyeng);
/*
* hif_ce_desc_history_log_unregister() - unregister hif_ce_desc_history
* buffers from SSR driver dump.
*
* Return: None
*/
void hif_ce_desc_history_log_unregister(void);
/*==================CE Interrupt Handlers====================================*/
void ce_per_engine_service_any(int irq, struct hif_softc *scn);
int ce_per_engine_service(struct hif_softc *scn, unsigned int CE_id);

查看文件

@@ -39,6 +39,7 @@
#include "ce_assignment.h"
#include "ce_tasklet.h"
#include "qdf_module.h"
#include "qdf_ssr_driver_dump.h"
#define CE_POLL_TIMEOUT 10 /* ms */
@@ -2186,6 +2187,22 @@ uint32_t hif_ce_history_max = HIF_CE_HISTORY_MAX;
struct hif_ce_desc_event
hif_ce_desc_history_buff[CE_DESC_HISTORY_BUFF_CNT][HIF_CE_HISTORY_MAX];
static void __hif_ce_desc_history_log_register(void)
{
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",
hif_ce_desc_history_buff,
sizeof(hif_ce_desc_history_buff));
}
static void __hif_ce_desc_history_log_unregister(void)
{
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 *
hif_ce_debug_history_buf_get(struct hif_softc *scn, unsigned int ce_id)
{
@@ -2270,6 +2287,11 @@ static void free_mem_ce_debug_history(struct hif_softc *scn, unsigned int ce_id)
ce_hist->hist_ev[ce_id] = NULL;
}
#else
static void __hif_ce_desc_history_log_register(void) { }
static void __hif_ce_desc_history_log_unregister(void) { }
static inline QDF_STATUS
alloc_mem_ce_debug_history(struct hif_softc *scn, unsigned int CE_id,
uint32_t src_nentries)
@@ -2283,6 +2305,10 @@ free_mem_ce_debug_history(struct hif_softc *scn, unsigned int CE_id) { }
#else
#if defined(HIF_CE_DEBUG_DATA_BUF)
static void __hif_ce_desc_history_log_register(void) { }
static void __hif_ce_desc_history_log_unregister(void) { }
static QDF_STATUS
alloc_mem_ce_debug_history(struct hif_softc *scn, unsigned int CE_id,
uint32_t src_nentries)
@@ -2319,6 +2345,10 @@ static void free_mem_ce_debug_history(struct hif_softc *scn, unsigned int CE_id)
#else
static void __hif_ce_desc_history_log_register(void) { }
static void __hif_ce_desc_history_log_unregister(void) { }
static inline QDF_STATUS
alloc_mem_ce_debug_history(struct hif_softc *scn, unsigned int CE_id,
uint32_t src_nentries)
@@ -2590,6 +2620,11 @@ error_no_dma_mem:
return NULL;
}
void hif_ce_desc_history_log_register(void)
{
__hif_ce_desc_history_log_register();
}
/**
* hif_is_polled_mode_enabled - API to query if polling is enabled on all CEs
* @hif_ctx: HIF Context
@@ -2882,6 +2917,11 @@ void ce_fini(struct CE_handle *copyeng)
qdf_mem_free(CE_state);
}
void hif_ce_desc_history_log_unregister(void)
{
__hif_ce_desc_history_log_unregister();
}
void hif_detach_htc(struct hif_opaque_softc *hif_ctx)
{
struct HIF_CE_state *hif_state = HIF_GET_CE_STATE(hif_ctx);