qcacmn: Add support to get reo qdesc size for li & be platforms
Bifurcate the hal_get_reo_qdesc_size to corresponding lithium or Berillium platforms. This can handle difference, if any between them and later enhance to set the qdesc size based on peer negotiation. Currently for NON_QOS_TID, the BA window size is hardcoded as 256 for Li and 1024 for Be. Also modify hal_reo_cmd_update_queue_params to accommodate higher Block-Ack Window size. For this steal bits from pn_size and use pn_size values as macros PN_SIZE_XX which is only 3 bits, instead of 8bits. Change-Id: If310175da579aa3a47a8b031a1774c6c8982d4b2 CRs-Fixed: 3125986
这个提交包含在:
@@ -3268,12 +3268,8 @@ QDF_STATUS dp_rx_tid_setup_wifi3(struct dp_peer *peer, int tid,
|
||||
* send WMI message to FW to change the REO queue descriptor in Rx
|
||||
* peer entry as part of dp_rx_tid_update.
|
||||
*/
|
||||
if (tid != DP_NON_QOS_TID)
|
||||
hw_qdesc_size = hal_get_reo_qdesc_size(soc->hal_soc,
|
||||
HAL_RX_MAX_BA_WINDOW, tid);
|
||||
else
|
||||
hw_qdesc_size = hal_get_reo_qdesc_size(soc->hal_soc,
|
||||
ba_window_size, tid);
|
||||
hw_qdesc_size = hal_get_reo_qdesc_size(soc->hal_soc,
|
||||
ba_window_size, tid);
|
||||
|
||||
hw_qdesc_align = hal_get_reo_qdesc_align(soc->hal_soc);
|
||||
/* To avoid unnecessary extra allocation for alignment, try allocating
|
||||
@@ -4047,6 +4043,9 @@ int dp_addba_resp_tx_completion_wifi3(struct cdp_soc_t *cdp_soc,
|
||||
if (peer->active_ba_session_cnt == 0) {
|
||||
if (rx_tid->ba_win_size > 64 && rx_tid->ba_win_size <= 256)
|
||||
peer->hw_buffer_size = 256;
|
||||
else if (rx_tid->ba_win_size <= 1024 &&
|
||||
rx_tid->ba_win_size > 256)
|
||||
peer->hw_buffer_size = 1024;
|
||||
else
|
||||
peer->hw_buffer_size = 64;
|
||||
}
|
||||
@@ -4472,12 +4471,12 @@ dp_set_pn_check_wifi3(struct cdp_soc_t *soc, uint8_t vdev_id,
|
||||
case cdp_sec_type_aes_gcmp:
|
||||
case cdp_sec_type_aes_gcmp_256:
|
||||
params.u.upd_queue_params.pn_check_needed = 1;
|
||||
params.u.upd_queue_params.pn_size = 48;
|
||||
params.u.upd_queue_params.pn_size = PN_SIZE_48;
|
||||
pn_size = 48;
|
||||
break;
|
||||
case cdp_sec_type_wapi:
|
||||
params.u.upd_queue_params.pn_check_needed = 1;
|
||||
params.u.upd_queue_params.pn_size = 128;
|
||||
params.u.upd_queue_params.pn_size = PN_SIZE_128;
|
||||
pn_size = 128;
|
||||
if (vdev->opmode == wlan_op_mode_ap) {
|
||||
params.u.upd_queue_params.pn_even = 1;
|
||||
|
在新工单中引用
屏蔽一个用户