qcacmn: Move REO_CMD desc field set to structure dereference
Currently for beryllium targets, 64-bit field shift/mask is used to set REO_CMD entry values. For peach target, the HW header files provide only 32-bit shift/mask macros, which does not work with the existing code. Move the REO_CMD descriptor field set to structure field dereference instead of bit field shift/mask. Change-Id: Iec9a1618fc6c995aa0939badb4368a4c389fcbca CRs-Fixed: 3584239
This commit is contained in:

کامیت شده توسط
Rahul Choudhary

والد
082bbef13c
کامیت
d97cfce6b4
@@ -194,30 +194,33 @@ hal_reo_cmd_set_descr_addr_be(uint32_t *reo_desc,
|
||||
uint32_t paddr_lo,
|
||||
uint8_t paddr_hi)
|
||||
{
|
||||
struct reo_get_queue_stats *reo_get_queue_stats;
|
||||
struct reo_flush_queue *reo_flush_queue;
|
||||
struct reo_flush_cache *reo_flush_cache;
|
||||
struct reo_update_rx_reo_queue *reo_update_rx_reo_queue;
|
||||
|
||||
switch (type) {
|
||||
case CMD_GET_QUEUE_STATS:
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_GET_QUEUE_STATS,
|
||||
RX_REO_QUEUE_DESC_ADDR_31_0, paddr_lo);
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_GET_QUEUE_STATS,
|
||||
RX_REO_QUEUE_DESC_ADDR_39_32, paddr_hi);
|
||||
reo_get_queue_stats = (struct reo_get_queue_stats *)reo_desc;
|
||||
reo_get_queue_stats->rx_reo_queue_desc_addr_31_0 = paddr_lo;
|
||||
reo_get_queue_stats->rx_reo_queue_desc_addr_39_32 = paddr_hi;
|
||||
break;
|
||||
case CMD_FLUSH_QUEUE:
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_FLUSH_QUEUE,
|
||||
FLUSH_DESC_ADDR_31_0, paddr_lo);
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_FLUSH_QUEUE,
|
||||
FLUSH_DESC_ADDR_39_32, paddr_hi);
|
||||
reo_flush_queue = (struct reo_flush_queue *)reo_desc;
|
||||
reo_flush_queue->flush_desc_addr_31_0 = paddr_lo;
|
||||
reo_flush_queue->flush_desc_addr_39_32 = paddr_hi;
|
||||
break;
|
||||
case CMD_FLUSH_CACHE:
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_FLUSH_CACHE,
|
||||
FLUSH_ADDR_31_0, paddr_lo);
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_FLUSH_CACHE,
|
||||
FLUSH_ADDR_39_32, paddr_hi);
|
||||
reo_flush_cache = (struct reo_flush_cache *)reo_desc;
|
||||
reo_flush_cache->flush_addr_31_0 = paddr_lo;
|
||||
reo_flush_cache->flush_addr_39_32 = paddr_hi;
|
||||
break;
|
||||
case CMD_UPDATE_RX_REO_QUEUE:
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
RX_REO_QUEUE_DESC_ADDR_31_0, paddr_lo);
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
RX_REO_QUEUE_DESC_ADDR_39_32, paddr_hi);
|
||||
reo_update_rx_reo_queue =
|
||||
(struct reo_update_rx_reo_queue *)reo_desc;
|
||||
reo_update_rx_reo_queue->rx_reo_queue_desc_addr_31_0 = paddr_lo;
|
||||
reo_update_rx_reo_queue->rx_reo_queue_desc_addr_39_32 =
|
||||
paddr_hi;
|
||||
break;
|
||||
default:
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
||||
@@ -233,6 +236,7 @@ hal_reo_cmd_queue_stats_be(hal_ring_handle_t hal_ring_hdl,
|
||||
{
|
||||
uint32_t *reo_desc, val;
|
||||
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
|
||||
struct reo_get_queue_stats *reo_get_queue_stats;
|
||||
|
||||
hal_srng_access_start(hal_soc_hdl, hal_ring_hdl);
|
||||
reo_desc = hal_srng_src_get_next(hal_soc, hal_ring_hdl);
|
||||
@@ -254,15 +258,15 @@ hal_reo_cmd_queue_stats_be(hal_ring_handle_t hal_ring_hdl,
|
||||
sizeof(struct reo_get_queue_stats) -
|
||||
(NUM_OF_DWORDS_UNIFORM_REO_CMD_HEADER << 2));
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, UNIFORM_REO_CMD_HEADER,
|
||||
REO_STATUS_REQUIRED, cmd->std.need_status);
|
||||
reo_get_queue_stats = (struct reo_get_queue_stats *)reo_desc;
|
||||
reo_get_queue_stats->cmd_header.reo_status_required =
|
||||
cmd->std.need_status;
|
||||
|
||||
hal_reo_cmd_set_descr_addr_be(reo_desc, CMD_GET_QUEUE_STATS,
|
||||
cmd->std.addr_lo,
|
||||
cmd->std.addr_hi);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_GET_QUEUE_STATS, CLEAR_STATS,
|
||||
cmd->u.stats_params.clear);
|
||||
reo_get_queue_stats->clear_stats = cmd->u.stats_params.clear;
|
||||
|
||||
hal_srng_access_end_v1(hal_soc_hdl, hal_ring_hdl,
|
||||
HIF_RTPM_ID_HAL_REO_CMD);
|
||||
@@ -279,6 +283,7 @@ hal_reo_cmd_flush_queue_be(hal_ring_handle_t hal_ring_hdl,
|
||||
{
|
||||
uint32_t *reo_desc, val;
|
||||
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
|
||||
struct reo_flush_queue *reo_flush_queue;
|
||||
|
||||
hal_srng_access_start(hal_soc_hdl, hal_ring_hdl);
|
||||
reo_desc = hal_srng_src_get_next(hal_soc, hal_ring_hdl);
|
||||
@@ -300,21 +305,18 @@ hal_reo_cmd_flush_queue_be(hal_ring_handle_t hal_ring_hdl,
|
||||
sizeof(struct reo_flush_queue) -
|
||||
(NUM_OF_DWORDS_UNIFORM_REO_CMD_HEADER << 2));
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, UNIFORM_REO_CMD_HEADER,
|
||||
REO_STATUS_REQUIRED, cmd->std.need_status);
|
||||
reo_flush_queue = (struct reo_flush_queue *)reo_desc;
|
||||
reo_flush_queue->cmd_header.reo_status_required = cmd->std.need_status;
|
||||
|
||||
hal_reo_cmd_set_descr_addr_be(reo_desc, CMD_FLUSH_QUEUE,
|
||||
cmd->std.addr_lo, cmd->std.addr_hi);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_FLUSH_QUEUE,
|
||||
BLOCK_DESC_ADDR_USAGE_AFTER_FLUSH,
|
||||
cmd->u.fl_queue_params.block_use_after_flush);
|
||||
reo_flush_queue->block_desc_addr_usage_after_flush =
|
||||
cmd->u.fl_queue_params.block_use_after_flush;
|
||||
|
||||
if (cmd->u.fl_queue_params.block_use_after_flush) {
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_FLUSH_QUEUE,
|
||||
BLOCK_RESOURCE_INDEX,
|
||||
cmd->u.fl_queue_params.index);
|
||||
}
|
||||
if (cmd->u.fl_queue_params.block_use_after_flush)
|
||||
reo_flush_queue->block_resource_index =
|
||||
cmd->u.fl_queue_params.index;
|
||||
|
||||
hal_srng_access_end_v1(hal_soc_hdl, hal_ring_hdl,
|
||||
HIF_RTPM_ID_HAL_REO_CMD);
|
||||
@@ -333,6 +335,7 @@ hal_reo_cmd_flush_cache_be(hal_ring_handle_t hal_ring_hdl,
|
||||
struct hal_reo_cmd_flush_cache_params *cp;
|
||||
uint8_t index = 0;
|
||||
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
|
||||
struct reo_flush_cache *reo_flush_cache;
|
||||
|
||||
cp = &cmd->u.fl_cache_params;
|
||||
|
||||
@@ -371,38 +374,27 @@ hal_reo_cmd_flush_cache_be(hal_ring_handle_t hal_ring_hdl,
|
||||
sizeof(struct reo_flush_cache) -
|
||||
(NUM_OF_DWORDS_UNIFORM_REO_CMD_HEADER << 2));
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, UNIFORM_REO_CMD_HEADER,
|
||||
REO_STATUS_REQUIRED, cmd->std.need_status);
|
||||
reo_flush_cache = (struct reo_flush_cache *)reo_desc;
|
||||
reo_flush_cache->cmd_header.reo_status_required = cmd->std.need_status;
|
||||
|
||||
hal_reo_cmd_set_descr_addr_be(reo_desc, CMD_FLUSH_CACHE,
|
||||
cmd->std.addr_lo, cmd->std.addr_hi);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_FLUSH_CACHE,
|
||||
FORWARD_ALL_MPDUS_IN_QUEUE,
|
||||
cp->fwd_mpdus_in_queue);
|
||||
reo_flush_cache->forward_all_mpdus_in_queue = cp->fwd_mpdus_in_queue;
|
||||
|
||||
/* set it to 0 for now */
|
||||
cp->rel_block_index = 0;
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_FLUSH_CACHE,
|
||||
RELEASE_CACHE_BLOCK_INDEX, cp->rel_block_index);
|
||||
reo_flush_cache->release_cache_block_index = cp->rel_block_index;
|
||||
|
||||
if (cp->block_use_after_flush) {
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_FLUSH_CACHE,
|
||||
CACHE_BLOCK_RESOURCE_INDEX, index);
|
||||
reo_flush_cache->cache_block_resource_index = index;
|
||||
}
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_FLUSH_CACHE,
|
||||
FLUSH_WITHOUT_INVALIDATE, cp->flush_no_inval);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_FLUSH_CACHE,
|
||||
FLUSH_QUEUE_1K_DESC, cp->flush_q_1k_desc);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_FLUSH_CACHE,
|
||||
BLOCK_CACHE_USAGE_AFTER_FLUSH,
|
||||
cp->block_use_after_flush);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_FLUSH_CACHE, FLUSH_ENTIRE_CACHE,
|
||||
cp->flush_entire_cache);
|
||||
reo_flush_cache->flush_without_invalidate = cp->flush_no_inval;
|
||||
reo_flush_cache->flush_queue_1k_desc = cp->flush_q_1k_desc;
|
||||
reo_flush_cache->block_cache_usage_after_flush =
|
||||
cp->block_use_after_flush;
|
||||
reo_flush_cache->flush_entire_cache = cp->flush_entire_cache;
|
||||
|
||||
hal_srng_access_end_v1(hal_soc_hdl, hal_ring_hdl,
|
||||
HIF_RTPM_ID_HAL_REO_CMD);
|
||||
@@ -421,6 +413,7 @@ hal_reo_cmd_unblock_cache_be(hal_ring_handle_t hal_ring_hdl,
|
||||
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
|
||||
uint32_t *reo_desc, val;
|
||||
uint8_t index = 0;
|
||||
struct reo_unblock_cache *reo_unblock_cache;
|
||||
|
||||
hal_srng_access_start(hal_soc_hdl, hal_ring_hdl);
|
||||
|
||||
@@ -452,17 +445,14 @@ hal_reo_cmd_unblock_cache_be(hal_ring_handle_t hal_ring_hdl,
|
||||
sizeof(struct reo_unblock_cache) -
|
||||
(NUM_OF_DWORDS_UNIFORM_REO_CMD_HEADER << 2));
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, UNIFORM_REO_CMD_HEADER,
|
||||
REO_STATUS_REQUIRED, cmd->std.need_status);
|
||||
reo_unblock_cache = (struct reo_unblock_cache *)reo_desc;
|
||||
reo_unblock_cache->cmd_header.reo_status_required =
|
||||
cmd->std.need_status;
|
||||
reo_unblock_cache->unblock_type = cmd->u.unblk_cache_params.type;
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UNBLOCK_CACHE,
|
||||
UNBLOCK_TYPE, cmd->u.unblk_cache_params.type);
|
||||
|
||||
if (cmd->u.unblk_cache_params.type == UNBLOCK_RES_INDEX) {
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UNBLOCK_CACHE,
|
||||
CACHE_BLOCK_RESOURCE_INDEX,
|
||||
cmd->u.unblk_cache_params.index);
|
||||
}
|
||||
if (cmd->u.unblk_cache_params.type == UNBLOCK_RES_INDEX)
|
||||
reo_unblock_cache->cache_block_resource_index =
|
||||
cmd->u.unblk_cache_params.index;
|
||||
|
||||
hal_srng_access_end(hal_soc, hal_ring_hdl);
|
||||
val = reo_desc[CMD_HEADER_DW_OFFSET];
|
||||
@@ -477,6 +467,7 @@ hal_reo_cmd_flush_timeout_list_be(hal_ring_handle_t hal_ring_hdl,
|
||||
{
|
||||
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
|
||||
uint32_t *reo_desc, val;
|
||||
struct reo_flush_timeout_list *reo_flush_timeout_list;
|
||||
|
||||
hal_srng_access_start(hal_soc_hdl, hal_ring_hdl);
|
||||
reo_desc = hal_srng_src_get_next(hal_soc, hal_ring_hdl);
|
||||
@@ -498,19 +489,15 @@ hal_reo_cmd_flush_timeout_list_be(hal_ring_handle_t hal_ring_hdl,
|
||||
sizeof(struct reo_flush_timeout_list) -
|
||||
(NUM_OF_DWORDS_UNIFORM_REO_CMD_HEADER << 2));
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, UNIFORM_REO_CMD_HEADER,
|
||||
REO_STATUS_REQUIRED, cmd->std.need_status);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_FLUSH_TIMEOUT_LIST, AC_TIMOUT_LIST,
|
||||
cmd->u.fl_tim_list_params.ac_list);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_FLUSH_TIMEOUT_LIST,
|
||||
MINIMUM_RELEASE_DESC_COUNT,
|
||||
cmd->u.fl_tim_list_params.min_rel_desc);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_FLUSH_TIMEOUT_LIST,
|
||||
MINIMUM_FORWARD_BUF_COUNT,
|
||||
cmd->u.fl_tim_list_params.min_fwd_buf);
|
||||
reo_flush_timeout_list = (struct reo_flush_timeout_list *)reo_desc;
|
||||
reo_flush_timeout_list->cmd_header.reo_status_required =
|
||||
cmd->std.need_status;
|
||||
reo_flush_timeout_list->ac_timout_list =
|
||||
cmd->u.fl_tim_list_params.ac_list;
|
||||
reo_flush_timeout_list->minimum_release_desc_count =
|
||||
cmd->u.fl_tim_list_params.min_rel_desc;
|
||||
reo_flush_timeout_list->minimum_forward_buf_count =
|
||||
cmd->u.fl_tim_list_params.min_fwd_buf;
|
||||
|
||||
hal_srng_access_end(hal_soc, hal_ring_hdl);
|
||||
val = reo_desc[CMD_HEADER_DW_OFFSET];
|
||||
@@ -526,6 +513,7 @@ hal_reo_cmd_update_rx_queue_be(hal_ring_handle_t hal_ring_hdl,
|
||||
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
|
||||
uint32_t *reo_desc, val;
|
||||
struct hal_reo_cmd_update_queue_params *p;
|
||||
struct reo_update_rx_reo_queue *reo_update_rx_reo_queue;
|
||||
|
||||
p = &cmd->u.upd_queue_params;
|
||||
|
||||
@@ -549,137 +537,62 @@ hal_reo_cmd_update_rx_queue_be(hal_ring_handle_t hal_ring_hdl,
|
||||
sizeof(struct reo_update_rx_reo_queue) -
|
||||
(NUM_OF_DWORDS_UNIFORM_REO_CMD_HEADER << 2));
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, UNIFORM_REO_CMD_HEADER,
|
||||
REO_STATUS_REQUIRED, cmd->std.need_status);
|
||||
reo_update_rx_reo_queue = (struct reo_update_rx_reo_queue *)reo_desc;
|
||||
reo_update_rx_reo_queue->cmd_header.reo_status_required =
|
||||
cmd->std.need_status;
|
||||
|
||||
hal_reo_cmd_set_descr_addr_be(reo_desc, CMD_UPDATE_RX_REO_QUEUE,
|
||||
cmd->std.addr_lo, cmd->std.addr_hi);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_RECEIVE_QUEUE_NUMBER,
|
||||
p->update_rx_queue_num);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE, UPDATE_VLD,
|
||||
p->update_vld);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER,
|
||||
p->update_assoc_link_desc);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_DISABLE_DUPLICATE_DETECTION,
|
||||
p->update_disable_dup_detect);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_DISABLE_DUPLICATE_DETECTION,
|
||||
p->update_disable_dup_detect);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_SOFT_REORDER_ENABLE,
|
||||
p->update_soft_reorder_enab);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_AC, p->update_ac);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_BAR, p->update_bar);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_BAR, p->update_bar);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_RTY, p->update_rty);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_CHK_2K_MODE, p->update_chk_2k_mode);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_OOR_MODE, p->update_oor_mode);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_BA_WINDOW_SIZE, p->update_ba_window_size);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_PN_CHECK_NEEDED,
|
||||
p->update_pn_check_needed);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_PN_SHALL_BE_EVEN, p->update_pn_even);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_PN_SHALL_BE_UNEVEN, p->update_pn_uneven);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_PN_HANDLING_ENABLE,
|
||||
p->update_pn_hand_enab);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_PN_SIZE, p->update_pn_size);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_IGNORE_AMPDU_FLAG, p->update_ignore_ampdu);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_SVLD, p->update_svld);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_SSN, p->update_ssn);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_SEQ_2K_ERROR_DETECTED_FLAG,
|
||||
p->update_seq_2k_err_detect);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_PN_VALID, p->update_pn_valid);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
UPDATE_PN, p->update_pn);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
RECEIVE_QUEUE_NUMBER, p->rx_queue_num);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
VLD, p->vld);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
ASSOCIATED_LINK_DESCRIPTOR_COUNTER,
|
||||
p->assoc_link_desc);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
DISABLE_DUPLICATE_DETECTION,
|
||||
p->disable_dup_detect);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
SOFT_REORDER_ENABLE, p->soft_reorder_enab);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE, AC, p->ac);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
BAR, p->bar);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
CHK_2K_MODE, p->chk_2k_mode);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
RTY, p->rty);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
OOR_MODE, p->oor_mode);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
PN_CHECK_NEEDED, p->pn_check_needed);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
PN_SHALL_BE_EVEN, p->pn_even);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
PN_SHALL_BE_UNEVEN, p->pn_uneven);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
PN_HANDLING_ENABLE, p->pn_hand_enab);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
IGNORE_AMPDU_FLAG, p->ignore_ampdu);
|
||||
reo_update_rx_reo_queue->update_receive_queue_number =
|
||||
p->update_rx_queue_num;
|
||||
reo_update_rx_reo_queue->update_vld = p->update_vld;
|
||||
reo_update_rx_reo_queue->update_associated_link_descriptor_counter =
|
||||
p->update_assoc_link_desc;
|
||||
reo_update_rx_reo_queue->update_disable_duplicate_detection =
|
||||
p->update_disable_dup_detect;
|
||||
reo_update_rx_reo_queue->update_soft_reorder_enable =
|
||||
p->update_soft_reorder_enab;
|
||||
reo_update_rx_reo_queue->update_ac = p->update_ac;
|
||||
reo_update_rx_reo_queue->update_bar = p->update_bar;
|
||||
reo_update_rx_reo_queue->update_rty = p->update_rty;
|
||||
reo_update_rx_reo_queue->update_chk_2k_mode = p->update_chk_2k_mode;
|
||||
reo_update_rx_reo_queue->update_oor_mode = p->update_oor_mode;
|
||||
reo_update_rx_reo_queue->update_ba_window_size =
|
||||
p->update_ba_window_size;
|
||||
reo_update_rx_reo_queue->update_pn_check_needed =
|
||||
p->update_pn_check_needed;
|
||||
reo_update_rx_reo_queue->update_pn_shall_be_even = p->update_pn_even;
|
||||
reo_update_rx_reo_queue->update_pn_shall_be_uneven =
|
||||
p->update_pn_uneven;
|
||||
reo_update_rx_reo_queue->update_pn_handling_enable =
|
||||
p->update_pn_hand_enab;
|
||||
reo_update_rx_reo_queue->update_pn_size = p->update_pn_size;
|
||||
reo_update_rx_reo_queue->update_ignore_ampdu_flag =
|
||||
p->update_ignore_ampdu;
|
||||
reo_update_rx_reo_queue->update_svld = p->update_svld;
|
||||
reo_update_rx_reo_queue->update_ssn = p->update_ssn;
|
||||
reo_update_rx_reo_queue->update_seq_2k_error_detected_flag =
|
||||
p->update_seq_2k_err_detect;
|
||||
reo_update_rx_reo_queue->update_pn_valid = p->update_pn_valid;
|
||||
reo_update_rx_reo_queue->update_pn = p->update_pn;
|
||||
reo_update_rx_reo_queue->receive_queue_number = p->rx_queue_num;
|
||||
reo_update_rx_reo_queue->vld = p->vld;
|
||||
reo_update_rx_reo_queue->associated_link_descriptor_counter =
|
||||
p->assoc_link_desc;
|
||||
reo_update_rx_reo_queue->disable_duplicate_detection =
|
||||
p->disable_dup_detect;
|
||||
reo_update_rx_reo_queue->soft_reorder_enable = p->soft_reorder_enab;
|
||||
reo_update_rx_reo_queue->ac = p->ac;
|
||||
reo_update_rx_reo_queue->bar = p->bar;
|
||||
reo_update_rx_reo_queue->chk_2k_mode = p->chk_2k_mode;
|
||||
reo_update_rx_reo_queue->rty = p->rty;
|
||||
reo_update_rx_reo_queue->oor_mode = p->oor_mode;
|
||||
reo_update_rx_reo_queue->pn_check_needed = p->pn_check_needed;
|
||||
reo_update_rx_reo_queue->pn_shall_be_even = p->pn_even;
|
||||
reo_update_rx_reo_queue->pn_shall_be_uneven = p->pn_uneven;
|
||||
reo_update_rx_reo_queue->pn_handling_enable = p->pn_hand_enab;
|
||||
reo_update_rx_reo_queue->ignore_ampdu_flag = p->ignore_ampdu;
|
||||
|
||||
if (p->ba_window_size < 1)
|
||||
p->ba_window_size = 1;
|
||||
@@ -690,35 +603,18 @@ hal_reo_cmd_update_rx_queue_be(hal_ring_handle_t hal_ring_hdl,
|
||||
*/
|
||||
if (p->ba_window_size == 1)
|
||||
p->ba_window_size++;
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
BA_WINDOW_SIZE, p->ba_window_size - 1);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
PN_SIZE, p->pn_size);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
SVLD, p->svld);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
SSN, p->ssn);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
SEQ_2K_ERROR_DETECTED_FLAG, p->seq_2k_err_detect);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
PN_ERROR_DETECTED_FLAG, p->pn_err_detect);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
PN_31_0, p->pn_31_0);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
PN_63_32, p->pn_63_32);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
PN_95_64, p->pn_95_64);
|
||||
|
||||
HAL_DESC_64_SET_FIELD(reo_desc, REO_UPDATE_RX_REO_QUEUE,
|
||||
PN_127_96, p->pn_127_96);
|
||||
reo_update_rx_reo_queue->ba_window_size = p->ba_window_size - 1;
|
||||
reo_update_rx_reo_queue->pn_size = p->pn_size;
|
||||
reo_update_rx_reo_queue->svld = p->svld;
|
||||
reo_update_rx_reo_queue->ssn = p->ssn;
|
||||
reo_update_rx_reo_queue->seq_2k_error_detected_flag =
|
||||
p->seq_2k_err_detect;
|
||||
reo_update_rx_reo_queue->pn_error_detected_flag = p->pn_err_detect;
|
||||
reo_update_rx_reo_queue->pn_31_0 = p->pn_31_0;
|
||||
reo_update_rx_reo_queue->pn_63_32 = p->pn_63_32;
|
||||
reo_update_rx_reo_queue->pn_95_64 = p->pn_95_64;
|
||||
reo_update_rx_reo_queue->pn_127_96 = p->pn_127_96;
|
||||
|
||||
hal_srng_access_end_v1(hal_soc_hdl, hal_ring_hdl,
|
||||
HIF_RTPM_ID_HAL_REO_CMD);
|
||||
|
مرجع در شماره جدید
Block a user