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:

committed by
snandini

parent
52ea4c89d9
commit
6756b1a5aa
@@ -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:
|
||||||
|
@@ -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,
|
||||||
|
@@ -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
|
||||||
|
@@ -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
@@ -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,21 +201,22 @@ 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_ring_handle_t hal_ring_hdl)
|
hal_tx_init_cmd_credit_ring_9100(hal_soc_handle_t hal_soc_hdl,
|
||||||
|
hal_ring_handle_t hal_ring_hdl)
|
||||||
{
|
{
|
||||||
uint8_t *desc_addr;
|
uint8_t *desc_addr;
|
||||||
struct hal_srng_params srng_params;
|
struct hal_srng_params srng_params;
|
||||||
|
Reference in New Issue
Block a user