Merge "cnss2: Add code to pick hang data offset based on deviceID"

This commit is contained in:
qctecmdr 2020-04-27 18:02:44 -07:00 • committed by Gerrit - the friendly Code Review server
commit e03730187b

View file

@ -78,7 +78,8 @@ static DEFINE_SPINLOCK(time_sync_lock);
#define CNSS_DEBUG_DUMP_SRAM_SIZE 10
#define HANG_DATA_LENGTH 384
#define HANG_DATA_OFFSET ((3 * 1024 * 1024) - HANG_DATA_LENGTH)
#define HST_HANG_DATA_OFFSET ((3 * 1024 * 1024) - HANG_DATA_LENGTH)
#define HSP_HANG_DATA_OFFSET ((2 * 1024 * 1024) - HANG_DATA_LENGTH)
static struct cnss_pci_reg ce_src[] = {
{ "SRC_RING_BASE_LSB", QCA6390_CE_SRC_RING_BASE_LSB_OFFSET },
@ -3883,16 +3884,30 @@ static void cnss_pci_send_hang_event(struct cnss_pci_data *pci_priv)
struct cnss_fw_mem *fw_mem = plat_priv->fw_mem;
struct cnss_hang_event hang_event;
void *hang_data_va = NULL;
u64 offset = 0;
int i = 0;
if (!fw_mem || !plat_priv->fw_mem_seg_len)
return;
memset(&hang_event, 0, sizeof(hang_event));
switch (pci_priv->device_id) {
case QCA6390_DEVICE_ID:
offset = HST_HANG_DATA_OFFSET;
break;
case QCA6490_DEVICE_ID:
offset = HSP_HANG_DATA_OFFSET;
break;
default:
cnss_pr_err("Skip Hang Event Data as unsupported Device ID received: %d\n",
pci_priv->device_id);
return;
}
for (i = 0; i < plat_priv->fw_mem_seg_len; i++) {
if (fw_mem[i].type == QMI_WLFW_MEM_TYPE_DDR_V01 &&
fw_mem[i].va) {
hang_data_va = fw_mem[i].va + HANG_DATA_OFFSET;
hang_data_va = fw_mem[i].va + offset;
hang_event.hang_event_data = kmemdup(hang_data_va,
HANG_DATA_LENGTH,
GFP_ATOMIC);