qcacmn: Support for 8021p pcp to tid mapping
Add HAL and DP support to configure 8021p PCP to TID mapping tables into Hardware. Change-Id: I8a54970c8c4ef56f3c487b6e648c4411b3abde0e
This commit is contained in:
@@ -158,6 +158,22 @@ static uint8_t default_dscp_tid_map[DSCP_TID_MAP_MAX] = {
|
|||||||
7, 7, 7, 7, 7, 7, 7, 7,
|
7, 7, 7, 7, 7, 7, 7, 7,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* default_pcp_tid_map - Default PCP-TID mapping
|
||||||
|
*
|
||||||
|
* PCP TID
|
||||||
|
* 000 0
|
||||||
|
* 001 1
|
||||||
|
* 010 2
|
||||||
|
* 011 3
|
||||||
|
* 100 4
|
||||||
|
* 101 5
|
||||||
|
* 110 6
|
||||||
|
* 111 7
|
||||||
|
*/
|
||||||
|
static uint8_t default_pcp_tid_map[PCP_TID_MAP_MAX] = {
|
||||||
|
0, 1, 2, 3, 4, 5, 6, 7,
|
||||||
|
};
|
||||||
/*
|
/*
|
||||||
* struct dp_rate_debug
|
* struct dp_rate_debug
|
||||||
*
|
*
|
||||||
@@ -3015,6 +3031,25 @@ dp_dscp_tid_map_setup(struct dp_pdev *pdev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_pcp_tid_map_setup(): Initialize the pcp-tid maps
|
||||||
|
* @pdev - DP_PDEV handle
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
static inline void
|
||||||
|
dp_pcp_tid_map_setup(struct dp_pdev *pdev)
|
||||||
|
{
|
||||||
|
struct dp_soc *soc = pdev->soc;
|
||||||
|
|
||||||
|
if (!soc)
|
||||||
|
return;
|
||||||
|
|
||||||
|
qdf_mem_copy(soc->pcp_tid_map, default_pcp_tid_map,
|
||||||
|
sizeof(default_pcp_tid_map));
|
||||||
|
hal_tx_set_pcp_tid_map_default(soc->hal_soc, default_pcp_tid_map);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef IPA_OFFLOAD
|
#ifdef IPA_OFFLOAD
|
||||||
/**
|
/**
|
||||||
* dp_setup_ipa_rx_refill_buf_ring - Setup second Rx refill buffer ring
|
* dp_setup_ipa_rx_refill_buf_ring - Setup second Rx refill buffer ring
|
||||||
@@ -3192,7 +3227,6 @@ void dp_iterate_update_peer_list(void *pdev_hdl)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* dp_pdev_attach_wifi3() - attach txrx pdev
|
* dp_pdev_attach_wifi3() - attach txrx pdev
|
||||||
* @ctrl_pdev: Opaque PDEV object
|
* @ctrl_pdev: Opaque PDEV object
|
||||||
@@ -3389,6 +3423,7 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
|||||||
dp_local_peer_id_pool_init(pdev);
|
dp_local_peer_id_pool_init(pdev);
|
||||||
|
|
||||||
dp_dscp_tid_map_setup(pdev);
|
dp_dscp_tid_map_setup(pdev);
|
||||||
|
dp_pcp_tid_map_setup(pdev);
|
||||||
|
|
||||||
/* Rx monitor mode specific init */
|
/* Rx monitor mode specific init */
|
||||||
if (dp_rx_pdev_mon_attach(pdev)) {
|
if (dp_rx_pdev_mon_attach(pdev)) {
|
||||||
@@ -4378,6 +4413,7 @@ static void dp_soc_set_nss_cfg_wifi3(struct cdp_soc_t *cdp_soc, int config)
|
|||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
|
||||||
FL("nss-wifi<0> nss config is enabled"));
|
FL("nss-wifi<0> nss config is enabled"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* dp_vdev_attach_wifi3() - attach txrx vdev
|
* dp_vdev_attach_wifi3() - attach txrx vdev
|
||||||
* @txrx_pdev: Datapath PDEV handle
|
* @txrx_pdev: Datapath PDEV handle
|
||||||
@@ -9528,6 +9564,97 @@ static uint32_t dp_tx_flow_ctrl_configure_pdev(void *pdev_handle,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_set_pdev_pcp_tid_map_wifi3(): update pcp tid map in pdev
|
||||||
|
* @vdev: DP_PDEV handle
|
||||||
|
* @pcp: pcp value
|
||||||
|
* @tid: tid value passed by the user
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success
|
||||||
|
*/
|
||||||
|
static QDF_STATUS dp_set_pdev_pcp_tid_map_wifi3(struct cdp_pdev *pdev_handle,
|
||||||
|
uint8_t pcp, uint8_t tid)
|
||||||
|
{
|
||||||
|
struct dp_pdev *pdev = (struct dp_pdev *)pdev_handle;
|
||||||
|
struct dp_soc *soc = pdev->soc;
|
||||||
|
|
||||||
|
soc->pcp_tid_map[pcp] = tid;
|
||||||
|
|
||||||
|
hal_tx_update_pcp_tid_map(soc->hal_soc, pcp, tid);
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_set_pdev_tidmap_prty_wifi3(): update tidmap priority in pdev
|
||||||
|
* @vdev: DP_PDEV handle
|
||||||
|
* @prio: tidmap priority value passed by the user
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success
|
||||||
|
*/
|
||||||
|
static QDF_STATUS dp_set_pdev_tidmap_prty_wifi3(struct cdp_pdev *pdev_handle,
|
||||||
|
uint8_t prio)
|
||||||
|
{
|
||||||
|
struct dp_pdev *pdev = (struct dp_pdev *)pdev_handle;
|
||||||
|
struct dp_soc *soc = pdev->soc;
|
||||||
|
|
||||||
|
soc->tidmap_prty = prio;
|
||||||
|
|
||||||
|
hal_tx_set_tidmap_prty(soc->hal_soc, prio);
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_set_vdev_pcp_tid_map_wifi3(): update pcp tid map in vdev
|
||||||
|
* @vdev: DP_VDEV handle
|
||||||
|
* @pcp: pcp value
|
||||||
|
* @tid: tid value passed by the user
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success
|
||||||
|
*/
|
||||||
|
static QDF_STATUS dp_set_vdev_pcp_tid_map_wifi3(struct cdp_vdev *vdev_handle,
|
||||||
|
uint8_t pcp, uint8_t tid)
|
||||||
|
{
|
||||||
|
struct dp_vdev *vdev = (struct dp_vdev *)vdev_handle;
|
||||||
|
|
||||||
|
vdev->pcp_tid_map[pcp] = tid;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_set_vdev_tidmap_tbl_id_wifi3(): update tidmapi tbl id in vdev
|
||||||
|
* @vdev: DP_VDEV handle
|
||||||
|
* @mapid: map_id value passed by the user
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success
|
||||||
|
*/
|
||||||
|
static QDF_STATUS dp_set_vdev_tidmap_tbl_id_wifi3(struct cdp_vdev *vdev_handle,
|
||||||
|
uint8_t mapid)
|
||||||
|
{
|
||||||
|
struct dp_vdev *vdev = (struct dp_vdev *)vdev_handle;
|
||||||
|
|
||||||
|
vdev->tidmap_tbl_id = mapid;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_set_vdev_tidmap_prty_wifi3(): update tidmap priority in vdev
|
||||||
|
* @vdev: DP_VDEV handle
|
||||||
|
* @prio: tidmap priority value passed by the user
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success
|
||||||
|
*/
|
||||||
|
static QDF_STATUS dp_set_vdev_tidmap_prty_wifi3(struct cdp_vdev *vdev_handle,
|
||||||
|
uint8_t prio)
|
||||||
|
{
|
||||||
|
struct dp_vdev *vdev = (struct dp_vdev *)vdev_handle;
|
||||||
|
|
||||||
|
vdev->tidmap_prty = prio;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
static struct cdp_cmn_ops dp_ops_cmn = {
|
static struct cdp_cmn_ops dp_ops_cmn = {
|
||||||
.txrx_soc_attach_target = dp_soc_attach_target_wifi3,
|
.txrx_soc_attach_target = dp_soc_attach_target_wifi3,
|
||||||
.txrx_vdev_attach = dp_vdev_attach_wifi3,
|
.txrx_vdev_attach = dp_vdev_attach_wifi3,
|
||||||
@@ -9616,6 +9743,12 @@ static struct cdp_cmn_ops dp_ops_cmn = {
|
|||||||
.get_rate_stats_ctx = dp_soc_get_rate_stats_ctx,
|
.get_rate_stats_ctx = dp_soc_get_rate_stats_ctx,
|
||||||
.txrx_peer_flush_rate_stats = dp_peer_flush_rate_stats,
|
.txrx_peer_flush_rate_stats = dp_peer_flush_rate_stats,
|
||||||
.txrx_flush_rate_stats_request = dp_flush_rate_stats_req,
|
.txrx_flush_rate_stats_request = dp_flush_rate_stats_req,
|
||||||
|
|
||||||
|
.set_pdev_pcp_tid_map = dp_set_pdev_pcp_tid_map_wifi3,
|
||||||
|
.set_pdev_tidmap_prty = dp_set_pdev_tidmap_prty_wifi3,
|
||||||
|
.set_vdev_pcp_tid_map = dp_set_vdev_pcp_tid_map_wifi3,
|
||||||
|
.set_vdev_tidmap_prty = dp_set_vdev_tidmap_prty_wifi3,
|
||||||
|
.set_vdev_tidmap_tbl_id = dp_set_vdev_tidmap_tbl_id_wifi3,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct cdp_ctrl_ops dp_ops_ctrl = {
|
static struct cdp_ctrl_ops dp_ops_ctrl = {
|
||||||
|
@@ -88,11 +88,11 @@
|
|||||||
#define DEFAULT_HW_PEER_ID 0xffff
|
#define DEFAULT_HW_PEER_ID 0xffff
|
||||||
|
|
||||||
#define MAX_TX_HW_QUEUES MAX_TCL_DATA_RINGS
|
#define MAX_TX_HW_QUEUES MAX_TCL_DATA_RINGS
|
||||||
|
|
||||||
|
|
||||||
/* Maximum retries for Delba per tid per peer */
|
/* Maximum retries for Delba per tid per peer */
|
||||||
#define DP_MAX_DELBA_RETRY 3
|
#define DP_MAX_DELBA_RETRY 3
|
||||||
|
|
||||||
|
#define PCP_TID_MAP_MAX 8
|
||||||
|
|
||||||
#ifndef REMOVE_PKT_LOG
|
#ifndef REMOVE_PKT_LOG
|
||||||
enum rx_pktlog_mode {
|
enum rx_pktlog_mode {
|
||||||
DP_RX_PKTLOG_DISABLED = 0,
|
DP_RX_PKTLOG_DISABLED = 0,
|
||||||
@@ -1024,6 +1024,11 @@ struct dp_soc {
|
|||||||
struct cdp_soc_rate_stats_ctx *rate_stats_ctx;
|
struct cdp_soc_rate_stats_ctx *rate_stats_ctx;
|
||||||
/* rdk rate statistics control flag */
|
/* rdk rate statistics control flag */
|
||||||
bool wlanstats_enabled;
|
bool wlanstats_enabled;
|
||||||
|
|
||||||
|
/* 8021p PCP-TID map values */
|
||||||
|
uint8_t pcp_tid_map[PCP_TID_MAP_MAX];
|
||||||
|
/* TID map priority value */
|
||||||
|
uint8_t tidmap_prty;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef IPA_OFFLOAD
|
#ifdef IPA_OFFLOAD
|
||||||
@@ -1568,6 +1573,15 @@ struct dp_vdev {
|
|||||||
|
|
||||||
/* Capture timestamp of previous rx packet delivered */
|
/* Capture timestamp of previous rx packet delivered */
|
||||||
uint64_t prev_rx_deliver_tstamp;
|
uint64_t prev_rx_deliver_tstamp;
|
||||||
|
|
||||||
|
/* 8021p PCP-TID mapping table ID */
|
||||||
|
uint8_t tidmap_tbl_id;
|
||||||
|
|
||||||
|
/* 8021p PCP-TID map values */
|
||||||
|
uint8_t pcp_tid_map[PCP_TID_MAP_MAX];
|
||||||
|
|
||||||
|
/* TIDmap priority */
|
||||||
|
uint8_t tidmap_prty;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1919,7 +1919,6 @@ static inline void hal_rx_dump_mpdu_start_tlv_generic(void *mpdustart,
|
|||||||
mpdu_info->mpdu_qos_control_field,
|
mpdu_info->mpdu_qos_control_field,
|
||||||
mpdu_info->mpdu_ht_control_field);
|
mpdu_info->mpdu_ht_control_field);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hal_tx_desc_set_search_type - Set the search type value
|
* hal_tx_desc_set_search_type - Set the search type value
|
||||||
@@ -1968,3 +1967,89 @@ static void hal_tx_desc_set_search_index_generic(void *desc,
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* hal_tx_set_pcp_tid_map_generic() - Configure default PCP to TID map table
|
||||||
|
* @soc: HAL SoC context
|
||||||
|
* @map: PCP-TID mapping table
|
||||||
|
*
|
||||||
|
* PCP are mapped to 8 TID values using TID values programmed
|
||||||
|
* in one set of mapping registers PCP_TID_MAP_<0 to 6>
|
||||||
|
* The mapping register has TID mapping for 8 PCP values
|
||||||
|
*
|
||||||
|
* Return: none
|
||||||
|
*/
|
||||||
|
static void hal_tx_set_pcp_tid_map_generic(void *hal_soc, uint8_t *map)
|
||||||
|
{
|
||||||
|
uint32_t addr, value;
|
||||||
|
|
||||||
|
struct hal_soc *soc = (struct hal_soc *)hal_soc;
|
||||||
|
|
||||||
|
addr = HWIO_TCL_R0_PCP_TID_MAP_ADDR(
|
||||||
|
SEQ_WCSS_UMAC_MAC_TCL_REG_OFFSET);
|
||||||
|
|
||||||
|
value = (map[0] |
|
||||||
|
(map[1] << HWIO_TCL_R0_PCP_TID_MAP_PCP_1_SHFT) |
|
||||||
|
(map[2] << HWIO_TCL_R0_PCP_TID_MAP_PCP_2_SHFT) |
|
||||||
|
(map[3] << HWIO_TCL_R0_PCP_TID_MAP_PCP_3_SHFT) |
|
||||||
|
(map[4] << HWIO_TCL_R0_PCP_TID_MAP_PCP_4_SHFT) |
|
||||||
|
(map[5] << HWIO_TCL_R0_PCP_TID_MAP_PCP_5_SHFT) |
|
||||||
|
(map[6] << HWIO_TCL_R0_PCP_TID_MAP_PCP_6_SHFT) |
|
||||||
|
(map[7] << HWIO_TCL_R0_PCP_TID_MAP_PCP_7_SHFT));
|
||||||
|
|
||||||
|
HAL_REG_WRITE(soc, addr, (value & HWIO_TCL_R0_PCP_TID_MAP_RMSK));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* hal_tx_update_pcp_tid_generic() - Update the pcp tid map table with
|
||||||
|
* value received from user-space
|
||||||
|
* @soc: HAL SoC context
|
||||||
|
* @pcp: pcp value
|
||||||
|
* @tid : tid value
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
static
|
||||||
|
void hal_tx_update_pcp_tid_generic(void *hal_soc, uint8_t pcp, uint8_t tid)
|
||||||
|
{
|
||||||
|
uint32_t addr, value, regval;
|
||||||
|
|
||||||
|
struct hal_soc *soc = (struct hal_soc *)hal_soc;
|
||||||
|
|
||||||
|
addr = HWIO_TCL_R0_PCP_TID_MAP_ADDR(
|
||||||
|
SEQ_WCSS_UMAC_MAC_TCL_REG_OFFSET);
|
||||||
|
|
||||||
|
value = (uint32_t)tid << (HAL_TX_BITS_PER_TID * pcp);
|
||||||
|
|
||||||
|
/* Read back previous PCP TID config and update
|
||||||
|
* with new config.
|
||||||
|
*/
|
||||||
|
regval = HAL_REG_READ(soc, addr);
|
||||||
|
regval &= ~(HAL_TX_TID_BITS_MASK << (HAL_TX_BITS_PER_TID * pcp));
|
||||||
|
regval |= value;
|
||||||
|
|
||||||
|
HAL_REG_WRITE(soc, addr,
|
||||||
|
(regval & HWIO_TCL_R0_PCP_TID_MAP_RMSK));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* hal_tx_update_tidmap_prty_generic() - Update the tid map priority
|
||||||
|
* @soc: HAL SoC context
|
||||||
|
* @val: priority value
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
static
|
||||||
|
void hal_tx_update_tidmap_prty_generic(void *hal_soc, uint8_t value)
|
||||||
|
{
|
||||||
|
uint32_t addr;
|
||||||
|
|
||||||
|
struct hal_soc *soc = (struct hal_soc *)hal_soc;
|
||||||
|
|
||||||
|
addr = HWIO_TCL_R0_TID_MAP_PRTY_ADDR(
|
||||||
|
SEQ_WCSS_UMAC_MAC_TCL_REG_OFFSET);
|
||||||
|
|
||||||
|
HAL_REG_WRITE(soc, addr,
|
||||||
|
(value & HWIO_TCL_R0_TID_MAP_PRTY_RMSK));
|
||||||
|
}
|
||||||
|
#endif /* _HAL_GENERIC_API_H_ */
|
||||||
|
@@ -343,6 +343,11 @@ struct hal_hw_txrx_ops {
|
|||||||
void *wbm_er_info);
|
void *wbm_er_info);
|
||||||
void (*hal_rx_dump_mpdu_start_tlv)(void *mpdustart,
|
void (*hal_rx_dump_mpdu_start_tlv)(void *mpdustart,
|
||||||
uint8_t dbg_level);
|
uint8_t dbg_level);
|
||||||
|
|
||||||
|
void (*hal_tx_set_pcp_tid_map)(void *hal_soc, uint8_t *map);
|
||||||
|
void (*hal_tx_update_pcp_tid_map)(void *hal_soc, uint8_t pcp,
|
||||||
|
uint8_t id);
|
||||||
|
void (*hal_tx_set_tidmap_prty)(void *hal_soc, uint8_t prio);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2019 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
|
||||||
@@ -85,6 +85,8 @@ do { \
|
|||||||
#define HAL_TX_EXT_DESC_WITH_META_DATA \
|
#define HAL_TX_EXT_DESC_WITH_META_DATA \
|
||||||
(HTT_META_HEADER_LEN_BYTES + HAL_TX_EXTENSION_DESC_LEN_BYTES)
|
(HTT_META_HEADER_LEN_BYTES + HAL_TX_EXTENSION_DESC_LEN_BYTES)
|
||||||
|
|
||||||
|
#define HAL_TX_NUM_PCP_PER_REGISTER 8
|
||||||
|
|
||||||
/* Length of WBM release ring without the status words */
|
/* Length of WBM release ring without the status words */
|
||||||
#define HAL_TX_COMPLETION_DESC_BASE_LEN 12
|
#define HAL_TX_COMPLETION_DESC_BASE_LEN 12
|
||||||
|
|
||||||
@@ -990,4 +992,46 @@ static inline void hal_tx_desc_set_buf_addr(void *desc, dma_addr_t paddr,
|
|||||||
desc_id, type);
|
desc_id, type);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* hal_tx_set_pcp_tid_map_default() - Configure default PCP to TID map table
|
||||||
|
*
|
||||||
|
* @soc: HAL SoC context
|
||||||
|
* @map: PCP-TID mapping table
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
static inline void hal_tx_set_pcp_tid_map_default(struct hal_soc *hal_soc,
|
||||||
|
uint8_t *map)
|
||||||
|
{
|
||||||
|
hal_soc->ops->hal_tx_set_pcp_tid_map(hal_soc, map);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* hal_tx_update_pcp_tid_map() - Update PCP to TID map table
|
||||||
|
*
|
||||||
|
* @soc: HAL SoC context
|
||||||
|
* @pcp: pcp value
|
||||||
|
* @tid: tid no
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
static inline void hal_tx_update_pcp_tid_map(struct hal_soc *hal_soc,
|
||||||
|
uint8_t pcp, uint8_t tid)
|
||||||
|
{
|
||||||
|
hal_soc->ops->hal_tx_update_pcp_tid_map(hal_soc, tid, tid);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* hal_tx_set_tidmap_prty() - Configure TIDmap priority
|
||||||
|
*
|
||||||
|
* @soc: HAL SoC context
|
||||||
|
* @val: priority value
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
static inline void hal_tx_set_tidmap_prty(struct hal_soc *hal_soc, uint8_t val)
|
||||||
|
{
|
||||||
|
hal_soc->ops->hal_tx_set_tidmap_prty(hal_soc, val);
|
||||||
|
}
|
||||||
#endif /* HAL_TX_H */
|
#endif /* HAL_TX_H */
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2019 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
|
||||||
@@ -139,6 +139,10 @@ struct hal_hw_txrx_ops qca6018_hal_hw_txrx_ops = {
|
|||||||
hal_rx_status_get_tlv_info_generic,
|
hal_rx_status_get_tlv_info_generic,
|
||||||
hal_rx_wbm_err_info_get_generic,
|
hal_rx_wbm_err_info_get_generic,
|
||||||
hal_rx_dump_mpdu_start_tlv_generic,
|
hal_rx_dump_mpdu_start_tlv_generic,
|
||||||
|
|
||||||
|
hal_tx_set_pcp_tid_map_generic,
|
||||||
|
hal_tx_update_pcp_tid_generic,
|
||||||
|
hal_tx_update_tidmap_prty_generic,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct hal_hw_srng_config hw_srng_table_6018[] = {
|
struct hal_hw_srng_config hw_srng_table_6018[] = {
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2019 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
|
||||||
@@ -144,6 +144,10 @@ struct hal_hw_txrx_ops qca6290_hal_hw_txrx_ops = {
|
|||||||
hal_rx_status_get_tlv_info_generic,
|
hal_rx_status_get_tlv_info_generic,
|
||||||
hal_rx_wbm_err_info_get_generic,
|
hal_rx_wbm_err_info_get_generic,
|
||||||
hal_rx_dump_mpdu_start_tlv_generic,
|
hal_rx_dump_mpdu_start_tlv_generic,
|
||||||
|
|
||||||
|
hal_tx_set_pcp_tid_map_generic,
|
||||||
|
hal_tx_update_pcp_tid_generic,
|
||||||
|
hal_tx_update_tidmap_prty_generic,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct hal_hw_srng_config hw_srng_table_6290[] = {
|
struct hal_hw_srng_config hw_srng_table_6290[] = {
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2019 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
|
||||||
@@ -144,6 +144,10 @@ struct hal_hw_txrx_ops qca6390_hal_hw_txrx_ops = {
|
|||||||
hal_rx_status_get_tlv_info_generic,
|
hal_rx_status_get_tlv_info_generic,
|
||||||
hal_rx_wbm_err_info_get_generic,
|
hal_rx_wbm_err_info_get_generic,
|
||||||
hal_rx_dump_mpdu_start_tlv_generic,
|
hal_rx_dump_mpdu_start_tlv_generic,
|
||||||
|
|
||||||
|
hal_tx_set_pcp_tid_map_generic,
|
||||||
|
hal_tx_update_pcp_tid_generic,
|
||||||
|
hal_tx_update_tidmap_prty_generic,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct hal_hw_srng_config hw_srng_table_6390[] = {
|
struct hal_hw_srng_config hw_srng_table_6390[] = {
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2019 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
|
||||||
@@ -140,6 +140,10 @@ struct hal_hw_txrx_ops qca8074_hal_hw_txrx_ops = {
|
|||||||
hal_rx_status_get_tlv_info_generic,
|
hal_rx_status_get_tlv_info_generic,
|
||||||
hal_rx_wbm_err_info_get_generic,
|
hal_rx_wbm_err_info_get_generic,
|
||||||
hal_rx_dump_mpdu_start_tlv_generic,
|
hal_rx_dump_mpdu_start_tlv_generic,
|
||||||
|
|
||||||
|
hal_tx_set_pcp_tid_map_generic,
|
||||||
|
hal_tx_update_pcp_tid_generic,
|
||||||
|
hal_tx_update_tidmap_prty_generic,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct hal_hw_srng_config hw_srng_table_8074[] = {
|
struct hal_hw_srng_config hw_srng_table_8074[] = {
|
||||||
|
@@ -140,6 +140,10 @@ struct hal_hw_txrx_ops qca8074v2_hal_hw_txrx_ops = {
|
|||||||
hal_rx_status_get_tlv_info_generic,
|
hal_rx_status_get_tlv_info_generic,
|
||||||
hal_rx_wbm_err_info_get_generic,
|
hal_rx_wbm_err_info_get_generic,
|
||||||
hal_rx_dump_mpdu_start_tlv_generic,
|
hal_rx_dump_mpdu_start_tlv_generic,
|
||||||
|
|
||||||
|
hal_tx_set_pcp_tid_map_generic,
|
||||||
|
hal_tx_update_pcp_tid_generic,
|
||||||
|
hal_tx_update_tidmap_prty_generic,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct hal_hw_srng_config hw_srng_table_8074v2[] = {
|
struct hal_hw_srng_config hw_srng_table_8074v2[] = {
|
||||||
|
Reference in New Issue
Block a user