| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> |
|---|
| 3 | 4 | * Copyright (C) 2015 Jakub Kicinski <kubakici@wp.pl> |
|---|
| 4 | | - * |
|---|
| 5 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 6 | | - * it under the terms of the GNU General Public License version 2 |
|---|
| 7 | | - * as published by the Free Software Foundation |
|---|
| 8 | | - * |
|---|
| 9 | | - * This program is distributed in the hope that it will be useful, |
|---|
| 10 | | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|---|
| 11 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|---|
| 12 | | - * GNU General Public License for more details. |
|---|
| 13 | 5 | */ |
|---|
| 14 | 6 | |
|---|
| 15 | 7 | #include "mt7601u.h" |
|---|
| .. | .. |
|---|
| 359 | 351 | struct ieee80211_sta *sta = params->sta; |
|---|
| 360 | 352 | enum ieee80211_ampdu_mlme_action action = params->action; |
|---|
| 361 | 353 | u16 tid = params->tid; |
|---|
| 362 | | - u16 *ssn = ¶ms->ssn; |
|---|
| 354 | + u16 ssn = params->ssn; |
|---|
| 363 | 355 | struct mt76_sta *msta = (struct mt76_sta *) sta->drv_priv; |
|---|
| 364 | 356 | |
|---|
| 365 | 357 | WARN_ON(msta->wcid.idx > GROUP_WCID(0)); |
|---|
| .. | .. |
|---|
| 379 | 371 | case IEEE80211_AMPDU_TX_STOP_FLUSH_CONT: |
|---|
| 380 | 372 | break; |
|---|
| 381 | 373 | case IEEE80211_AMPDU_TX_START: |
|---|
| 382 | | - msta->agg_ssn[tid] = *ssn << 4; |
|---|
| 383 | | - ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); |
|---|
| 384 | | - break; |
|---|
| 374 | + msta->agg_ssn[tid] = ssn << 4; |
|---|
| 375 | + return IEEE80211_AMPDU_TX_START_IMMEDIATE; |
|---|
| 385 | 376 | case IEEE80211_AMPDU_TX_STOP_CONT: |
|---|
| 386 | 377 | ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); |
|---|
| 387 | 378 | break; |
|---|