summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/sd8797/mlan/mlan_wmm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/sd8797/mlan/mlan_wmm.c')
-rw-r--r--drivers/net/wireless/sd8797/mlan/mlan_wmm.c55
1 files changed, 21 insertions, 34 deletions
diff --git a/drivers/net/wireless/sd8797/mlan/mlan_wmm.c b/drivers/net/wireless/sd8797/mlan/mlan_wmm.c
index d2c3227aca87..4b72c9193e27 100644
--- a/drivers/net/wireless/sd8797/mlan/mlan_wmm.c
+++ b/drivers/net/wireless/sd8797/mlan/mlan_wmm.c
@@ -946,8 +946,6 @@ wlan_dequeue_tx_packet(pmlan_adapter pmadapter)
t_u8 ra[MLAN_MAC_ADDR_LENGTH];
int tid_del = 0;
int tid = 0;
- t_u8 avail_ports = 0;
- int i;
ENTER();
@@ -975,24 +973,6 @@ wlan_dequeue_tx_packet(pmlan_adapter pmadapter)
if (tid >= MAX_NUM_TID)
tid = wlan_wmm_downgrade_tid(priv, tid);
- for (i = 1; i < pmadapter->mp_end_port; i++) {
- if ((pmadapter->mp_wr_bitmap >> i) & 1)
- avail_ports++;
- }
-
- PRINTM(MINFO,
- "mp_wr_bitmap=0x%08x avail_ports=%d tid=%d tx_eligibility[%d]=%d\n",
- pmadapter->mp_wr_bitmap, avail_ports,
- tid, tid, pmadapter->tx_eligibility[tid]);
-
- if (avail_ports < pmadapter->tx_eligibility[tid]) {
- pmadapter->callbacks.moal_spin_unlock(pmadapter->pmoal_handle,
- priv->wmm.ra_list_spinlock);
- pmadapter->data_sent = MTRUE;
- LEAVE();
- return MLAN_STATUS_FAILURE;
- }
-
if (wlan_is_ptr_processed(priv, ptr)) {
wlan_send_processed_packet(priv, ptr, ptrindex);
LEAVE();
@@ -1407,8 +1387,22 @@ wlan_wmm_init(pmlan_adapter pmadapter)
= priv->aggr_prio_tbl[7].ampdu_user = BA_STREAM_NOT_ALLOWED;
priv->add_ba_param.timeout = MLAN_DEFAULT_BLOCK_ACK_TIMEOUT;
- priv->add_ba_param.tx_win_size = MLAN_AMPDU_DEF_TXWINSIZE;
- priv->add_ba_param.rx_win_size = MLAN_AMPDU_DEF_RXWINSIZE;
+#ifdef STA_SUPPORT
+ if (priv->bss_type == MLAN_BSS_TYPE_STA) {
+ priv->add_ba_param.tx_win_size = MLAN_STA_AMPDU_DEF_TXWINSIZE;
+ priv->add_ba_param.rx_win_size = MLAN_STA_AMPDU_DEF_RXWINSIZE;
+ }
+#endif
+#ifdef UAP_SUPPORT
+ if (priv->bss_type == MLAN_BSS_TYPE_UAP
+#ifdef WIFI_DIRECT_SUPPORT
+ || priv->bss_type == MLAN_BSS_TYPE_WIFIDIRECT
+#endif
+ ) {
+ priv->add_ba_param.tx_win_size = MLAN_UAP_AMPDU_DEF_TXWINSIZE;
+ priv->add_ba_param.rx_win_size = MLAN_UAP_AMPDU_DEF_RXWINSIZE;
+ }
+#endif
priv->add_ba_param.tx_amsdu = MTRUE;
priv->add_ba_param.rx_amsdu = MTRUE;
memset(priv->adapter, priv->rx_seq, 0xff, sizeof(priv->rx_seq));
@@ -1885,8 +1879,7 @@ wlan_wmm_process_association_req(pmlan_private priv,
if ((priv->wmm_required
|| (pHTCap && (pHTCap->ieee_hdr.element_id == HT_CAPABILITY)
- && (priv->adapter->config_bands & BAND_GN
- || priv->adapter->config_bands & BAND_AN))
+ && (priv->config_bands & BAND_GN || priv->config_bands & BAND_AN))
)
&& pWmmIE->vend_hdr.element_id == WMM_IE) {
pwmm_tlv = (MrvlIEtypes_WmmParamSet_t *) * ppAssocBuf;
@@ -2015,14 +2008,12 @@ wlan_wmm_select_queue(mlan_private * pmpriv, t_u8 tid)
* @param priv Pointer to the mlan_private driver data struct
* @param ra_list_head ra list header
* @param tid tid
- * @param tx_pause tx_pause flag
*
* @return N/A
*/
static INLINE t_u8
wlan_del_tx_pkts_in_ralist(pmlan_private priv,
- mlan_list_head * ra_list_head,
- int tid, t_u8 tx_pause)
+ mlan_list_head * ra_list_head, int tid)
{
raListTbl *ra_list = MNULL;
pmlan_adapter pmadapter = priv->adapter;
@@ -2034,15 +2025,14 @@ wlan_del_tx_pkts_in_ralist(pmlan_private priv,
MNULL, MNULL);
while (ra_list && ra_list != (raListTbl *) ra_list_head) {
if (ra_list->total_pkts && (ra_list->tx_pause ||
- (!tx_pause &&
- ra_list->total_pkts > RX_LOW_THRESHOLD))) {
+ (ra_list->total_pkts > RX_LOW_THRESHOLD))) {
if ((pmbuf =
(pmlan_buffer) util_dequeue_list(pmadapter->pmoal_handle,
&ra_list->buf_head, MNULL,
MNULL))) {
PRINTM(MDATA,
"Drop pkts: tid=%d tx_pause=%d pkts=%d brd_pkts=%d %02x:%02x:%02x:%02x:%02x:%02x\n",
- tid, tx_pause, ra_list->total_pkts,
+ tid, ra_list->tx_pause, ra_list->total_pkts,
pmadapter->pending_bridge_pkts, ra_list->ra[0],
ra_list->ra[1], ra_list->ra[2], ra_list->ra[3],
ra_list->ra[4], ra_list->ra[5]);
@@ -2077,17 +2067,14 @@ wlan_drop_tx_pkts(pmlan_private priv)
{
int j;
static int i = 0;
- t_u8 tx_pause = 0;
pmlan_adapter pmadapter = priv->adapter;
pmadapter->callbacks.moal_spin_lock(pmadapter->pmoal_handle,
priv->wmm.ra_list_spinlock);
- if (wlan_get_tx_pause_station_entry(priv))
- tx_pause = 1;
for (j = 0; j < MAX_NUM_TID; j++, i++) {
if (i == MAX_NUM_TID)
i = 0;
if (wlan_del_tx_pkts_in_ralist
- (priv, &priv->wmm.tid_tbl_ptr[i].ra_list, i, tx_pause)) {
+ (priv, &priv->wmm.tid_tbl_ptr[i].ra_list, i)) {
i++;
break;
}