|
@@ -1,5 +1,5 @@
|
|
/*
|
|
/*
|
|
- * Copyright (c) 2016-2019 The Linux Foundation. All rights reserved.
|
|
|
|
|
|
+ * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
|
|
*
|
|
*
|
|
* Permission to use, copy, modify, and/or distribute this software for
|
|
* Permission to use, copy, modify, and/or distribute this software for
|
|
* any purpose with or without fee is hereby granted, provided that the
|
|
* any purpose with or without fee is hereby granted, provided that the
|
|
@@ -28,6 +28,7 @@
|
|
#include "wlan_cfg.h"
|
|
#include "wlan_cfg.h"
|
|
#include "cfg_ucfg_api.h"
|
|
#include "cfg_ucfg_api.h"
|
|
#include "hal_api.h"
|
|
#include "hal_api.h"
|
|
|
|
+#include "dp_types.h"
|
|
|
|
|
|
/*
|
|
/*
|
|
* FIX THIS -
|
|
* FIX THIS -
|
|
@@ -91,48 +92,129 @@
|
|
#define WLAN_CFG_HOST2RXDMA_RING_MASK_3 0x0
|
|
#define WLAN_CFG_HOST2RXDMA_RING_MASK_3 0x0
|
|
|
|
|
|
#if defined(WLAN_MAX_PDEVS) && (WLAN_MAX_PDEVS == 1)
|
|
#if defined(WLAN_MAX_PDEVS) && (WLAN_MAX_PDEVS == 1)
|
|
-static const int tx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int tx_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
WLAN_CFG_TX_RING_MASK_0, 0, 0, 0, 0, 0, 0};
|
|
WLAN_CFG_TX_RING_MASK_0, 0, 0, 0, 0, 0, 0};
|
|
|
|
|
|
#ifndef IPA_OFFLOAD
|
|
#ifndef IPA_OFFLOAD
|
|
-static const int rx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int rx_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
0, WLAN_CFG_RX_RING_MASK_0, WLAN_CFG_RX_RING_MASK_1, WLAN_CFG_RX_RING_MASK_2, WLAN_CFG_RX_RING_MASK_3, 0, 0};
|
|
0, WLAN_CFG_RX_RING_MASK_0, WLAN_CFG_RX_RING_MASK_1, WLAN_CFG_RX_RING_MASK_2, WLAN_CFG_RX_RING_MASK_3, 0, 0};
|
|
#else
|
|
#else
|
|
-static const int rx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int rx_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
0, WLAN_CFG_RX_RING_MASK_0, WLAN_CFG_RX_RING_MASK_1, WLAN_CFG_RX_RING_MASK_2, 0, 0, 0};
|
|
0, WLAN_CFG_RX_RING_MASK_0, WLAN_CFG_RX_RING_MASK_1, WLAN_CFG_RX_RING_MASK_2, 0, 0, 0};
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-static const int rx_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int rx_mon_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
0, WLAN_CFG_RX_MON_RING_MASK_0, WLAN_CFG_RX_MON_RING_MASK_1, 0, 0, 0, 0};
|
|
0, WLAN_CFG_RX_MON_RING_MASK_0, WLAN_CFG_RX_MON_RING_MASK_1, 0, 0, 0, 0};
|
|
|
|
|
|
-static const int host2rxdma_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int host2rxdma_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
0, 0, 0, 0, 0, 0, 0};
|
|
0, 0, 0, 0, 0, 0, 0};
|
|
|
|
|
|
-static const int rxdma2host_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int rxdma2host_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
0, 0, 0, 0, 0, WLAN_CFG_RXDMA2HOST_RING_MASK_0, WLAN_CFG_RXDMA2HOST_RING_MASK_1};
|
|
0, 0, 0, 0, 0, WLAN_CFG_RXDMA2HOST_RING_MASK_0, WLAN_CFG_RXDMA2HOST_RING_MASK_1};
|
|
|
|
|
|
-static const int host2rxdma_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int host2rxdma_mon_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
0, 0, 0, 0, 0, 0, 0};
|
|
0, 0, 0, 0, 0, 0, 0};
|
|
|
|
|
|
-static const int rxdma2host_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int rxdma2host_mon_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
0, 0, 0, 0, 0, 0, 0};
|
|
0, 0, 0, 0, 0, 0, 0};
|
|
|
|
|
|
-static const int rx_err_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int rx_err_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
0, 0, 0, 0, 0, 0, WLAN_CFG_RX_ERR_RING_MASK_0};
|
|
0, 0, 0, 0, 0, 0, WLAN_CFG_RX_ERR_RING_MASK_0};
|
|
|
|
|
|
-static const int rx_wbm_rel_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int rx_wbm_rel_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
0, 0, 0, 0, 0, 0, WLAN_CFG_RX_WBM_REL_RING_MASK_0};
|
|
0, 0, 0, 0, 0, 0, WLAN_CFG_RX_WBM_REL_RING_MASK_0};
|
|
|
|
|
|
-static const int reo_status_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int reo_status_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
0, 0, 0, 0, 0, 0, WLAN_CFG_REO_STATUS_RING_MASK_0};
|
|
0, 0, 0, 0, 0, 0, WLAN_CFG_REO_STATUS_RING_MASK_0};
|
|
|
|
+
|
|
|
|
+static const int tx_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0};
|
|
|
|
+
|
|
|
|
+static const int rx_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0};
|
|
|
|
+
|
|
|
|
+static const int rx_mon_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0};
|
|
|
|
+
|
|
|
|
+static const int host2rxdma_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0};
|
|
|
|
+
|
|
|
|
+static const int rxdma2host_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0};
|
|
|
|
+
|
|
|
|
+static const int host2rxdma_mon_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0};
|
|
|
|
+
|
|
|
|
+static const int rxdma2host_mon_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0};
|
|
|
|
+
|
|
|
|
+static const int rx_err_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0};
|
|
|
|
+
|
|
|
|
+static const int rx_wbm_rel_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0};
|
|
|
|
+
|
|
|
|
+static const int reo_status_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0};
|
|
|
|
+
|
|
#else
|
|
#else
|
|
-static const int tx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+
|
|
|
|
+static const int tx_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
WLAN_CFG_TX_RING_MASK_0,
|
|
WLAN_CFG_TX_RING_MASK_0,
|
|
WLAN_CFG_TX_RING_MASK_1,
|
|
WLAN_CFG_TX_RING_MASK_1,
|
|
WLAN_CFG_TX_RING_MASK_2,
|
|
WLAN_CFG_TX_RING_MASK_2,
|
|
WLAN_CFG_TX_RING_MASK_3};
|
|
WLAN_CFG_TX_RING_MASK_3};
|
|
|
|
|
|
-static const int rx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int rx_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ WLAN_CFG_RX_RING_MASK_0,
|
|
|
|
+ WLAN_CFG_RX_RING_MASK_1,
|
|
|
|
+ WLAN_CFG_RX_RING_MASK_2,
|
|
|
|
+ WLAN_CFG_RX_RING_MASK_3};
|
|
|
|
+
|
|
|
|
+static const int rx_mon_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ 0, 0, 0};
|
|
|
|
+
|
|
|
|
+static const int host2rxdma_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ 0, 0, 0, 0};
|
|
|
|
+
|
|
|
|
+static const int rxdma2host_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ 0, 0, 0, 0};
|
|
|
|
+
|
|
|
|
+static const int host2rxdma_mon_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ WLAN_CFG_HOST2RXDMA_MON_RING_MASK_0,
|
|
|
|
+ WLAN_CFG_HOST2RXDMA_MON_RING_MASK_1,
|
|
|
|
+ WLAN_CFG_HOST2RXDMA_MON_RING_MASK_2};
|
|
|
|
+
|
|
|
|
+static const int rxdma2host_mon_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ WLAN_CFG_RXDMA2HOST_MON_RING_MASK_0,
|
|
|
|
+ WLAN_CFG_RXDMA2HOST_MON_RING_MASK_1,
|
|
|
|
+ WLAN_CFG_RXDMA2HOST_MON_RING_MASK_2};
|
|
|
|
+
|
|
|
|
+static const int rx_err_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ WLAN_CFG_RX_ERR_RING_MASK_0,
|
|
|
|
+ WLAN_CFG_RX_ERR_RING_MASK_1,
|
|
|
|
+ WLAN_CFG_RX_ERR_RING_MASK_2,
|
|
|
|
+ WLAN_CFG_RX_ERR_RING_MASK_3};
|
|
|
|
+
|
|
|
|
+static const int rx_wbm_rel_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ WLAN_CFG_RX_WBM_REL_RING_MASK_0,
|
|
|
|
+ WLAN_CFG_RX_WBM_REL_RING_MASK_1,
|
|
|
|
+ WLAN_CFG_RX_WBM_REL_RING_MASK_2,
|
|
|
|
+ WLAN_CFG_RX_WBM_REL_RING_MASK_3};
|
|
|
|
+
|
|
|
|
+static const int reo_status_ring_mask_msi[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ WLAN_CFG_REO_STATUS_RING_MASK_0,
|
|
|
|
+ WLAN_CFG_REO_STATUS_RING_MASK_1,
|
|
|
|
+ WLAN_CFG_REO_STATUS_RING_MASK_2,
|
|
|
|
+ WLAN_CFG_REO_STATUS_RING_MASK_3};
|
|
|
|
+
|
|
|
|
+static const int tx_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
+ WLAN_CFG_TX_RING_MASK_0,
|
|
|
|
+ WLAN_CFG_TX_RING_MASK_1,
|
|
|
|
+ WLAN_CFG_TX_RING_MASK_2,
|
|
|
|
+ WLAN_CFG_TX_RING_MASK_3};
|
|
|
|
+
|
|
|
|
+static const int rx_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
@@ -145,7 +227,7 @@ static const int rx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
WLAN_CFG_RX_RING_MASK_2,
|
|
WLAN_CFG_RX_RING_MASK_2,
|
|
WLAN_CFG_RX_RING_MASK_3};
|
|
WLAN_CFG_RX_RING_MASK_3};
|
|
|
|
|
|
-static const int rx_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int rx_mon_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
@@ -154,19 +236,19 @@ static const int rx_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
WLAN_CFG_RX_MON_RING_MASK_1,
|
|
WLAN_CFG_RX_MON_RING_MASK_1,
|
|
WLAN_CFG_RX_MON_RING_MASK_2};
|
|
WLAN_CFG_RX_MON_RING_MASK_2};
|
|
|
|
|
|
-static const int host2rxdma_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int host2rxdma_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
WLAN_CFG_HOST2RXDMA_RING_MASK_0,
|
|
WLAN_CFG_HOST2RXDMA_RING_MASK_0,
|
|
WLAN_CFG_HOST2RXDMA_RING_MASK_1,
|
|
WLAN_CFG_HOST2RXDMA_RING_MASK_1,
|
|
WLAN_CFG_HOST2RXDMA_RING_MASK_2,
|
|
WLAN_CFG_HOST2RXDMA_RING_MASK_2,
|
|
WLAN_CFG_HOST2RXDMA_RING_MASK_3};
|
|
WLAN_CFG_HOST2RXDMA_RING_MASK_3};
|
|
|
|
|
|
-static const int rxdma2host_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int rxdma2host_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
WLAN_CFG_RXDMA2HOST_RING_MASK_0,
|
|
WLAN_CFG_RXDMA2HOST_RING_MASK_0,
|
|
WLAN_CFG_RXDMA2HOST_RING_MASK_1,
|
|
WLAN_CFG_RXDMA2HOST_RING_MASK_1,
|
|
WLAN_CFG_RXDMA2HOST_RING_MASK_2,
|
|
WLAN_CFG_RXDMA2HOST_RING_MASK_2,
|
|
WLAN_CFG_RXDMA2HOST_RING_MASK_3};
|
|
WLAN_CFG_RXDMA2HOST_RING_MASK_3};
|
|
|
|
|
|
-static const int host2rxdma_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int host2rxdma_mon_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
@@ -175,7 +257,7 @@ static const int host2rxdma_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
WLAN_CFG_HOST2RXDMA_MON_RING_MASK_1,
|
|
WLAN_CFG_HOST2RXDMA_MON_RING_MASK_1,
|
|
WLAN_CFG_HOST2RXDMA_MON_RING_MASK_2};
|
|
WLAN_CFG_HOST2RXDMA_MON_RING_MASK_2};
|
|
|
|
|
|
-static const int rxdma2host_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int rxdma2host_mon_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
@@ -184,19 +266,19 @@ static const int rxdma2host_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
WLAN_CFG_RXDMA2HOST_MON_RING_MASK_1,
|
|
WLAN_CFG_RXDMA2HOST_MON_RING_MASK_1,
|
|
WLAN_CFG_RXDMA2HOST_MON_RING_MASK_2};
|
|
WLAN_CFG_RXDMA2HOST_MON_RING_MASK_2};
|
|
|
|
|
|
-static const int rx_err_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int rx_err_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
WLAN_CFG_RX_ERR_RING_MASK_0,
|
|
WLAN_CFG_RX_ERR_RING_MASK_0,
|
|
WLAN_CFG_RX_ERR_RING_MASK_1,
|
|
WLAN_CFG_RX_ERR_RING_MASK_1,
|
|
WLAN_CFG_RX_ERR_RING_MASK_2,
|
|
WLAN_CFG_RX_ERR_RING_MASK_2,
|
|
WLAN_CFG_RX_ERR_RING_MASK_3};
|
|
WLAN_CFG_RX_ERR_RING_MASK_3};
|
|
|
|
|
|
-static const int rx_wbm_rel_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int rx_wbm_rel_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
WLAN_CFG_RX_WBM_REL_RING_MASK_0,
|
|
WLAN_CFG_RX_WBM_REL_RING_MASK_0,
|
|
WLAN_CFG_RX_WBM_REL_RING_MASK_1,
|
|
WLAN_CFG_RX_WBM_REL_RING_MASK_1,
|
|
WLAN_CFG_RX_WBM_REL_RING_MASK_2,
|
|
WLAN_CFG_RX_WBM_REL_RING_MASK_2,
|
|
WLAN_CFG_RX_WBM_REL_RING_MASK_3};
|
|
WLAN_CFG_RX_WBM_REL_RING_MASK_3};
|
|
|
|
|
|
-static const int reo_status_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
|
|
|
|
+static const int reo_status_ring_mask_integrated[WLAN_CFG_INT_NUM_CONTEXTS] = {
|
|
WLAN_CFG_REO_STATUS_RING_MASK_0,
|
|
WLAN_CFG_REO_STATUS_RING_MASK_0,
|
|
WLAN_CFG_REO_STATUS_RING_MASK_1,
|
|
WLAN_CFG_REO_STATUS_RING_MASK_1,
|
|
WLAN_CFG_REO_STATUS_RING_MASK_2,
|
|
WLAN_CFG_REO_STATUS_RING_MASK_2,
|
|
@@ -287,6 +369,59 @@ static const uint8_t rx_fst_toeplitz_key[WLAN_CFG_RX_FST_TOEPLITZ_KEYLEN] = {
|
|
0x6a, 0x42, 0xb7, 0x3b, 0xbe, 0xac, 0x01, 0xfa
|
|
0x6a, 0x42, 0xb7, 0x3b, 0xbe, 0xac, 0x01, 0xfa
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+void wlan_cfg_fill_interrupt_mask(struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx,
|
|
|
|
+ int interrupt_mode) {
|
|
|
|
+ int i = 0;
|
|
|
|
+
|
|
|
|
+ if (interrupt_mode == DP_INTR_INTEGRATED) {
|
|
|
|
+ for (i = 0; i < WLAN_CFG_INT_NUM_CONTEXTS; i++) {
|
|
|
|
+ wlan_cfg_ctx->int_tx_ring_mask[i] =
|
|
|
|
+ tx_ring_mask_integrated[i];
|
|
|
|
+ wlan_cfg_ctx->int_rx_ring_mask[i] =
|
|
|
|
+ rx_ring_mask_integrated[i];
|
|
|
|
+ wlan_cfg_ctx->int_rx_mon_ring_mask[i] =
|
|
|
|
+ rx_mon_ring_mask_integrated[i];
|
|
|
|
+ wlan_cfg_ctx->int_rx_err_ring_mask[i] =
|
|
|
|
+ rx_err_ring_mask_integrated[i];
|
|
|
|
+ wlan_cfg_ctx->int_rx_wbm_rel_ring_mask[i] =
|
|
|
|
+ rx_wbm_rel_ring_mask_integrated[i];
|
|
|
|
+ wlan_cfg_ctx->int_reo_status_ring_mask[i] =
|
|
|
|
+ reo_status_ring_mask_integrated[i];
|
|
|
|
+ wlan_cfg_ctx->int_rxdma2host_ring_mask[i] =
|
|
|
|
+ rxdma2host_ring_mask_integrated[i];
|
|
|
|
+ wlan_cfg_ctx->int_host2rxdma_ring_mask[i] =
|
|
|
|
+ host2rxdma_ring_mask_integrated[i];
|
|
|
|
+ wlan_cfg_ctx->int_host2rxdma_mon_ring_mask[i] =
|
|
|
|
+ host2rxdma_mon_ring_mask_integrated[i];
|
|
|
|
+ wlan_cfg_ctx->int_rxdma2host_mon_ring_mask[i] =
|
|
|
|
+ rxdma2host_mon_ring_mask_integrated[i];
|
|
|
|
+ }
|
|
|
|
+ } else if (interrupt_mode == DP_INTR_MSI){
|
|
|
|
+ for (i = 0; i < WLAN_CFG_INT_NUM_CONTEXTS; i++) {
|
|
|
|
+ wlan_cfg_ctx->int_tx_ring_mask[i] = tx_ring_mask_msi[i];
|
|
|
|
+ wlan_cfg_ctx->int_rx_ring_mask[i] = rx_ring_mask_msi[i];
|
|
|
|
+ wlan_cfg_ctx->int_rx_mon_ring_mask[i] =
|
|
|
|
+ rx_mon_ring_mask_msi[i];
|
|
|
|
+ wlan_cfg_ctx->int_rx_err_ring_mask[i] =
|
|
|
|
+ rx_err_ring_mask_msi[i];
|
|
|
|
+ wlan_cfg_ctx->int_rx_wbm_rel_ring_mask[i] =
|
|
|
|
+ rx_wbm_rel_ring_mask_msi[i];
|
|
|
|
+ wlan_cfg_ctx->int_reo_status_ring_mask[i] =
|
|
|
|
+ reo_status_ring_mask_msi[i];
|
|
|
|
+ wlan_cfg_ctx->int_rxdma2host_ring_mask[i] =
|
|
|
|
+ rxdma2host_ring_mask_msi[i];
|
|
|
|
+ wlan_cfg_ctx->int_host2rxdma_ring_mask[i] =
|
|
|
|
+ host2rxdma_ring_mask_msi[i];
|
|
|
|
+ wlan_cfg_ctx->int_host2rxdma_mon_ring_mask[i] =
|
|
|
|
+ host2rxdma_mon_ring_mask_msi[i];
|
|
|
|
+ wlan_cfg_ctx->int_rxdma2host_mon_ring_mask[i] =
|
|
|
|
+ rxdma2host_mon_ring_mask_msi[i];
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ qdf_err("Interrupt mode %d", interrupt_mode);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* wlan_cfg_soc_attach() - Allocate and prepare SoC configuration
|
|
* wlan_cfg_soc_attach() - Allocate and prepare SoC configuration
|
|
* @psoc - Object manager psoc
|
|
* @psoc - Object manager psoc
|
|
@@ -295,8 +430,6 @@ static const uint8_t rx_fst_toeplitz_key[WLAN_CFG_RX_FST_TOEPLITZ_KEYLEN] = {
|
|
struct wlan_cfg_dp_soc_ctxt *
|
|
struct wlan_cfg_dp_soc_ctxt *
|
|
wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc)
|
|
wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc)
|
|
{
|
|
{
|
|
- int i = 0;
|
|
|
|
-
|
|
|
|
struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx =
|
|
struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx =
|
|
qdf_mem_malloc(sizeof(struct wlan_cfg_dp_soc_ctxt));
|
|
qdf_mem_malloc(sizeof(struct wlan_cfg_dp_soc_ctxt));
|
|
|
|
|
|
@@ -341,25 +474,6 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc)
|
|
wlan_cfg_ctx->int_timer_threshold_other =
|
|
wlan_cfg_ctx->int_timer_threshold_other =
|
|
cfg_get(psoc, CFG_DP_INT_TIMER_THRESHOLD_OTHER);
|
|
cfg_get(psoc, CFG_DP_INT_TIMER_THRESHOLD_OTHER);
|
|
|
|
|
|
- for (i = 0; i < WLAN_CFG_INT_NUM_CONTEXTS; i++) {
|
|
|
|
- wlan_cfg_ctx->int_tx_ring_mask[i] = tx_ring_mask[i];
|
|
|
|
- wlan_cfg_ctx->int_rx_ring_mask[i] = rx_ring_mask[i];
|
|
|
|
- wlan_cfg_ctx->int_rx_mon_ring_mask[i] = rx_mon_ring_mask[i];
|
|
|
|
- wlan_cfg_ctx->int_rx_err_ring_mask[i] = rx_err_ring_mask[i];
|
|
|
|
- wlan_cfg_ctx->int_rx_wbm_rel_ring_mask[i] =
|
|
|
|
- rx_wbm_rel_ring_mask[i];
|
|
|
|
- wlan_cfg_ctx->int_reo_status_ring_mask[i] =
|
|
|
|
- reo_status_ring_mask[i];
|
|
|
|
- wlan_cfg_ctx->int_rxdma2host_ring_mask[i] =
|
|
|
|
- rxdma2host_ring_mask[i];
|
|
|
|
- wlan_cfg_ctx->int_host2rxdma_ring_mask[i] =
|
|
|
|
- host2rxdma_ring_mask[i];
|
|
|
|
- wlan_cfg_ctx->int_host2rxdma_mon_ring_mask[i] =
|
|
|
|
- host2rxdma_mon_ring_mask[i];
|
|
|
|
- wlan_cfg_ctx->int_rxdma2host_mon_ring_mask[i] =
|
|
|
|
- rxdma2host_mon_ring_mask[i];
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/* This is default mapping and can be overridden by HW config
|
|
/* This is default mapping and can be overridden by HW config
|
|
* received from FW */
|
|
* received from FW */
|
|
wlan_cfg_set_hw_macid(wlan_cfg_ctx, 0, 1);
|
|
wlan_cfg_set_hw_macid(wlan_cfg_ctx, 0, 1);
|