qcacmn: Data path changes for QCN9100 bringup

Initial changes made for bring up of
QCN9100 in data path and hal

Change-Id: I6cbe90428b552b6ff5733bc0f60bfb9f7933bc9a
This commit is contained in:
Pavankumar Nandeshwar
2020-08-24 23:53:46 +05:30
committed by snandini
parent 52ea4c89d9
commit 6756b1a5aa
7 changed files with 1012 additions and 971 deletions

View File

@@ -115,6 +115,7 @@ ol_txrx_soc_handle cdp_soc_attach(u_int16_t devid,
case QCA5018_DEVICE_ID: case QCA5018_DEVICE_ID:
case QCA6290_DEVICE_ID: case QCA6290_DEVICE_ID:
case QCN9000_DEVICE_ID: case QCN9000_DEVICE_ID:
case QCN9100_DEVICE_ID:
case QCA6390_DEVICE_ID: case QCA6390_DEVICE_ID:
case QCA6490_DEVICE_ID: case QCA6490_DEVICE_ID:
case QCA6750_DEVICE_ID: case QCA6750_DEVICE_ID:

View File

@@ -12919,6 +12919,7 @@ static void dp_soc_cfg_init(struct dp_soc *soc)
dp_config_full_mon_mode((struct cdp_soc_t *)soc, 1); dp_config_full_mon_mode((struct cdp_soc_t *)soc, 1);
break; break;
case TARGET_TYPE_QCA5018: case TARGET_TYPE_QCA5018:
case TARGET_TYPE_QCN9100:
wlan_cfg_set_reo_dst_ring_size(soc->wlan_cfg_ctx, wlan_cfg_set_reo_dst_ring_size(soc->wlan_cfg_ctx,
REO_DST_RING_SIZE_QCA8074); REO_DST_RING_SIZE_QCA8074);
soc->ast_override_support = 1; soc->ast_override_support = 1;
@@ -12968,6 +12969,7 @@ static void dp_soc_cfg_attach(struct dp_soc *soc)
break; break;
case TARGET_TYPE_QCA8074V2: case TARGET_TYPE_QCA8074V2:
case TARGET_TYPE_QCA6018: case TARGET_TYPE_QCA6018:
case TARGET_TYPE_QCN9100:
case TARGET_TYPE_QCA5018: case TARGET_TYPE_QCA5018:
wlan_cfg_set_tso_desc_attach_defer(soc->wlan_cfg_ctx, 1); wlan_cfg_set_tso_desc_attach_defer(soc->wlan_cfg_ctx, 1);
wlan_cfg_set_reo_dst_ring_size(soc->wlan_cfg_ctx, wlan_cfg_set_reo_dst_ring_size(soc->wlan_cfg_ctx,

View File

@@ -903,6 +903,7 @@ hal_rx_status_get_tlv_info_generic(void *rx_tlv_hdr, void *ppduinfo,
case TARGET_TYPE_QCA6018: case TARGET_TYPE_QCA6018:
case TARGET_TYPE_QCA5018: case TARGET_TYPE_QCA5018:
case TARGET_TYPE_QCN9000: case TARGET_TYPE_QCN9000:
case TARGET_TYPE_QCN9100:
#ifdef QCA_WIFI_QCA6390 #ifdef QCA_WIFI_QCA6390
case TARGET_TYPE_QCA6390: case TARGET_TYPE_QCA6390:
#endif #endif

View File

@@ -40,6 +40,9 @@ void hal_qca6490_attach(struct hal_soc *hal);
#ifdef QCA_WIFI_QCN9000 #ifdef QCA_WIFI_QCN9000
void hal_qcn9000_attach(struct hal_soc *hal); void hal_qcn9000_attach(struct hal_soc *hal);
#endif #endif
#ifdef QCA_WIFI_QCN9100
void hal_qcn9100_attach(struct hal_soc *hal);
#endif
#ifdef QCA_WIFI_QCA6750 #ifdef QCA_WIFI_QCA6750
void hal_qca6750_attach(struct hal_soc *hal); void hal_qca6750_attach(struct hal_soc *hal);
#endif #endif
@@ -324,6 +327,18 @@ static void hal_target_based_configure(struct hal_soc *hal)
break; break;
#endif #endif
#if defined(QCA_WIFI_QCN9100)
case TARGET_TYPE_QCN9100:
hal->use_register_windowing = true;
/*
* Static window map is enabled for qcn9000 to use 2mb bar
* size and use multiple windows to write into registers.
*/
hal->static_window_map = true;
hal_qcn9100_attach(hal);
break;
#endif
#ifdef QCA_WIFI_QCN9000 #ifdef QCA_WIFI_QCN9000
case TARGET_TYPE_QCN9000: case TARGET_TYPE_QCN9000:
hal->use_register_windowing = true; hal->use_register_windowing = true;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -24,28 +24,26 @@
#include "hal_api_mon.h" #include "hal_api_mon.h"
/** /**
* hal_tx_desc_set_dscp_tid_table_id_8074v2() - Sets DSCP to TID conversion * hal_tx_desc_set_dscp_tid_table_id_9100() - Sets DSCP to TID conversion
* table ID * table ID
* @desc: Handle to Tx Descriptor * @desc: Handle to Tx Descriptor
* @id: DSCP to tid conversion table to be used for this frame * @id: DSCP to tid conversion table to be used for this frame
* *
* Return: void * Return: void
*/ */
static void hal_tx_desc_set_dscp_tid_table_id_9100(void *desc, uint8_t id)
static void hal_tx_desc_set_dscp_tid_table_id_8074v2(void *desc, uint8_t id)
{ {
HAL_SET_FLD(desc, TCL_DATA_CMD_5, HAL_SET_FLD(desc, TCL_DATA_CMD_5,
DSCP_TID_TABLE_NUM) |= DSCP_TID_TABLE_NUM) |=
HAL_TX_SM(TCL_DATA_CMD_5, HAL_TX_SM(TCL_DATA_CMD_5, DSCP_TID_TABLE_NUM, id);
DSCP_TID_TABLE_NUM, id);
} }
#define DSCP_TID_TABLE_SIZE 24 #define DSCP_TID_TABLE_SIZE 24
#define NUM_WORDS_PER_DSCP_TID_TABLE (DSCP_TID_TABLE_SIZE / 4) #define NUM_WORDS_PER_DSCP_TID_TABLE (DSCP_TID_TABLE_SIZE / 4)
#define HAL_TX_NUM_DSCP_REGISTER_SIZE 32 #define HAL_TX_NUM_DSCP_REGISTER_SIZE 32
/** /**
* hal_tx_set_dscp_tid_map_8074v2() - Configure default DSCP to TID map table * hal_tx_set_dscp_tid_map_9100() - Configure default DSCP to TID map table
* @soc: HAL SoC context * @soc: HAL SoC context
* @map: DSCP-TID mapping table * @map: DSCP-TID mapping table
* @id: mapping table ID - 0,1 * @id: mapping table ID - 0,1
@@ -57,10 +55,8 @@ static void hal_tx_desc_set_dscp_tid_table_id_8074v2(void *desc, uint8_t id)
* *
* Return: none * Return: none
*/ */
static void hal_tx_set_dscp_tid_map_9100(struct hal_soc *soc,
static void hal_tx_set_dscp_tid_map_8074v2(struct hal_soc *soc, uint8_t *map, uint8_t id)
uint8_t *map,
uint8_t id)
{ {
int i; int i;
uint32_t addr, cmn_reg_addr; uint32_t addr, cmn_reg_addr;
@@ -115,7 +111,7 @@ static void hal_tx_set_dscp_tid_map_8074v2(struct hal_soc *soc,
} }
/** /**
* hal_tx_update_dscp_tid_8074v2() - Update the dscp tid map table as * hal_tx_update_dscp_tid_9100() - Update the dscp tid map table as
updated by user updated by user
* @soc: HAL SoC context * @soc: HAL SoC context
* @map: DSCP-TID mapping table * @map: DSCP-TID mapping table
@@ -124,15 +120,16 @@ static void hal_tx_set_dscp_tid_map_8074v2(struct hal_soc *soc,
* *
* Return: void * Return: void
*/ */
static void hal_tx_update_dscp_tid_8074v2(struct hal_soc *soc, uint8_t tid, static void hal_tx_update_dscp_tid_9100(struct hal_soc *soc, uint8_t tid,
uint8_t id, uint8_t dscp) uint8_t id, uint8_t dscp)
{ {
uint32_t addr, addr1, cmn_reg_addr, regmask = 0xFFFFFFFF; uint32_t addr, addr1, cmn_reg_addr;
uint32_t start_value = 0, end_value = 0; uint32_t start_value = 0, end_value = 0;
uint32_t regval; uint32_t regval;
uint8_t end_bits = 0; uint8_t end_bits = 0;
uint8_t start_bits = 0; uint8_t start_bits = 0;
uint32_t start_index, end_index; uint32_t start_index, end_index;
cmn_reg_addr = HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_ADDR( cmn_reg_addr = HWIO_TCL_R0_CONS_RING_CMN_CTRL_REG_ADDR(
SEQ_WCSS_UMAC_MAC_TCL_REG_OFFSET); SEQ_WCSS_UMAC_MAC_TCL_REG_OFFSET);
@@ -169,7 +166,7 @@ static void hal_tx_update_dscp_tid_8074v2(struct hal_soc *soc, uint8_t tid,
regval = HAL_REG_READ(soc, addr); regval = HAL_REG_READ(soc, addr);
if (end_index < start_index) if (end_index < start_index)
regval &= (regmask >> start_bits); regval &= (~0) >> start_bits;
else else
regval &= ~(7 << start_index); regval &= ~(7 << start_index);
@@ -194,7 +191,7 @@ static void hal_tx_update_dscp_tid_8074v2(struct hal_soc *soc, uint8_t tid,
} }
/** /**
* hal_tx_desc_set_lmac_id - Set the lmac_id value * hal_tx_desc_set_lmac_id_9100 - Set the lmac_id value
* @desc: Handle to Tx Descriptor * @desc: Handle to Tx Descriptor
* @lmac_id: mac Id to ast matching * @lmac_id: mac Id to ast matching
* b00 mac 0 * b00 mac 0
@@ -204,20 +201,21 @@ static void hal_tx_update_dscp_tid_8074v2(struct hal_soc *soc, uint8_t tid,
* *
* Return: void * Return: void
*/ */
static void hal_tx_desc_set_lmac_id_8074v2(void *desc, uint8_t lmac_id) static void hal_tx_desc_set_lmac_id_9100(void *desc, uint8_t lmac_id)
{ {
HAL_SET_FLD(desc, TCL_DATA_CMD_4, LMAC_ID) |= HAL_SET_FLD(desc, TCL_DATA_CMD_4, LMAC_ID) |=
HAL_TX_SM(TCL_DATA_CMD_4, LMAC_ID, lmac_id); HAL_TX_SM(TCL_DATA_CMD_4, LMAC_ID, lmac_id);
} }
/** /**
* hal_tx_init_cmd_credit_ring_8074v2() - Initialize command/credit SRNG * hal_tx_init_cmd_credit_ring_9100() - Initialize TCL command/credit SRNG
* @hal_soc_hdl: Handle to HAL SoC structure * @hal_soc_hdl: Handle to HAL SoC structure
* @hal_srng: Handle to HAL SRNG structure * @hal_srng: Handle to HAL SRNG structure
* *
* Return: none * Return: none
*/ */
static inline void hal_tx_init_cmd_credit_ring_8074v2(hal_soc_handle_t hal_soc_hdl, static inline void
hal_tx_init_cmd_credit_ring_9100(hal_soc_handle_t hal_soc_hdl,
hal_ring_handle_t hal_ring_hdl) hal_ring_handle_t hal_ring_hdl)
{ {
uint8_t *desc_addr; uint8_t *desc_addr;