mac80211: update to version based on 4.19-rc4

This updates mac80211 to backports based on kernel 4.19-rc4.

I plan to integrate all the patches which are in this tar into upstream
backports soon.

I used the backports generated from this code:
https://github.com/hauke/backports/commits/wip2

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
v19.07.3_mercusys_ac12_duma
Hauke Mehrtens 6 years ago committed by John Crispin
parent 61b5b4971e
commit db90c243a0

@ -10,12 +10,12 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=mac80211
PKG_VERSION:=v4.18.5
PKG_VERSION:=4.19-rc4-1
PKG_RELEASE:=1
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
PKG_HASH:=9c13660e98b9397260266f98c9db76bdad2b48462cb376b5862dfbd18369edf2
PKG_SOURCE_URL:=https://hauke-m.de/files/
PKG_HASH:=5502add3ecfae4c75177f069450297d3e0d980f190206a7a71f3887c67cefee4
PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
PKG_SOURCE:=backports-$(PKG_VERSION).tar.gz
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
PKG_BUILD_PARALLEL:=1
@ -856,7 +856,7 @@ endef
define KernelPackage/hermes-pcmcia
$(call KernelPackage/mac80211/Default)
TITLE:=Hermes based PCMCIA adaptors
DEPENDS:=@PCMCIA_SUPPORT +kmod-hermes @BROKEN
DEPENDS:=@PCMCIA_SUPPORT +kmod-hermes
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco_cs.ko
AUTOLOAD:=$(call AutoProbe,orinoco_cs)
endef
@ -1116,7 +1116,7 @@ endef
define KernelPackage/mt7601u
$(call KernelPackage/mac80211/Default)
TITLE:=MT7601U-based USB dongles Wireless Driver
DEPENDS+= @BROKEN +kmod-mac80211 +@DRIVER_11N_SUPPORT @USB_SUPPORT +kmod-usb-core +mt7601u-firmware
DEPENDS+= +kmod-mac80211 +@DRIVER_11N_SUPPORT @USB_SUPPORT +kmod-usb-core +mt7601u-firmware
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko
AUTOLOAD:=$(call AutoProbe,mt7601u)
endef

@ -1,7 +1,5 @@
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/Kconfig
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath10k/Kconfig
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/Kconfig
--- a/drivers/net/wireless/ath/ath10k/Kconfig
+++ b/drivers/net/wireless/ath/ath10k/Kconfig
@@ -85,6 +85,12 @@ config ATH10K_TRACING
---help---
Select this to ath10k use tracing infrastructure.
@ -15,10 +13,8 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/Kconfig
config ATH10K_DFS_CERTIFIED
bool "Atheros DFS support for certified platforms"
depends on ATH10K && CFG80211_CERTIFICATION_ONUS
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/Makefile
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath10k/Makefile
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/Makefile
--- a/drivers/net/wireless/ath/ath10k/Makefile
+++ b/drivers/net/wireless/ath/ath10k/Makefile
@@ -18,7 +18,7 @@ ath10k_core-y += mac.o \
ath10k_core-$(CPTCFG_ATH10K_SPECTRAL) += spectral.o
ath10k_core-$(CPTCFG_NL80211_TESTMODE) += testmode.o
@ -28,10 +24,8 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/Makefile
ath10k_core-$(CPTCFG_MAC80211_DEBUGFS) += debugfs_sta.o
ath10k_core-$(CONFIG_PM) += wow.o
ath10k_core-$(CONFIG_DEV_COREDUMP) += coredump.o
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/thermal.h
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath10k/thermal.h
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/thermal.h
--- a/drivers/net/wireless/ath/ath10k/thermal.h
+++ b/drivers/net/wireless/ath/ath10k/thermal.h
@@ -36,7 +36,7 @@ struct ath10k_thermal {
int temperature;
};
@ -41,11 +35,9 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/thermal.h
int ath10k_thermal_register(struct ath10k *ar);
void ath10k_thermal_unregister(struct ath10k *ar);
void ath10k_thermal_event_temperature(struct ath10k *ar, int temperature);
Index: backports-v4.18-rc7/local-symbols
===================================================================
--- backports-v4.18-rc7.orig/local-symbols
+++ backports-v4.18-rc7/local-symbols
@@ -144,6 +144,7 @@ ATH10K_SNOC=
--- a/local-symbols
+++ b/local-symbols
@@ -140,6 +140,7 @@ ATH10K_SNOC=
ATH10K_DEBUG=
ATH10K_DEBUGFS=
ATH10K_SPECTRAL=

@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -1394,8 +1394,12 @@ static bool ath9k_hw_set_reset(struct at
@@ -1421,8 +1421,12 @@ static bool ath9k_hw_set_reset(struct at
if (!AR_SREV_9100(ah))
REG_WRITE(ah, AR_RC, 0);

@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -1271,39 +1271,56 @@ void ath9k_hw_get_delta_slope_vals(struc
@@ -1298,39 +1298,56 @@ void ath9k_hw_get_delta_slope_vals(struc
*coef_exponent = coef_exp - 16;
}
@ -94,7 +94,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
return true;
}
@@ -1356,24 +1373,24 @@ static bool ath9k_hw_set_reset(struct at
@@ -1383,24 +1400,24 @@ static bool ath9k_hw_set_reset(struct at
rst_flags |= AR_RTC_RC_MAC_COLD;
}

@ -1,21 +0,0 @@
From: Felix Fietkau <nbd@nbd.name>
Date: Mon, 11 Jul 2016 12:07:40 +0200
Subject: [PATCH] ath9k_hw: set spectral scan enable bit on trigger for
AR9003+
AR9002 code and QCA AR9003+ code do the same.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c
@@ -1800,6 +1800,8 @@ static void ar9003_hw_spectral_scan_conf
static void ar9003_hw_spectral_scan_trigger(struct ath_hw *ah)
{
+ REG_SET_BIT(ah, AR_PHY_SPECTRAL_SCAN,
+ AR_PHY_SPECTRAL_SCAN_ENABLE);
/* Activate spectral scan */
REG_SET_BIT(ah, AR_PHY_SPECTRAL_SCAN,
AR_PHY_SPECTRAL_SCAN_ACTIVE);

@ -1,27 +0,0 @@
From: Felix Fietkau <nbd@nbd.name>
Date: Tue, 27 Dec 2016 23:16:23 +0100
Subject: [PATCH] ath9k: don't run periodic and nf calibation at the same
time
The checks already prevents periodic cal from being started while noise
floor calibration runs. It is missing checks for the other way around.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/drivers/net/wireless/ath/ath9k/ar9002_calib.c
+++ b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
@@ -676,10 +676,10 @@ static int ar9002_hw_calibrate(struct at
return 0;
ah->cal_list_curr = currCal = currCal->calNext;
- if (currCal->calState == CAL_WAITING) {
+ if (currCal->calState == CAL_WAITING)
ath9k_hw_reset_calibration(ah, currCal);
- return 0;
- }
+
+ return 0;
}
/* Do NF cal only at longer intervals */

@ -8,17 +8,17 @@ This reverts commit 71f5137bf010c6faffab50c0ec15374c59c4a411.
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -2935,7 +2935,8 @@ void ath9k_hw_apply_txpower(struct ath_h
@@ -2962,7 +2962,8 @@ void ath9k_hw_apply_txpower(struct ath_h
{
struct ath_regulatory *reg = ath9k_hw_regulatory(ah);
struct ieee80211_channel *channel;
- int chan_pwr, new_pwr;
+ int chan_pwr, new_pwr, max_gain;
+ int ant_gain, ant_reduction = 0;
u16 ctl = NO_CTL;
if (!chan)
return;
@@ -2943,10 +2944,15 @@ void ath9k_hw_apply_txpower(struct ath_h
@@ -2974,9 +2975,14 @@ void ath9k_hw_apply_txpower(struct ath_h
channel = chan->chan;
chan_pwr = min_t(int, channel->max_power * 2, MAX_RATE_POWER);
new_pwr = min_t(int, chan_pwr, reg->power_limit);
@ -28,8 +28,7 @@ This reverts commit 71f5137bf010c6faffab50c0ec15374c59c4a411.
+ if (ant_gain > max_gain)
+ ant_reduction = ant_gain - max_gain;
ah->eep_ops->set_txpower(ah, chan,
ath9k_regd_get_ctl(reg, chan),
ah->eep_ops->set_txpower(ah, chan, ctl,
- get_antenna_gain(ah, chan), new_pwr, test);
+ ant_reduction, new_pwr, test);
}

@ -1,50 +0,0 @@
From: Felix Fietkau <nbd@nbd.name>
Date: Sun, 28 Aug 2016 13:13:01 +0200
Subject: [PATCH] ath9k: fix moredata bit in PS buffered frame release
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -1659,6 +1659,22 @@ void ath_tx_aggr_wakeup(struct ath_softc
}
}
+
+static void
+ath9k_set_moredata(struct ath_softc *sc, struct ath_buf *bf, bool val)
+{
+ struct ieee80211_hdr *hdr;
+ u16 mask = cpu_to_le16(IEEE80211_FCTL_MOREDATA);
+ u16 mask_val = mask * val;
+
+ hdr = (struct ieee80211_hdr *) bf->bf_mpdu->data;
+ if ((hdr->frame_control & mask) != mask_val) {
+ hdr->frame_control = (hdr->frame_control & ~mask) | mask_val;
+ dma_sync_single_for_device(sc->dev, bf->bf_buf_addr,
+ sizeof(*hdr), DMA_TO_DEVICE);
+ }
+}
+
void ath9k_release_buffered_frames(struct ieee80211_hw *hw,
struct ieee80211_sta *sta,
u16 tids, int nframes,
@@ -1689,6 +1705,7 @@ void ath9k_release_buffered_frames(struc
if (!bf)
break;
+ ath9k_set_moredata(sc, bf, true);
list_add_tail(&bf->list, &bf_q);
ath_set_rates(tid->an->vif, tid->an->sta, bf);
if (bf_isampdu(bf)) {
@@ -1712,6 +1729,9 @@ void ath9k_release_buffered_frames(struc
if (list_empty(&bf_q))
return;
+ if (!more_data)
+ ath9k_set_moredata(sc, bf_tail, false);
+
info = IEEE80211_SKB_CB(bf_tail->bf_mpdu);
info->flags |= IEEE80211_TX_STATUS_EOSP;

@ -1,22 +0,0 @@
From: Felix Fietkau <nbd@nbd.name>
Date: Sun, 28 Aug 2016 13:13:42 +0200
Subject: [PATCH] ath9k: clear potentially stale EOSP status bit in
intermediate queues
Prevents spurious ieee80211_sta_eosp calls.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -969,7 +969,8 @@ ath_tx_get_tid_subframe(struct ath_softc
bf->bf_lastbf = bf;
tx_info = IEEE80211_SKB_CB(skb);
- tx_info->flags &= ~IEEE80211_TX_CTL_CLEAR_PS_FILT;
+ tx_info->flags &= ~(IEEE80211_TX_CTL_CLEAR_PS_FILT |
+ IEEE80211_TX_STATUS_EOSP);
/*
* No aggregation session is running, but there may be frames

@ -1,19 +0,0 @@
From: Felix Fietkau <nbd@nbd.name>
Date: Sun, 28 Aug 2016 13:23:27 +0200
Subject: [PATCH] ath9k: report tx status on EOSP
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -86,7 +86,8 @@ static void ath_tx_status(struct ieee802
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
struct ieee80211_sta *sta = info->status.status_driver_data[0];
- if (info->flags & IEEE80211_TX_CTL_REQ_TX_STATUS) {
+ if (info->flags & (IEEE80211_TX_CTL_REQ_TX_STATUS |
+ IEEE80211_TX_STATUS_EOSP)) {
ieee80211_tx_status(hw, skb);
return;
}

@ -1,114 +0,0 @@
From: Felix Fietkau <nbd@nbd.name>
Date: Tue, 30 Aug 2016 12:44:08 +0200
Subject: [PATCH] ath9k: fix block-ack window tracking issues
Ensure that a buffer gets tracked as part of the block-ack window as
soon as it's dequeued from the tid for the first time. Ensure that
double calls to ath_tx_addto_baw (e.g. on retransmission) don't cause
any issues.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -62,7 +62,7 @@ static void ath_tx_rc_status(struct ath_
struct ath_tx_status *ts, int nframes, int nbad,
int txok);
static void ath_tx_update_baw(struct ath_softc *sc, struct ath_atx_tid *tid,
- int seqno);
+ struct ath_buf *bf);
static struct ath_buf *ath_tx_setup_buffer(struct ath_softc *sc,
struct ath_txq *txq,
struct ath_atx_tid *tid,
@@ -296,7 +296,7 @@ static void ath_tx_flush_tid(struct ath_
}
if (fi->baw_tracked) {
- ath_tx_update_baw(sc, tid, bf->bf_state.seqno);
+ ath_tx_update_baw(sc, tid, bf);
sendbar = true;
}
@@ -312,10 +312,15 @@ static void ath_tx_flush_tid(struct ath_
}
static void ath_tx_update_baw(struct ath_softc *sc, struct ath_atx_tid *tid,
- int seqno)
+ struct ath_buf *bf)
{
+ struct ath_frame_info *fi = get_frame_info(bf->bf_mpdu);
+ u16 seqno = bf->bf_state.seqno;
int index, cindex;
+ if (!fi->baw_tracked)
+ return;
+
index = ATH_BA_INDEX(tid->seq_start, seqno);
cindex = (tid->baw_head + index) & (ATH_TID_MAX_BUFS - 1);
@@ -336,6 +341,9 @@ static void ath_tx_addto_baw(struct ath_
u16 seqno = bf->bf_state.seqno;
int index, cindex;
+ if (fi->baw_tracked)
+ return;
+
index = ATH_BA_INDEX(tid->seq_start, seqno);
cindex = (tid->baw_head + index) & (ATH_TID_MAX_BUFS - 1);
__set_bit(cindex, tid->tx_buf);
@@ -612,7 +620,7 @@ static void ath_tx_complete_aggr(struct
* complete the acked-ones/xretried ones; update
* block-ack window
*/
- ath_tx_update_baw(sc, tid, seqno);
+ ath_tx_update_baw(sc, tid, bf);
if (rc_update && (acked_cnt == 1 || txfail_cnt == 1)) {
memcpy(tx_info->control.rates, rates, sizeof(rates));
@@ -642,7 +650,7 @@ static void ath_tx_complete_aggr(struct
* run out of tx buf.
*/
if (!tbf) {
- ath_tx_update_baw(sc, tid, seqno);
+ ath_tx_update_baw(sc, tid, bf);
ath_tx_complete_buf(sc, bf, txq,
&bf_head, NULL, ts,
@@ -1011,11 +1019,14 @@ ath_tx_get_tid_subframe(struct ath_softc
INIT_LIST_HEAD(&bf_head);
list_add(&bf->list, &bf_head);
- ath_tx_update_baw(sc, tid, seqno);
+ ath_tx_update_baw(sc, tid, bf);
ath_tx_complete_buf(sc, bf, txq, &bf_head, NULL, &ts, 0);
continue;
}
+ if (bf_isampdu(bf))
+ ath_tx_addto_baw(sc, tid, bf);
+
return bf;
}
@@ -1073,8 +1084,6 @@ ath_tx_form_aggr(struct ath_softc *sc, s
bf->bf_next = NULL;
/* link buffers of this frame to the aggregate */
- if (!fi->baw_tracked)
- ath_tx_addto_baw(sc, tid, bf);
bf->bf_state.ndelim = ndelim;
list_add_tail(&bf->list, bf_q);
@@ -1710,10 +1719,8 @@ void ath9k_release_buffered_frames(struc
ath9k_set_moredata(sc, bf, true);
list_add_tail(&bf->list, &bf_q);
ath_set_rates(tid->an->vif, tid->an->sta, bf);
- if (bf_isampdu(bf)) {
- ath_tx_addto_baw(sc, tid, bf);
+ if (bf_isampdu(bf))
bf->bf_state.bf_type &= ~BUF_AGGR;
- }
if (bf_tail)
bf_tail->bf_next = bf;

@ -1,47 +0,0 @@
From: Felix Fietkau <nbd@nbd.name>
Date: Wed, 22 Mar 2017 20:37:04 +0100
Subject: [PATCH] ath9k_hw: fix channel maximum power level test
The tx power applied by set_txpower is limited by the CTL (conformance
test limit) entries in the EEPROM. These can change based on the user
configured regulatory domain.
Depending on the EEPROM data this can cause the tx power to become too
limited, if the original regdomain CTLs impose lowr limits than the CTLs
of the user configured regdomain.
To fix this issue, set the initial channel limits without any CTL
restrictions and only apply the CTL at run time when setting the channel
and the real tx power.
Cc: stable@vger.kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -2937,10 +2937,14 @@ void ath9k_hw_apply_txpower(struct ath_h
struct ieee80211_channel *channel;
int chan_pwr, new_pwr, max_gain;
int ant_gain, ant_reduction = 0;
+ u16 ctl = NO_CTL;
if (!chan)
return;
+ if (!test)
+ ctl = ath9k_regd_get_ctl(reg, chan);
+
channel = chan->chan;
chan_pwr = min_t(int, channel->max_power * 2, MAX_RATE_POWER);
new_pwr = min_t(int, chan_pwr, reg->power_limit);
@@ -2950,9 +2954,7 @@ void ath9k_hw_apply_txpower(struct ath_h
if (ant_gain > max_gain)
ant_reduction = ant_gain - max_gain;
- ah->eep_ops->set_txpower(ah, chan,
- ath9k_regd_get_ctl(reg, chan),
- ant_reduction, new_pwr, test);
+ ah->eep_ops->set_txpower(ah, chan, ctl, ant_reduction, new_pwr, test);
}
void ath9k_hw_set_txpowerlimit(struct ath_hw *ah, u32 limit, bool test)

@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -2954,6 +2954,10 @@ void ath9k_hw_apply_txpower(struct ath_h
@@ -2981,6 +2981,10 @@ void ath9k_hw_apply_txpower(struct ath_h
if (ant_gain > max_gain)
ant_reduction = ant_gain - max_gain;
@ -19,6 +19,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ if (reg->region == NL80211_DFS_FCC)
+ ant_reduction = max_t(int, ant_reduction - 6, 0);
+
ah->eep_ops->set_txpower(ah, chan, ctl, ant_reduction, new_pwr, test);
ah->eep_ops->set_txpower(ah, chan, ctl,
ant_reduction, new_pwr, test);
}

@ -1,41 +0,0 @@
From: Felix Fietkau <nbd@nbd.name>
Date: Sun, 23 Jul 2017 14:58:22 +0200
Subject: [PATCH] ath9k: fix more-data flag for buffered multicast
packets
The flag needs to be cleared for the last packet in the list, not the
first one. Fixes some issues with multicast packet loss for powersave
clients connected to an ath9k AP.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -2436,7 +2436,6 @@ void ath_tx_cabq(struct ieee80211_hw *hw
.txq = sc->beacon.cabq
};
struct ath_tx_info info = {};
- struct ieee80211_hdr *hdr;
struct ath_buf *bf_tail = NULL;
struct ath_buf *bf;
LIST_HEAD(bf_q);
@@ -2480,15 +2479,10 @@ void ath_tx_cabq(struct ieee80211_hw *hw
if (list_empty(&bf_q))
return;
- bf = list_first_entry(&bf_q, struct ath_buf, list);
- hdr = (struct ieee80211_hdr *) bf->bf_mpdu->data;
-
- if (hdr->frame_control & cpu_to_le16(IEEE80211_FCTL_MOREDATA)) {
- hdr->frame_control &= ~cpu_to_le16(IEEE80211_FCTL_MOREDATA);
- dma_sync_single_for_device(sc->dev, bf->bf_buf_addr,
- sizeof(*hdr), DMA_TO_DEVICE);
- }
+ bf = list_last_entry(&bf_q, struct ath_buf, list);
+ ath9k_set_moredata(sc, bf, false);
+ bf = list_first_entry(&bf_q, struct ath_buf, list);
ath_txq_lock(sc, txctl.txq);
ath_tx_fill_desc(sc, bf, txctl.txq, 0);
ath_tx_txqaddbuf(sc, txctl.txq, &bf_q, false);

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/Makefile
+++ b/drivers/net/wireless/ath/Makefile
@@ -13,10 +13,10 @@ ath-objs := main.o \
@@ -14,10 +14,10 @@ ath-objs := main.o \
regd.o \
hw.o \
key.o \
@ -14,7 +14,7 @@
CFLAGS_trace.o := -I$(src)
--- a/drivers/net/wireless/ath/ath.h
+++ b/drivers/net/wireless/ath/ath.h
@@ -318,14 +318,7 @@ void _ath_dbg(struct ath_common *common,
@@ -316,14 +316,7 @@ void _ath_dbg(struct ath_common *common,
#endif /* CPTCFG_ATH_DEBUG */
/** Returns string describing opmode, or NULL if unknown mode. */

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -47,7 +47,7 @@ int ath9k_modparam_nohwcrypt;
@@ -48,7 +48,7 @@ int ath9k_modparam_nohwcrypt;
module_param_named(nohwcrypt, ath9k_modparam_nohwcrypt, int, 0444);
MODULE_PARM_DESC(nohwcrypt, "Disable hardware encryption");

@ -82,7 +82,7 @@
---help---
--- a/local-symbols
+++ b/local-symbols
@@ -87,6 +87,7 @@ ADM8211=
@@ -84,6 +84,7 @@ ADM8211=
ATH_COMMON=
WLAN_VENDOR_ATH=
ATH_DEBUG=

@ -1,6 +1,6 @@
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -2860,6 +2860,8 @@ void regulatory_hint_country_ie(struct w
@@ -2980,6 +2980,8 @@ void regulatory_hint_country_ie(struct w
enum environment_cap env = ENVIRON_ANY;
struct regulatory_request *request = NULL, *lr;
@ -9,7 +9,7 @@
/* IE len must be evenly divisible by 2 */
if (country_ie_len & 0x01)
return;
@@ -3066,6 +3068,7 @@ static void restore_regulatory_settings(
@@ -3186,6 +3188,7 @@ static void restore_regulatory_settings(
void regulatory_hint_disconnect(void)
{

@ -8,15 +8,15 @@
FRANCE_RES = 0x31,
FCC3_FCCA = 0x3A,
FCC3_WORLD = 0x3B,
@@ -167,6 +168,7 @@ static struct reg_dmn_pair_mapping regDo
@@ -172,6 +173,7 @@ static struct reg_dmn_pair_mapping regDo
{FCC2_WORLD, CTL_FCC, CTL_ETSI},
{FCC2_ETSIC, CTL_FCC, CTL_ETSI},
{FCC3_FCCA, CTL_FCC, CTL_FCC},
+ {FCC3_FCCA_2, CTL_FCC, CTL_FCC},
{FCC3_WORLD, CTL_FCC, CTL_ETSI},
{FCC3_ETSIC, CTL_FCC, CTL_ETSI},
{FCC4_FCCA, CTL_FCC, CTL_FCC},
{FCC5_FCCA, CTL_FCC, CTL_FCC},
@@ -463,6 +465,7 @@ static struct country_code_to_enum_rd al
@@ -483,6 +485,7 @@ static struct country_code_to_enum_rd al
{CTRY_UAE, NULL1_WORLD, "AE"},
{CTRY_UNITED_KINGDOM, ETSI1_WORLD, "GB"},
{CTRY_UNITED_STATES, FCC3_FCCA, "US"},

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -777,6 +777,7 @@ static const struct ieee80211_iface_limi
@@ -833,6 +833,7 @@ static const struct ieee80211_iface_limi
BIT(NL80211_IFTYPE_AP) },
{ .max = 1, .types = BIT(NL80211_IFTYPE_P2P_CLIENT) |
BIT(NL80211_IFTYPE_P2P_GO) },

@ -9,10 +9,8 @@ Other devices will need to be added to the switch in write_file_bwmode
drivers/net/wireless/ath/ath5k/debug.c | 86 ++++++++++++++++++++++++++++++++
1 files changed, 86 insertions(+), 0 deletions(-)
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath5k/debug.c
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath5k/debug.c
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath5k/debug.c
--- a/drivers/net/wireless/ath/ath5k/debug.c
+++ b/drivers/net/wireless/ath/ath5k/debug.c
@@ -822,6 +822,97 @@ static const struct file_operations fops
.llseek = default_llseek,
};
@ -120,10 +118,8 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath5k/debug.c
}
/* functions used in other places */
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath5k/ath5k.h
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath5k/ath5k.h
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath5k/ath5k.h
--- a/drivers/net/wireless/ath/ath5k/ath5k.h
+++ b/drivers/net/wireless/ath/ath5k/ath5k.h
@@ -1372,6 +1372,7 @@ struct ath5k_hw {
u8 ah_coverage_class;
bool ah_ack_bitrate_high;
@ -132,10 +128,8 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath5k/ath5k.h
bool ah_short_slot;
/* Antenna Control */
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath5k/base.c
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath5k/base.c
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath5k/base.c
--- a/drivers/net/wireless/ath/ath5k/base.c
+++ b/drivers/net/wireless/ath/ath5k/base.c
@@ -466,6 +466,9 @@ ath5k_chan_set(struct ath5k_hw *ah, stru
return -EINVAL;
}

@ -1,7 +1,5 @@
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath9k/init.c
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath9k/init.c
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath9k/init.c
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -1144,25 +1144,25 @@ static int __init ath9k_init(void)
{
int error;

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -390,13 +390,8 @@ static void ath9k_hw_init_config(struct
@@ -392,13 +392,8 @@ static void ath9k_hw_init_config(struct
ah->config.rx_intr_mitigation = true;

@ -64,7 +64,7 @@
debugfs_create_devm_seqfile(sc->dev, "interrupt", sc->debug.debugfs_phy,
--- a/drivers/net/wireless/ath/ath.h
+++ b/drivers/net/wireless/ath/ath.h
@@ -151,6 +151,7 @@ struct ath_common {
@@ -149,6 +149,7 @@ struct ath_common {
int debug_mask;
enum ath_device_state state;
unsigned long op_flags;

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -647,6 +647,7 @@ int ath9k_hw_init(struct ath_hw *ah)
@@ -649,6 +649,7 @@ int ath9k_hw_init(struct ath_hw *ah)
/* These are all the AR5008/AR9001/AR9002/AR9003 hardware family of chipsets */
switch (ah->hw_version.devid) {
@ -20,7 +20,7 @@
#define AR9160_DEVID_PCI 0x0027
--- a/drivers/net/wireless/ath/ath9k/pci.c
+++ b/drivers/net/wireless/ath/ath9k/pci.c
@@ -773,6 +773,7 @@ static const struct pci_device_id ath_pc
@@ -774,6 +774,7 @@ static const struct pci_device_id ath_pc
.driver_data = ATH9K_PCI_BT_ANT_DIV },
#endif

@ -181,7 +181,7 @@
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -1000,7 +1000,7 @@ int ath9k_init_device(u16 devid, struct
@@ -1056,7 +1056,7 @@ int ath9k_init_device(u16 devid, struct
#ifdef CPTCFG_MAC80211_LEDS
/* must be initialized before ieee80211_register_hw */

@ -75,7 +75,7 @@
struct ath9k_hw_version {
u32 magic;
u16 devid;
@@ -806,6 +812,8 @@ struct ath_hw {
@@ -808,6 +814,8 @@ struct ath_hw {
u32 ah_flags;
s16 nf_override;
@ -84,7 +84,7 @@
bool reset_power_on;
bool htc_reset_init;
@@ -1068,6 +1076,7 @@ void ath9k_hw_check_nav(struct ath_hw *a
@@ -1073,6 +1081,7 @@ void ath9k_hw_check_nav(struct ath_hw *a
bool ath9k_hw_check_alive(struct ath_hw *ah);
bool ath9k_hw_setpower(struct ath_hw *ah, enum ath9k_power_mode mode);
@ -94,7 +94,7 @@
struct ath_gen_timer *ath_gen_timer_alloc(struct ath_hw *ah,
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -1842,6 +1842,20 @@ u32 ath9k_hw_get_tsf_offset(struct times
@@ -1869,6 +1869,20 @@ u32 ath9k_hw_get_tsf_offset(struct times
}
EXPORT_SYMBOL(ath9k_hw_get_tsf_offset);
@ -115,7 +115,7 @@
int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
struct ath9k_hw_cal_data *caldata, bool fastcc)
{
@@ -2050,6 +2064,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st
@@ -2077,6 +2091,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st
ar9003_hw_disable_phy_restart(ah);
ath9k_hw_apply_gpio_override(ah);

@ -55,7 +55,7 @@
ops->spectral_scan_config = ar9003_hw_spectral_scan_config;
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -765,7 +765,8 @@ static void ath9k_init_txpower_limits(st
@@ -821,7 +821,8 @@ static void ath9k_init_txpower_limits(st
if (ah->caps.hw_caps & ATH9K_HW_CAP_5GHZ)
ath9k_init_band_txpower(sc, NL80211_BAND_5GHZ);
@ -65,7 +65,7 @@
}
static const struct ieee80211_iface_limit if_limits[] = {
@@ -960,6 +961,18 @@ static void ath9k_set_hw_capab(struct at
@@ -1016,6 +1017,18 @@ static void ath9k_set_hw_capab(struct at
wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
}
@ -84,7 +84,7 @@
int ath9k_init_device(u16 devid, struct ath_softc *sc,
const struct ath_bus_ops *bus_ops)
{
@@ -1005,6 +1018,8 @@ int ath9k_init_device(u16 devid, struct
@@ -1061,6 +1074,8 @@ int ath9k_init_device(u16 devid, struct
ARRAY_SIZE(ath9k_tpt_blink));
#endif
@ -110,7 +110,7 @@
static inline void ath9k_hw_set_bt_ant_diversity(struct ath_hw *ah, bool enable)
--- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c
+++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c
@@ -1322,9 +1322,30 @@ void ar5008_hw_init_rate_txpower(struct
@@ -1324,9 +1324,30 @@ void ar5008_hw_init_rate_txpower(struct
}
}
@ -141,7 +141,7 @@
static const u32 ar5416_cca_regs[6] = {
AR_PHY_CCA,
AR_PHY_CH1_CCA,
@@ -1339,6 +1360,8 @@ int ar5008_hw_attach_phy_ops(struct ath_
@@ -1341,6 +1362,8 @@ int ar5008_hw_attach_phy_ops(struct ath_
if (ret)
return ret;

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -246,6 +246,19 @@ void ath9k_hw_get_channel_centers(struct
@@ -248,6 +248,19 @@ void ath9k_hw_get_channel_centers(struct
centers->synth_center + (extoff * HT40_CHANNEL_CENTER_SHIFT);
}
@ -20,7 +20,7 @@
/******************/
/* Chip Revisions */
/******************/
@@ -1414,6 +1427,9 @@ static bool ath9k_hw_set_reset(struct at
@@ -1441,6 +1454,9 @@ static bool ath9k_hw_set_reset(struct at
udelay(50);
}
@ -30,7 +30,7 @@
return true;
}
@@ -1513,6 +1529,9 @@ static bool ath9k_hw_chip_reset(struct a
@@ -1540,6 +1556,9 @@ static bool ath9k_hw_chip_reset(struct a
ar9003_hw_internal_regulator_apply(ah);
ath9k_hw_init_pll(ah, chan);
@ -40,7 +40,7 @@
return true;
}
@@ -1820,8 +1839,14 @@ static int ath9k_hw_do_fastcc(struct ath
@@ -1847,8 +1866,14 @@ static int ath9k_hw_do_fastcc(struct ath
if (AR_SREV_9271(ah))
ar9002_hw_load_ani_reg(ah, chan);
@ -55,7 +55,7 @@
return -EINVAL;
}
@@ -2075,6 +2100,9 @@ int ath9k_hw_reset(struct ath_hw *ah, st
@@ -2102,6 +2127,9 @@ int ath9k_hw_reset(struct ath_hw *ah, st
ath9k_hw_set_radar_params(ah);
}

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c
+++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c
@@ -951,55 +951,6 @@ static bool ar5008_hw_ani_control_new(st
@@ -953,55 +953,6 @@ static bool ar5008_hw_ani_control_new(st
* on == 0 means more noise imm
*/
u32 on = param ? 1 : 0;

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -571,6 +571,12 @@ static int ath9k_of_init(struct ath_soft
@@ -627,6 +627,12 @@ static int ath9k_of_init(struct ath_soft
ath_dbg(common, CONFIG, "parsing configuration from OF node\n");

@ -365,7 +365,7 @@
* semi-random values after suspend/resume.
--- a/drivers/net/wireless/ath/ath9k/Makefile
+++ b/drivers/net/wireless/ath/ath9k/Makefile
@@ -16,6 +16,7 @@ ath9k-$(CPTCFG_ATH9K_DFS_CERTIFIED) += d
@@ -17,6 +17,7 @@ ath9k-$(CPTCFG_ATH9K_DFS_CERTIFIED) += d
ath9k-$(CPTCFG_ATH9K_TX99) += tx99.o
ath9k-$(CPTCFG_ATH9K_WOW) += wow.o
ath9k-$(CPTCFG_ATH9K_HWRNG) += rng.o
@ -386,7 +386,7 @@
#endif /* _LINUX_ATH9K_PLATFORM_H */
--- a/local-symbols
+++ b/local-symbols
@@ -114,6 +114,7 @@ ATH9K_WOW=
@@ -111,6 +111,7 @@ ATH9K_WOW=
ATH9K_RFKILL=
ATH9K_CHANNEL_CONTEXT=
ATH9K_PCOEM=

@ -1,9 +1,9 @@
--- a/drivers/net/wireless/ath/ath9k/ahb.c
+++ b/drivers/net/wireless/ath/ath9k/ahb.c
@@ -19,7 +19,15 @@
#include <linux/nl80211.h>
@@ -20,7 +20,15 @@
#include <linux/platform_device.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
+#include <linux/of_device.h>
#include "ath9k.h"
+#include <linux/ath9k_platform.h>
@ -16,7 +16,7 @@
static const struct platform_device_id ath9k_platform_id_table[] = {
{
@@ -68,6 +76,235 @@ static const struct ath_bus_ops ath_ahb_
@@ -69,6 +77,235 @@ static const struct ath_bus_ops ath_ahb_
.eeprom_read = ath_ahb_eeprom_read,
};
@ -252,7 +252,7 @@
static int ath_ahb_probe(struct platform_device *pdev)
{
void __iomem *mem;
@@ -79,6 +316,17 @@ static int ath_ahb_probe(struct platform
@@ -80,6 +317,17 @@ static int ath_ahb_probe(struct platform
int ret = 0;
struct ath_hw *ah;
char hw_name[64];
@ -270,7 +270,7 @@
if (!dev_get_platdata(&pdev->dev)) {
dev_err(&pdev->dev, "no platform data specified\n");
@@ -121,13 +369,16 @@ static int ath_ahb_probe(struct platform
@@ -122,13 +370,16 @@ static int ath_ahb_probe(struct platform
sc->mem = mem;
sc->irq = irq;
@ -288,7 +288,7 @@
if (ret) {
dev_err(&pdev->dev, "failed to initialize device\n");
goto err_irq;
@@ -158,6 +409,9 @@ static int ath_ahb_remove(struct platfor
@@ -159,6 +410,9 @@ static int ath_ahb_remove(struct platfor
free_irq(sc->irq, sc);
ieee80211_free_hw(sc->hw);
}
@ -298,7 +298,7 @@
return 0;
}
@@ -167,6 +421,9 @@ static struct platform_driver ath_ahb_dr
@@ -168,6 +422,9 @@ static struct platform_driver ath_ahb_dr
.remove = ath_ahb_remove,
.driver = {
.name = "ath9k",

@ -14,7 +14,7 @@ Signed-off-by: Sven Eckelmann <sven@open-mesh.com>
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -2507,6 +2507,16 @@ int ath10k_core_register(struct ath10k *
@@ -2719,6 +2719,16 @@ int ath10k_core_register(struct ath10k *
ar->chip_id = chip_id;
queue_work(ar->workqueue, &ar->register_work);

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -8122,6 +8122,21 @@ static int ath10k_mac_init_rd(struct ath
@@ -8282,6 +8282,21 @@ static int ath10k_mac_init_rd(struct ath
return 0;
}
@ -22,7 +22,7 @@
int ath10k_mac_register(struct ath10k *ar)
{
static const u32 cipher_suites[] = {
@@ -8397,6 +8412,12 @@ int ath10k_mac_register(struct ath10k *a
@@ -8571,6 +8586,12 @@ int ath10k_mac_register(struct ath10k *a
wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -783,7 +783,7 @@ static int ath10k_core_get_board_id_from
@@ -943,7 +943,7 @@ static int ath10k_core_get_board_id_from
if (ret) {
ath10k_err(ar, "could not execute otp for board id check: %d\n",
ret);

@ -1,7 +1,5 @@
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/htt.h
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath10k/htt.h
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/htt.h
--- a/drivers/net/wireless/ath/ath10k/htt.h
+++ b/drivers/net/wireless/ath/ath10k/htt.h
@@ -238,7 +238,7 @@ enum htt_rx_ring_flags {
};

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath10k/pci.c
+++ b/drivers/net/wireless/ath/ath10k/pci.c
@@ -128,7 +128,7 @@ static struct ce_attr host_ce_config_wla
@@ -142,7 +142,7 @@ static struct ce_attr host_ce_config_wla
.flags = CE_ATTR_FLAGS,
.src_nentries = 0,
.src_sz_max = 2048,
@ -9,7 +9,7 @@
.recv_cb = ath10k_pci_htt_htc_rx_cb,
},
@@ -137,7 +137,7 @@ static struct ce_attr host_ce_config_wla
@@ -151,7 +151,7 @@ static struct ce_attr host_ce_config_wla
.flags = CE_ATTR_FLAGS,
.src_nentries = 0,
.src_sz_max = 2048,
@ -18,7 +18,7 @@
.recv_cb = ath10k_pci_htc_rx_cb,
},
@@ -164,7 +164,7 @@ static struct ce_attr host_ce_config_wla
@@ -178,7 +178,7 @@ static struct ce_attr host_ce_config_wla
.flags = CE_ATTR_FLAGS,
.src_nentries = 0,
.src_sz_max = 512,
@ -27,7 +27,7 @@
.recv_cb = ath10k_pci_htt_rx_cb,
},
@@ -189,7 +189,7 @@ static struct ce_attr host_ce_config_wla
@@ -203,7 +203,7 @@ static struct ce_attr host_ce_config_wla
.flags = CE_ATTR_FLAGS,
.src_nentries = 0,
.src_sz_max = 2048,

@ -23,7 +23,7 @@ v9: use SM/MS macros from code.h to simplify shift/mask handling
3 files changed, 52 insertions(+), 23 deletions(-)
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -2466,7 +2466,7 @@ static void ath10k_peer_assoc_h_vht(stru
@@ -2469,7 +2469,7 @@ static void ath10k_peer_assoc_h_vht(stru
const u16 *vht_mcs_mask;
u8 ampdu_factor;
u8 max_nss, vht_mcs;
@ -32,7 +32,7 @@ v9: use SM/MS macros from code.h to simplify shift/mask handling
if (WARN_ON(ath10k_mac_vif_chan(vif, &def)))
return;
@@ -2526,23 +2526,45 @@ static void ath10k_peer_assoc_h_vht(stru
@@ -2529,23 +2529,45 @@ static void ath10k_peer_assoc_h_vht(stru
__le16_to_cpu(vht_cap->vht_mcs.tx_highest);
arg->peer_vht_rates.tx_mcs_set = ath10k_peer_assoc_h_vht_limit(
__le16_to_cpu(vht_cap->vht_mcs.tx_mcs_map), vht_mcs_mask);
@ -92,7 +92,7 @@ v9: use SM/MS macros from code.h to simplify shift/mask handling
}
static void ath10k_peer_assoc_h_qos(struct ath10k *ar,
@@ -2694,9 +2716,9 @@ static int ath10k_peer_assoc_prepare(str
@@ -2697,9 +2719,9 @@ static int ath10k_peer_assoc_prepare(str
ath10k_peer_assoc_h_crypto(ar, vif, sta, arg);
ath10k_peer_assoc_h_rates(ar, vif, sta, arg);
ath10k_peer_assoc_h_ht(ar, vif, sta, arg);
@ -105,7 +105,7 @@ v9: use SM/MS macros from code.h to simplify shift/mask handling
}
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -7231,12 +7231,7 @@ ath10k_wmi_peer_assoc_fill_10_4(struct a
@@ -7346,12 +7346,7 @@ ath10k_wmi_peer_assoc_fill_10_4(struct a
struct wmi_10_4_peer_assoc_complete_cmd *cmd = buf;
ath10k_wmi_peer_assoc_fill_10_2(ar, buf, arg);
@ -121,7 +121,7 @@ v9: use SM/MS macros from code.h to simplify shift/mask handling
static int
--- a/drivers/net/wireless/ath/ath10k/wmi.h
+++ b/drivers/net/wireless/ath/ath10k/wmi.h
@@ -6306,7 +6306,19 @@ struct wmi_10_2_peer_assoc_complete_cmd
@@ -6357,7 +6357,19 @@ struct wmi_10_2_peer_assoc_complete_cmd
__le32 info0; /* WMI_PEER_ASSOC_INFO0_ */
} __packed;

@ -13,7 +13,7 @@ v2: fix trailing whitespace issue and fix some typos within the commit note
2 files changed, 8 insertions(+), 10 deletions(-)
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -4445,13 +4445,6 @@ static struct ieee80211_sta_vht_cap ath1
@@ -4473,13 +4473,6 @@ static struct ieee80211_sta_vht_cap ath1
vht_cap.cap |= val;
}
@ -29,7 +29,7 @@ v2: fix trailing whitespace issue and fix some typos within the commit note
if ((i < ar->num_rf_chains) && (ar->cfg_tx_chainmask & BIT(i)))
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -1672,13 +1672,18 @@ void ath10k_wmi_put_wmi_channel(struct w
@@ -1677,13 +1677,18 @@ void ath10k_wmi_put_wmi_channel(struct w
flags |= WMI_CHAN_FLAG_HT40_PLUS;
if (arg->chan_radar)
flags |= WMI_CHAN_FLAG_DFS;

@ -83,10 +83,8 @@ v13:
12 files changed, 314 insertions(+), 1 deletion(-)
create mode 100644 drivers/net/wireless/ath/ath10k/leds.c
create mode 100644 drivers/net/wireless/ath/ath10k/leds.h
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/Kconfig
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath10k/Kconfig
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/Kconfig
--- a/drivers/net/wireless/ath/ath10k/Kconfig
+++ b/drivers/net/wireless/ath/ath10k/Kconfig
@@ -69,6 +69,16 @@ config ATH10K_DEBUGFS
If unsure, say Y to make it easier to debug problems.
@ -104,10 +102,8 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/Kconfig
config ATH10K_SPECTRAL
bool "Atheros ath10k spectral scan support"
depends on ATH10K_DEBUGFS
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/Makefile
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath10k/Makefile
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/Makefile
--- a/drivers/net/wireless/ath/ath10k/Makefile
+++ b/drivers/net/wireless/ath/ath10k/Makefile
@@ -19,6 +19,7 @@ ath10k_core-$(CPTCFG_ATH10K_SPECTRAL) +=
ath10k_core-$(CPTCFG_NL80211_TESTMODE) += testmode.o
ath10k_core-$(CPTCFG_ATH10K_TRACING) += trace.o
@ -116,11 +112,9 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/Makefile
ath10k_core-$(CPTCFG_MAC80211_DEBUGFS) += debugfs_sta.o
ath10k_core-$(CONFIG_PM) += wow.o
ath10k_core-$(CONFIG_DEV_COREDUMP) += coredump.o
Index: backports-v4.18-rc7/local-symbols
===================================================================
--- backports-v4.18-rc7.orig/local-symbols
+++ backports-v4.18-rc7/local-symbols
@@ -147,6 +147,7 @@ ATH10K_DEBUG=
--- a/local-symbols
+++ b/local-symbols
@@ -143,6 +143,7 @@ ATH10K_DEBUG=
ATH10K_DEBUGFS=
ATH10K_SPECTRAL=
ATH10K_THERMAL=
@ -128,10 +122,8 @@ Index: backports-v4.18-rc7/local-symbols
ATH10K_TRACING=
ATH10K_DFS_CERTIFIED=
WCN36XX=
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/core.c
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath10k/core.c
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/core.c
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -34,6 +34,7 @@
#include "testmode.h"
#include "wmi-ops.h"
@ -140,7 +132,7 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/core.c
unsigned int ath10k_debug_mask;
static unsigned int ath10k_cryptmode_param;
@@ -66,6 +67,7 @@ static const struct ath10k_hw_params ath
@@ -64,6 +65,7 @@ static const struct ath10k_hw_params ath
.id = QCA988X_HW_2_0_VERSION,
.dev_id = QCA988X_2_0_DEVICE_ID,
.name = "qca988x hw2.0",
@ -156,7 +148,7 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/core.c
.patch_load_addr = QCA9887_HW_1_0_PATCH_LOAD_ADDR,
.uart_pin = 7,
.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL,
@@ -288,6 +291,7 @@ static const struct ath10k_hw_params ath
@@ -293,6 +296,7 @@ static const struct ath10k_hw_params ath
.id = QCA99X0_HW_2_0_DEV_VERSION,
.dev_id = QCA99X0_2_0_DEVICE_ID,
.name = "qca99x0 hw2.0",
@ -164,7 +156,7 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/core.c
.patch_load_addr = QCA99X0_HW_2_0_PATCH_LOAD_ADDR,
.uart_pin = 7,
.otp_exe_param = 0x00000700,
@@ -325,6 +329,7 @@ static const struct ath10k_hw_params ath
@@ -331,6 +335,7 @@ static const struct ath10k_hw_params ath
.id = QCA9984_HW_1_0_DEV_VERSION,
.dev_id = QCA9984_1_0_DEVICE_ID,
.name = "qca9984/qca9994 hw1.0",
@ -172,7 +164,7 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/core.c
.patch_load_addr = QCA9984_HW_1_0_PATCH_LOAD_ADDR,
.uart_pin = 7,
.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH,
@@ -367,6 +372,7 @@ static const struct ath10k_hw_params ath
@@ -374,6 +379,7 @@ static const struct ath10k_hw_params ath
.id = QCA9888_HW_2_0_DEV_VERSION,
.dev_id = QCA9888_2_0_DEVICE_ID,
.name = "qca9888 hw2.0",
@ -180,7 +172,7 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/core.c
.patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR,
.uart_pin = 7,
.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH,
@@ -2428,6 +2434,10 @@ int ath10k_core_start(struct ath10k *ar,
@@ -2440,6 +2446,10 @@ int ath10k_core_start(struct ath10k *ar,
if (status)
goto err_hif_stop;
@ -191,7 +183,7 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/core.c
return 0;
err_hif_stop:
@@ -2682,9 +2692,18 @@ static void ath10k_core_register_work(st
@@ -2694,9 +2704,18 @@ static void ath10k_core_register_work(st
goto err_spectral_destroy;
}
@ -210,7 +202,7 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/core.c
err_spectral_destroy:
ath10k_spectral_destroy(ar);
err_debug_destroy:
@@ -2728,6 +2747,8 @@ void ath10k_core_unregister(struct ath10
@@ -2740,6 +2759,8 @@ void ath10k_core_unregister(struct ath10
if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags))
return;
@ -219,10 +211,8 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/core.c
ath10k_thermal_unregister(ar);
/* Stop spectral before unregistering from mac80211 to remove the
* relayfs debugfs file cleanly. Otherwise the parent debugfs tree
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/core.h
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath10k/core.h
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/core.h
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -25,6 +25,7 @@
#include <linux/pci.h>
#include <linux/uuid.h>
@ -231,7 +221,7 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/core.h
#include "htt.h"
#include "htc.h"
@@ -902,7 +903,6 @@ struct ath10k {
@@ -908,7 +909,6 @@ struct ath10k {
u32 low_5ghz_chan;
u32 high_5ghz_chan;
bool ani_enabled;
@ -239,7 +229,7 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/core.h
bool p2p;
struct {
@@ -1093,6 +1093,13 @@ struct ath10k {
@@ -1099,6 +1099,13 @@ struct ath10k {
} testmode;
struct {
@ -253,10 +243,8 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/core.h
/* protected by data_lock */
u32 fw_crash_counter;
u32 fw_warm_reset_counter;
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/hw.h
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath10k/hw.h
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/hw.h
--- a/drivers/net/wireless/ath/ath10k/hw.h
+++ b/drivers/net/wireless/ath/ath10k/hw.h
@@ -504,6 +504,7 @@ struct ath10k_hw_params {
const char *name;
u32 patch_load_addr;
@ -265,10 +253,8 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/hw.h
u32 otp_exe_param;
/* Type of hw cycle counter wraparound logic, for more info
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/leds.c
===================================================================
--- /dev/null
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/leds.c
+++ b/drivers/net/wireless/ath/ath10k/leds.c
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2005-2011 Atheros Communications Inc.
@ -373,10 +359,8 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/leds.c
+ led_classdev_unregister(&ar->leds.cdev);
+}
+
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/leds.h
===================================================================
--- /dev/null
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/leds.h
+++ b/drivers/net/wireless/ath/ath10k/leds.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2018, The Linux Foundation. All rights reserved.
@ -419,10 +403,8 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/leds.h
+
+#endif
+#endif /* _LEDS_H_ */
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/mac.c
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath10k/mac.c
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/mac.c
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -33,6 +33,7 @@
#include "wmi-tlv.h"
#include "wmi-ops.h"
@ -431,11 +413,9 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/mac.c
/*********/
/* Rates */
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi-ops.h
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath10k/wmi-ops.h
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi-ops.h
@@ -214,7 +214,10 @@ struct wmi_ops {
--- a/drivers/net/wireless/ath/ath10k/wmi-ops.h
+++ b/drivers/net/wireless/ath/ath10k/wmi-ops.h
@@ -216,7 +216,10 @@ struct wmi_ops {
struct sk_buff *(*gen_echo)(struct ath10k *ar, u32 value);
struct sk_buff *(*gen_pdev_get_tpc_table_cmdid)(struct ath10k *ar,
u32 param);
@ -446,7 +426,7 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi-ops.h
};
int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id);
@@ -1042,6 +1045,35 @@ ath10k_wmi_force_fw_hang(struct ath10k *
@@ -1054,6 +1057,35 @@ ath10k_wmi_force_fw_hang(struct ath10k *
return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->force_fw_hang_cmdid);
}
@ -482,11 +462,9 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi-ops.h
static inline int
ath10k_wmi_dbglog_cfg(struct ath10k *ar, u64 module_enable, u32 log_level)
{
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi-tlv.c
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath10k/wmi-tlv.c
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi-tlv.c
@@ -3909,6 +3909,8 @@ static const struct wmi_ops wmi_tlv_ops
--- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c
+++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
@@ -3976,6 +3976,8 @@ static const struct wmi_ops wmi_tlv_ops
.gen_echo = ath10k_wmi_tlv_op_gen_echo,
.gen_vdev_spectral_conf = ath10k_wmi_tlv_op_gen_vdev_spectral_conf,
.gen_vdev_spectral_enable = ath10k_wmi_tlv_op_gen_vdev_spectral_enable,
@ -495,11 +473,9 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi-tlv.c
};
static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = {
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi.c
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath10k/wmi.c
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi.c
@@ -7115,6 +7115,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -7166,6 +7166,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
return skb;
}
@ -549,7 +525,7 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi.c
static struct sk_buff *
ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id,
enum wmi_sta_ps_mode psmode)
@@ -8726,6 +8769,9 @@ static const struct wmi_ops wmi_ops = {
@@ -8777,6 +8820,9 @@ static const struct wmi_ops wmi_ops = {
.fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill,
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
.gen_echo = ath10k_wmi_op_gen_echo,
@ -559,7 +535,7 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi.c
/* .gen_bcn_tmpl not implemented */
/* .gen_prb_tmpl not implemented */
/* .gen_p2p_go_bcn_ie not implemented */
@@ -8796,6 +8842,8 @@ static const struct wmi_ops wmi_10_1_ops
@@ -8847,6 +8893,8 @@ static const struct wmi_ops wmi_10_1_ops
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
.gen_echo = ath10k_wmi_op_gen_echo,
@ -568,7 +544,7 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi.c
/* .gen_bcn_tmpl not implemented */
/* .gen_prb_tmpl not implemented */
/* .gen_p2p_go_bcn_ie not implemented */
@@ -8867,6 +8915,8 @@ static const struct wmi_ops wmi_10_2_ops
@@ -8918,6 +8966,8 @@ static const struct wmi_ops wmi_10_2_ops
.gen_delba_send = ath10k_wmi_op_gen_delba_send,
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
@ -577,7 +553,7 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi.c
/* .gen_pdev_enable_adaptive_cca not implemented */
};
@@ -8937,6 +8987,8 @@ static const struct wmi_ops wmi_10_2_4_o
@@ -8988,6 +9038,8 @@ static const struct wmi_ops wmi_10_2_4_o
.gen_pdev_enable_adaptive_cca =
ath10k_wmi_op_gen_pdev_enable_adaptive_cca,
.get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype,
@ -586,7 +562,7 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi.c
/* .gen_bcn_tmpl not implemented */
/* .gen_prb_tmpl not implemented */
/* .gen_p2p_go_bcn_ie not implemented */
@@ -9016,6 +9068,8 @@ static const struct wmi_ops wmi_10_4_ops
@@ -9067,6 +9119,8 @@ static const struct wmi_ops wmi_10_4_ops
.gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info,
.gen_echo = ath10k_wmi_op_gen_echo,
.gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config,
@ -595,11 +571,9 @@ Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi.c
};
int ath10k_wmi_attach(struct ath10k *ar)
Index: backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi.h
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/ath/ath10k/wmi.h
+++ backports-v4.18-rc7/drivers/net/wireless/ath/ath10k/wmi.h
@@ -2941,6 +2941,41 @@ enum wmi_10_4_feature_mask {
--- a/drivers/net/wireless/ath/ath10k/wmi.h
+++ b/drivers/net/wireless/ath/ath10k/wmi.h
@@ -2942,6 +2942,41 @@ enum wmi_10_4_feature_mask {
};

@ -16,7 +16,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -1055,6 +1055,10 @@ struct ath10k {
@@ -1144,6 +1144,10 @@ struct ath10k {
struct ath10k_radar_found_info last_radar_info;
struct work_struct radar_confirmation_work;
@ -42,7 +42,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
if (ret)
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -8429,7 +8429,7 @@ int ath10k_mac_register(struct ath10k *a
@@ -8603,7 +8603,7 @@ int ath10k_mac_register(struct ath10k *a
wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
#ifdef CPTCFG_MAC80211_LEDS

@ -21,7 +21,7 @@ Forwarded: https://patchwork.kernel.org/patch/10549245/
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -17,6 +17,7 @@
@@ -18,6 +18,7 @@
#include "mac.h"
@ -29,7 +29,7 @@ Forwarded: https://patchwork.kernel.org/patch/10549245/
#include <net/mac80211.h>
#include <linux/etherdevice.h>
#include <linux/acpi.h>
@@ -8230,6 +8231,7 @@ int ath10k_mac_register(struct ath10k *a
@@ -8390,6 +8391,7 @@ int ath10k_mac_register(struct ath10k *a
ar->hw->wiphy->bands[NL80211_BAND_5GHZ] = band;
}

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/broadcom/b43/b43.h
+++ b/drivers/net/wireless/broadcom/b43/b43.h
@@ -839,6 +839,7 @@ struct b43_wldev {
@@ -840,6 +840,7 @@ struct b43_wldev {
bool qos_enabled; /* TRUE, if QoS is used. */
bool hwcrypto_enabled; /* TRUE, if HW crypto acceleration is enabled. */
bool use_pio; /* TRUE if next init should use PIO */

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/broadcom/b43/Makefile
+++ b/drivers/net/wireless/broadcom/b43/Makefile
@@ -17,7 +17,7 @@ b43-$(CPTCFG_B43_PHY_AC) += phy_ac.o
@@ -18,7 +18,7 @@ b43-$(CPTCFG_B43_PHY_AC) += phy_ac.o
b43-y += sysfs.o
b43-y += xmit.o
b43-y += dma.o
@ -26,7 +26,7 @@
}
--- a/drivers/net/wireless/broadcom/b43/pio.h
+++ b/drivers/net/wireless/broadcom/b43/pio.h
@@ -150,7 +150,7 @@ static inline void b43_piorx_write32(str
@@ -151,7 +151,7 @@ static inline void b43_piorx_write32(str
b43_write32(q->dev, q->mmio_base + offset, value);
}
@ -35,7 +35,7 @@
int b43_pio_init(struct b43_wldev *dev);
void b43_pio_free(struct b43_wldev *dev);
@@ -161,5 +161,37 @@ void b43_pio_rx(struct b43_pio_rxqueue *
@@ -162,5 +162,37 @@ void b43_pio_rx(struct b43_pio_rxqueue *
void b43_pio_tx_suspend(struct b43_wldev *dev);
void b43_pio_tx_resume(struct b43_wldev *dev);
@ -82,5 +82,5 @@
- bool
+ bool "Broadcom 43xx PIO support"
depends on B43 && B43_SSB
select SSB_BLOCKIO
depends on SSB_BLOCKIO
default y

@ -120,7 +120,7 @@
SET_IEEE80211_DEV(hw, dev->dev);
--- a/drivers/net/wireless/broadcom/b43/b43.h
+++ b/drivers/net/wireless/broadcom/b43/b43.h
@@ -840,6 +840,8 @@ struct b43_wldev {
@@ -841,6 +841,8 @@ struct b43_wldev {
bool hwcrypto_enabled; /* TRUE, if HW crypto acceleration is enabled. */
bool use_pio; /* TRUE if next init should use PIO */
int gpiomask; /* GPIO LED mask as a module parameter */

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/broadcom/b43/dma.h
+++ b/drivers/net/wireless/broadcom/b43/dma.h
@@ -169,7 +169,7 @@ struct b43_dmadesc_generic {
@@ -170,7 +170,7 @@ struct b43_dmadesc_generic {
/* DMA engine tuning knobs */
#define B43_TXRING_SLOTS 256

@ -7,10 +7,8 @@ See: http://projectable.me/optimize-my-pi-wi-fi/
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
---
Index: backports-v4.18-rc7/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
===================================================================
--- backports-v4.18-rc7.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
+++ backports-v4.18-rc7/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
@@ -70,7 +70,11 @@ static int brcmf_fcmode;
module_param_named(fcmode, brcmf_fcmode, int, 0);
MODULE_PARM_DESC(fcmode, "Mode of firmware signalled flow control");

@ -1,13 +1,8 @@
Index: backports-v4.18-rc7/compat/Makefile
===================================================================
--- backports-v4.18-rc7.orig/compat/Makefile
+++ backports-v4.18-rc7/compat/Makefile
@@ -70,8 +70,6 @@ quiet_cmd_build_OID_registry = GEN $
cmd_build_OID_registry = perl $(src)/build_OID_registry $< $@
compat-$(CPTCFG_BPAUTO_ASN1_DECODER) += lib-asn1_decoder.o
compat-$(CPTCFG_BPAUTO_BUILD_SYSTEM_DATA_VERIFICATION) += lib-oid_registry.o
--- a/compat/Makefile
+++ b/compat/Makefile
@@ -79,5 +79,3 @@ obj-$(CPTCFG_BPAUTO_BUILD_CORDIC) += cor
compat-$(CPTCFG_BPAUTO_PUBLIC_KEY) +=
compat-$(CPTCFG_BPAUTO_BUCKET_LOCKS) += lib-bucket_locks.o
compat-$(CPTCFG_BPAUTO_PKCS7) +=
-skcipher-objs += crypto-skcipher.o
-obj-$(CPTCFG_BPAUTO_CRYPTO_SKCIPHER) += skcipher.o
compat-$(CPTCFG_BPAUTO_BUILD_WANT_DEV_COREDUMP) += drivers-base-devcoredump.o
compat-$(CPTCFG_BPAUTO_RHASHTABLE) += lib-rhashtable.o
cordic-objs += lib-cordic.o

@ -1,10 +0,0 @@
--- a/compat/backport-4.12.c
+++ b/compat/backport-4.12.c
@@ -225,6 +225,7 @@ int bp_extack_genl_register_family(struc
/* copy this since the family might access it directly */
family->attrbuf = copy->family.attrbuf;
+ family->mcgrp_offset = copy->family.mcgrp_offset;
mutex_lock(&copies_mutex);
list_add_tail(&copy->list, &copies_list);

@ -1,7 +1,7 @@
--- a/net/wireless/Kconfig
+++ b/net/wireless/Kconfig
@@ -181,7 +181,7 @@ config CFG80211_WEXT_EXPORT
wext compatibility symbols to be exported.
@@ -185,7 +185,7 @@ config CFG80211_WEXT_EXPORT
endif # CFG80211
config LIB80211
- tristate
@ -9,7 +9,7 @@
depends on m
default n
help
@@ -191,15 +191,15 @@ config LIB80211
@@ -195,15 +195,15 @@ config LIB80211
Drivers should select this themselves if needed.
config LIB80211_CRYPT_WEP

@ -1,132 +0,0 @@
--- a/local-symbols
+++ b/local-symbols
@@ -388,45 +388,6 @@ USB_IPHETH=
USB_SIERRA_NET=
USB_VL600=
USB_NET_CH9200=
-SSB_POSSIBLE=
-SSB=
-SSB_SPROM=
-SSB_BLOCKIO=
-SSB_PCIHOST_POSSIBLE=
-SSB_PCIHOST=
-SSB_B43_PCI_BRIDGE=
-SSB_PCMCIAHOST_POSSIBLE=
-SSB_PCMCIAHOST=
-SSB_SDIOHOST_POSSIBLE=
-SSB_SDIOHOST=
-SSB_HOST_SOC=
-SSB_SILENT=
-SSB_DEBUG=
-SSB_SERIAL=
-SSB_DRIVER_PCICORE_POSSIBLE=
-SSB_DRIVER_PCICORE=
-SSB_PCICORE_HOSTMODE=
-SSB_DRIVER_MIPS=
-SSB_SFLASH=
-SSB_EMBEDDED=
-SSB_DRIVER_EXTIF=
-SSB_DRIVER_GIGE=
-SSB_DRIVER_GPIO=
-BCMA_POSSIBLE=
-BCMA=
-BCMA_BLOCKIO=
-BCMA_HOST_PCI_POSSIBLE=
-BCMA_HOST_PCI=
-BCMA_HOST_SOC=
-BCMA_DRIVER_PCI=
-BCMA_DRIVER_PCI_HOSTMODE=
-BCMA_DRIVER_MIPS=
-BCMA_PFLASH=
-BCMA_SFLASH=
-BCMA_NFLASH=
-BCMA_DRIVER_GMAC_CMN=
-BCMA_DRIVER_GPIO=
-BCMA_DEBUG=
NFC=
NFC_DIGITAL=
NFC_NCI=
--- a/drivers/net/wireless/broadcom/b43/main.c
+++ b/drivers/net/wireless/broadcom/b43/main.c
@@ -2876,7 +2876,7 @@ static struct ssb_device *b43_ssb_gpio_d
{
struct ssb_bus *bus = dev->dev->sdev->bus;
-#ifdef CPTCFG_SSB_DRIVER_PCICORE
+#ifdef CONFIG_SSB_DRIVER_PCICORE
return (bus->chipco.dev ? bus->chipco.dev : bus->pcicore.dev);
#else
return bus->chipco.dev;
@@ -4893,7 +4893,7 @@ static int b43_wireless_core_init(struct
}
if (sprom->boardflags_lo & B43_BFL_XTAL_NOSLOW)
hf |= B43_HF_DSCRQ; /* Disable slowclock requests from ucode. */
-#if defined(CPTCFG_B43_SSB) && defined(CPTCFG_SSB_DRIVER_PCICORE)
+#if defined(CPTCFG_B43_SSB) && defined(CONFIG_SSB_DRIVER_PCICORE)
if (dev->dev->bus_type == B43_BUS_SSB &&
dev->dev->sdev->bus->bustype == SSB_BUSTYPE_PCI &&
dev->dev->sdev->bus->pcicore.dev->id.revision <= 10)
--- a/drivers/net/wireless/broadcom/b43legacy/main.c
+++ b/drivers/net/wireless/broadcom/b43legacy/main.c
@@ -1937,7 +1937,7 @@ static int b43legacy_gpio_init(struct b4
if (dev->dev->id.revision >= 2)
mask |= 0x0010; /* FIXME: This is redundant. */
-#ifdef CPTCFG_SSB_DRIVER_PCICORE
+#ifdef CONFIG_SSB_DRIVER_PCICORE
pcidev = bus->pcicore.dev;
#endif
gpiodev = bus->chipco.dev ? : pcidev;
@@ -1956,7 +1956,7 @@ static void b43legacy_gpio_cleanup(struc
struct ssb_bus *bus = dev->dev->bus;
struct ssb_device *gpiodev, *pcidev = NULL;
-#ifdef CPTCFG_SSB_DRIVER_PCICORE
+#ifdef CONFIG_SSB_DRIVER_PCICORE
pcidev = bus->pcicore.dev;
#endif
gpiodev = bus->chipco.dev ? : pcidev;
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/Makefile
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/Makefile
@@ -42,6 +42,6 @@ brcmsmac-y := \
brcms_trace_events.o \
debug.o
-brcmsmac-$(CPTCFG_BCMA_DRIVER_GPIO) += led.o
+brcmsmac-$(CONFIG_BCMA_DRIVER_GPIO) += led.o
obj-$(CPTCFG_BRCMSMAC) += brcmsmac.o
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.h
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.h
@@ -22,7 +22,7 @@ struct brcms_led {
bool active_low;
};
-#ifdef CPTCFG_BCMA_DRIVER_GPIO
+#ifdef CONFIG_BCMA_DRIVER_GPIO
void brcms_led_unregister(struct brcms_info *wl);
int brcms_led_register(struct brcms_info *wl);
#else
--- a/Kconfig.sources
+++ b/Kconfig.sources
@@ -9,9 +9,6 @@ source "$BACKPORT_DIR/drivers/net/wirele
#source "$BACKPORT_DIR/drivers/net/ethernet/Kconfig"
source "$BACKPORT_DIR/drivers/net/usb/Kconfig"
-source "$BACKPORT_DIR/drivers/ssb/Kconfig"
-source "$BACKPORT_DIR/drivers/bcma/Kconfig"
-
source "$BACKPORT_DIR/net/nfc/Kconfig"
#source "$BACKPORT_DIR/drivers/media/Kconfig"
--- a/Makefile.kernel
+++ b/Makefile.kernel
@@ -42,8 +42,6 @@ obj-$(CPTCFG_MAC80211) += net/mac80211/
obj-$(CPTCFG_WLAN) += drivers/net/wireless/
#obj-$(CPTCFG_BT) += net/bluetooth/
#obj-$(CPTCFG_BT) += drivers/bluetooth/
-obj-$(CPTCFG_SSB) += drivers/ssb/
-obj-$(CPTCFG_BCMA) += drivers/bcma/
#obj-$(CPTCFG_ETHERNET) += drivers/net/ethernet/
obj-$(CPTCFG_USB_NET_RNDIS_WLAN) += drivers/net/usb/
obj-$(CPTCFG_NFC) += net/nfc/

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/marvell/mwl8k.c
+++ b/drivers/net/wireless/marvell/mwl8k.c
@@ -5681,6 +5681,7 @@ MODULE_FIRMWARE("mwl8k/fmimage_8366.fw")
@@ -5686,6 +5686,7 @@ MODULE_FIRMWARE("mwl8k/fmimage_8366.fw")
MODULE_FIRMWARE(MWL8K_8366_AP_FW(MWL8K_8366_AP_FW_API));
static const struct pci_device_id mwl8k_pci_id_table[] = {

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/marvell/libertas/cfg.c
+++ b/drivers/net/wireless/marvell/libertas/cfg.c
@@ -2040,6 +2040,8 @@ struct wireless_dev *lbs_cfg_alloc(struc
@@ -2041,6 +2041,8 @@ struct wireless_dev *lbs_cfg_alloc(struc
goto err_wiphy_new;
}

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/marvell/libertas/cfg.c
+++ b/drivers/net/wireless/marvell/libertas/cfg.c
@@ -2116,6 +2116,8 @@ int lbs_cfg_register(struct lbs_private
@@ -2117,6 +2117,8 @@ int lbs_cfg_register(struct lbs_private
wdev->wiphy->n_cipher_suites = ARRAY_SIZE(cipher_suites);
wdev->wiphy->reg_notifier = lbs_reg_notifier;

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/marvell/mwl8k.c
+++ b/drivers/net/wireless/marvell/mwl8k.c
@@ -6266,6 +6266,8 @@ static int mwl8k_probe(struct pci_dev *p
@@ -6271,6 +6271,8 @@ static int mwl8k_probe(struct pci_dev *p
priv->running_bsses = 0;
@ -9,7 +9,7 @@
return rc;
err_stop_firmware:
@@ -6299,8 +6301,6 @@ static void mwl8k_remove(struct pci_dev
@@ -6304,8 +6306,6 @@ static void mwl8k_remove(struct pci_dev
return;
priv = hw->priv;

@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -9403,6 +9403,7 @@ static int rt2800_probe_rt(struct rt2x00
@@ -9409,6 +9409,7 @@ static int rt2800_probe_rt(struct rt2x00
case RT3390:
case RT3572:
case RT3593:

@ -31,7 +31,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
#define RF5362 0x5362
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -8981,6 +8981,66 @@ static const struct rf_channel rf_vals_3
@@ -8987,6 +8987,66 @@ static const struct rf_channel rf_vals_3
{14, 0xF0, 2, 0x18},
};
@ -98,7 +98,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
static const struct rf_channel rf_vals_5592_xtal20[] = {
/* Channel, N, K, mod, R */
{1, 482, 4, 10, 3},
@@ -9244,6 +9304,11 @@ static int rt2800_probe_hw_mode(struct r
@@ -9250,6 +9310,11 @@ static int rt2800_probe_hw_mode(struct r
spec->channels = rf_vals_3x;
break;

@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -4881,6 +4881,7 @@ void rt2800_vco_calibration(struct rt2x0
@@ -4884,6 +4884,7 @@ void rt2800_vco_calibration(struct rt2x0
case RF3053:
case RF3070:
case RF3290:
@ -18,7 +18,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
case RF5350:
case RF5360:
case RF5362:
@@ -9426,6 +9427,7 @@ static int rt2800_probe_hw_mode(struct r
@@ -9432,6 +9433,7 @@ static int rt2800_probe_hw_mode(struct r
case RF3053:
case RF3070:
case RF3290:

@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -2713,6 +2713,211 @@ static void rt2800_config_channel_rf3053
@@ -2716,6 +2716,211 @@ static void rt2800_config_channel_rf3053
}
}
@ -223,7 +223,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
#define POWER_BOUND 0x27
#define POWER_BOUND_5G 0x2b
@@ -3570,6 +3775,9 @@ static void rt2800_config_channel(struct
@@ -3573,6 +3778,9 @@ static void rt2800_config_channel(struct
case RF3322:
rt2800_config_channel_rf3322(rt2x00dev, conf, rf, info);
break;

@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -8906,6 +8906,7 @@ static int rt2800_init_eeprom(struct rt2
@@ -8910,6 +8910,7 @@ static int rt2800_init_eeprom(struct rt2
case RF3290:
case RF3320:
case RF3322:

@ -12,7 +12,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h
@@ -1727,6 +1727,20 @@
@@ -1728,6 +1728,20 @@
#define TX_PWR_CFG_9B_STBC_MCS7 FIELD32(0x000000ff)
/*
@ -35,7 +35,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
#define RX_FILTER_CFG 0x1400
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -5509,6 +5509,12 @@ static int rt2800_init_registers(struct
@@ -5512,6 +5512,12 @@ static int rt2800_init_registers(struct
rt2800_register_write(rt2x00dev, TX_SW_CFG2,
0x00000000);
}
@ -48,7 +48,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
} else if (rt2x00_rt(rt2x00dev, RT5390) ||
rt2x00_rt(rt2x00dev, RT5392) ||
rt2x00_rt(rt2x00dev, RT6352)) {
@@ -5722,6 +5728,11 @@ static int rt2800_init_registers(struct
@@ -5725,6 +5731,11 @@ static int rt2800_init_registers(struct
reg = rt2x00_rt(rt2x00dev, RT5592) ? 0x00000082 : 0x00000002;
rt2800_register_write(rt2x00dev, TXOP_HLDR_ET, reg);

@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -6349,6 +6349,47 @@ static void rt2800_init_bbp_3593(struct
@@ -6352,6 +6352,47 @@ static void rt2800_init_bbp_3593(struct
rt2800_bbp_write(rt2x00dev, 103, 0xc0);
}
@ -59,7 +59,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
static void rt2800_init_bbp_53xx(struct rt2x00_dev *rt2x00dev)
{
int ant, div_mode;
@@ -6792,6 +6833,9 @@ static void rt2800_init_bbp(struct rt2x0
@@ -6796,6 +6837,9 @@ static void rt2800_init_bbp(struct rt2x0
case RT3593:
rt2800_init_bbp_3593(rt2x00dev);
return;

@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h
@@ -2311,6 +2311,7 @@ struct mac_iveiv_entry {
@@ -2312,6 +2312,7 @@ struct mac_iveiv_entry {
/*
* RFCSR 2:
*/
@ -21,7 +21,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
#define RFCSR2_TX2_EN_MT7620 FIELD8(0x20)
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -7707,6 +7707,144 @@ static void rt2800_init_rfcsr_5350(struc
@@ -7711,6 +7711,144 @@ static void rt2800_init_rfcsr_5350(struc
rt2800_rfcsr_write(rt2x00dev, 63, 0x00);
}
@ -166,7 +166,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
static void rt2800_init_rfcsr_5390(struct rt2x00_dev *rt2x00dev)
{
rt2800_rf_init_calibration(rt2x00dev, 2);
@@ -8549,6 +8687,9 @@ static void rt2800_init_rfcsr(struct rt2
@@ -8553,6 +8691,9 @@ static void rt2800_init_rfcsr(struct rt2
case RT3390:
rt2800_init_rfcsr_3390(rt2x00dev);
break;

@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -9083,6 +9083,8 @@ static int rt2800_init_eeprom(struct rt2
@@ -9087,6 +9087,8 @@ static int rt2800_init_eeprom(struct rt2
rf = rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID);
else if (rt2x00_rt(rt2x00dev, RT3352))
rf = RF3322;

@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -3738,6 +3738,36 @@ static char rt2800_txpower_to_dev(struct
@@ -3741,6 +3741,36 @@ static char rt2800_txpower_to_dev(struct
return clamp_t(char, txpower, MIN_A_TXPOWER, MAX_A_TXPOWER);
}
@ -47,7 +47,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
struct ieee80211_conf *conf,
struct rf_channel *rf,
@@ -3756,6 +3786,12 @@ static void rt2800_config_channel(struct
@@ -3759,6 +3789,12 @@ static void rt2800_config_channel(struct
rt2800_txpower_to_dev(rt2x00dev, rf->channel,
info->default_power3);
@ -60,7 +60,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
switch (rt2x00dev->chip.rf) {
case RF2020:
case RF3020:
@@ -3860,6 +3896,15 @@ static void rt2800_config_channel(struct
@@ -3863,6 +3899,15 @@ static void rt2800_config_channel(struct
rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain);
rt2800_bbp_write(rt2x00dev, 64, 0x37 - rt2x00dev->lna_gain);
rt2800_bbp_write(rt2x00dev, 77, 0x98);
@ -76,7 +76,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
} else {
rt2800_bbp_write(rt2x00dev, 62, 0x37 - rt2x00dev->lna_gain);
rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain);
@@ -3873,6 +3918,7 @@ static void rt2800_config_channel(struct
@@ -3876,6 +3921,7 @@ static void rt2800_config_channel(struct
!rt2x00_rt(rt2x00dev, RT6352)) {
if (rt2x00_has_cap_external_lna_bg(rt2x00dev)) {
rt2800_bbp_write(rt2x00dev, 82, 0x62);
@ -84,7 +84,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
rt2800_bbp_write(rt2x00dev, 75, 0x46);
} else {
if (rt2x00_rt(rt2x00dev, RT3593))
@@ -3881,19 +3927,22 @@ static void rt2800_config_channel(struct
@@ -3884,19 +3930,22 @@ static void rt2800_config_channel(struct
rt2800_bbp_write(rt2x00dev, 82, 0x84);
rt2800_bbp_write(rt2x00dev, 75, 0x50);
}
@ -110,7 +110,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
rt2800_bbp_write(rt2x00dev, 83, 0x9a);
if (rt2x00_has_cap_external_lna_a(rt2x00dev))
@@ -4019,6 +4068,23 @@ static void rt2800_config_channel(struct
@@ -4022,6 +4071,23 @@ static void rt2800_config_channel(struct
rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, reg);

@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -3725,13 +3725,15 @@ static char rt2800_txpower_to_dev(struct
@@ -3728,13 +3728,15 @@ static char rt2800_txpower_to_dev(struct
unsigned int channel,
char txpower)
{

@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -5111,7 +5111,8 @@ static void rt2800_config_txpower(struct
@@ -5114,7 +5114,8 @@ static void rt2800_config_txpower(struct
struct ieee80211_channel *chan,
int power_level)
{

@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -8965,7 +8965,8 @@ static u8 rt2800_get_txmixer_gain_24g(st
@@ -8969,7 +8969,8 @@ static u8 rt2800_get_txmixer_gain_24g(st
{
u16 word;
@ -21,7 +21,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
return 0;
word = rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_BG);
@@ -8979,7 +8980,8 @@ static u8 rt2800_get_txmixer_gain_5g(str
@@ -8983,7 +8984,8 @@ static u8 rt2800_get_txmixer_gain_5g(str
{
u16 word;

@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -2017,7 +2017,8 @@ void rt2800_config_ant(struct rt2x00_dev
@@ -2020,7 +2020,8 @@ void rt2800_config_ant(struct rt2x00_dev
rt2800_bbp_write(rt2x00dev, 3, r3);
rt2800_bbp_write(rt2x00dev, 1, r1);

@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -2040,7 +2040,8 @@ static void rt2800_config_lna_gain(struc
@@ -2043,7 +2043,8 @@ static void rt2800_config_lna_gain(struc
eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_LNA);
lna_gain = rt2x00_get_field16(eeprom, EEPROM_LNA_A0);
} else if (libconf->rf.channel <= 128) {
@ -20,7 +20,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2);
lna_gain = rt2x00_get_field16(eeprom,
EEPROM_EXT_LNA2_A1);
@@ -2050,7 +2051,8 @@ static void rt2800_config_lna_gain(struc
@@ -2053,7 +2054,8 @@ static void rt2800_config_lna_gain(struc
EEPROM_RSSI_BG2_LNA_A1);
}
} else {

@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -5364,7 +5364,8 @@ static u8 rt2800_get_default_vgc(struct
@@ -5367,7 +5367,8 @@ static u8 rt2800_get_default_vgc(struct
else
vgc = 0x2e + rt2x00dev->lna_gain;
} else { /* 5GHZ band */
@ -20,7 +20,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
vgc = 0x20 + (rt2x00dev->lna_gain * 5) / 3;
else if (rt2x00_rt(rt2x00dev, RT5592))
vgc = 0x24 + (2 * rt2x00dev->lna_gain);
@@ -5384,7 +5385,8 @@ static inline void rt2800_set_vgc(struct
@@ -5387,7 +5388,8 @@ static inline void rt2800_set_vgc(struct
{
if (qual->vgc_level != vgc_level) {
if (rt2x00_rt(rt2x00dev, RT3572) ||
@ -30,7 +30,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
rt2800_bbp_write_with_rx_chain(rt2x00dev, 66,
vgc_level);
} else if (rt2x00_rt(rt2x00dev, RT5592)) {
@@ -5431,6 +5433,11 @@ void rt2800_link_tuner(struct rt2x00_dev
@@ -5434,6 +5436,11 @@ void rt2800_link_tuner(struct rt2x00_dev
}
break;

@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -9098,7 +9098,8 @@ static int rt2800_validate_eeprom(struct
@@ -9102,7 +9102,8 @@ static int rt2800_validate_eeprom(struct
word = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG2);
if (abs(rt2x00_get_field16(word, EEPROM_RSSI_BG2_OFFSET2)) > 10)
rt2x00_set_field16(&word, EEPROM_RSSI_BG2_OFFSET2, 0);
@ -20,7 +20,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
if (rt2x00_get_field16(word, EEPROM_RSSI_BG2_LNA_A1) == 0x00 ||
rt2x00_get_field16(word, EEPROM_RSSI_BG2_LNA_A1) == 0xff)
rt2x00_set_field16(&word, EEPROM_RSSI_BG2_LNA_A1,
@@ -9118,7 +9119,8 @@ static int rt2800_validate_eeprom(struct
@@ -9122,7 +9123,8 @@ static int rt2800_validate_eeprom(struct
word = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_A2);
if (abs(rt2x00_get_field16(word, EEPROM_RSSI_A2_OFFSET2)) > 10)
rt2x00_set_field16(&word, EEPROM_RSSI_A2_OFFSET2, 0);
@ -30,7 +30,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
if (rt2x00_get_field16(word, EEPROM_RSSI_A2_LNA_A2) == 0x00 ||
rt2x00_get_field16(word, EEPROM_RSSI_A2_LNA_A2) == 0xff)
rt2x00_set_field16(&word, EEPROM_RSSI_A2_LNA_A2,
@@ -9126,7 +9128,8 @@ static int rt2800_validate_eeprom(struct
@@ -9130,7 +9132,8 @@ static int rt2800_validate_eeprom(struct
}
rt2800_eeprom_write(rt2x00dev, EEPROM_RSSI_A2, word);

@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -4354,6 +4354,9 @@ static u8 rt2800_compensate_txpower(stru
@@ -4357,6 +4357,9 @@ static u8 rt2800_compensate_txpower(stru
if (rt2x00_rt(rt2x00dev, RT3593))
return min_t(u8, txpower, 0xc);

@ -1,6 +1,6 @@
--- a/local-symbols
+++ b/local-symbols
@@ -299,6 +299,7 @@ RT2X00_LIB_FIRMWARE=
@@ -305,6 +305,7 @@ RT2X00_LIB_FIRMWARE=
RT2X00_LIB_CRYPTO=
RT2X00_LIB_LEDS=
RT2X00_LIB_DEBUGFS=
@ -38,7 +38,7 @@
default y if (RT2X00_LIB=y && LEDS_CLASS=y) || (RT2X00_LIB=m && LEDS_CLASS!=n)
--- a/drivers/net/wireless/ralink/rt2x00/Makefile
+++ b/drivers/net/wireless/ralink/rt2x00/Makefile
@@ -7,6 +7,7 @@ rt2x00lib-$(CPTCFG_RT2X00_LIB_DEBUGFS) +
@@ -8,6 +8,7 @@ rt2x00lib-$(CPTCFG_RT2X00_LIB_DEBUGFS) +
rt2x00lib-$(CPTCFG_RT2X00_LIB_CRYPTO) += rt2x00crypto.o
rt2x00lib-$(CPTCFG_RT2X00_LIB_FIRMWARE) += rt2x00firmware.o
rt2x00lib-$(CPTCFG_RT2X00_LIB_LEDS) += rt2x00leds.o

@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
@@ -234,10 +234,17 @@ static int rt2800soc_probe(struct platfo
@@ -232,10 +232,17 @@ static int rt2800soc_probe(struct platfo
return rt2x00soc_probe(pdev, &rt2800soc_ops);
}

@ -8,7 +8,7 @@
#include "rt2x00.h"
#include "rt2800lib.h"
@@ -9285,6 +9286,17 @@ static int rt2800_init_eeprom(struct rt2
@@ -9291,6 +9292,17 @@ static int rt2800_init_eeprom(struct rt2
rt2800_init_led(rt2x00dev, &rt2x00dev->led_assoc, LED_TYPE_ASSOC);
rt2800_init_led(rt2x00dev, &rt2x00dev->led_qual, LED_TYPE_QUALITY);

@ -15,7 +15,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h
@@ -2749,6 +2749,7 @@ enum rt2800_eeprom_word {
@@ -2750,6 +2750,7 @@ enum rt2800_eeprom_word {
#define EEPROM_NIC_CONF2_RX_STREAM FIELD16(0x000f)
#define EEPROM_NIC_CONF2_TX_STREAM FIELD16(0x00f0)
#define EEPROM_NIC_CONF2_CRYSTAL FIELD16(0x0600)
@ -25,7 +25,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* EEPROM LNA
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -4120,6 +4120,61 @@ static void rt2800_config_channel(struct
@@ -4123,6 +4123,61 @@ static void rt2800_config_channel(struct
rt2800_iq_calibrate(rt2x00dev, rf->channel);
}
@ -87,7 +87,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
bbp = rt2800_bbp_read(rt2x00dev, 4);
rt2x00_set_field8(&bbp, BBP4_BANDWIDTH, 2 * conf_is_ht40(conf));
rt2800_bbp_write(rt2x00dev, 4, bbp);
@@ -9314,7 +9369,8 @@ static int rt2800_init_eeprom(struct rt2
@@ -9320,7 +9375,8 @@ static int rt2800_init_eeprom(struct rt2
*/
eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1);
@ -97,7 +97,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
if (rt2x00_get_field16(eeprom,
EEPROM_NIC_CONF1_EXTERNAL_TX0_PA_3352))
__set_bit(CAPABILITY_EXTERNAL_PA_TX0,
@@ -9325,6 +9381,18 @@ static int rt2800_init_eeprom(struct rt2
@@ -9331,6 +9387,18 @@ static int rt2800_init_eeprom(struct rt2
&rt2x00dev->cap_flags);
}

@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -4133,38 +4133,22 @@ static void rt2800_config_channel(struct
@@ -4136,38 +4136,22 @@ static void rt2800_config_channel(struct
reg |= 0x00000101;
rt2800_register_write(rt2x00dev, RF_BYPASS3, reg);

@ -14,11 +14,9 @@ Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
.../net/wireless/ralink/rt2x00/rt2800usb.c | 143 +-----------------
3 files changed, 145 insertions(+), 139 deletions(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index a567bc273ffc..9f2835729016 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -957,6 +957,47 @@ static void rt2800_rate_from_status(struct skb_frame_desc *skbdesc,
@@ -960,6 +960,47 @@ static void rt2800_rate_from_status(stru
skbdesc->tx_rate_flags = flags;
}
@ -66,7 +64,7 @@ index a567bc273ffc..9f2835729016 100644
void rt2800_txdone_entry(struct queue_entry *entry, u32 status, __le32 *txwi,
bool match)
{
@@ -1059,6 +1100,103 @@ void rt2800_txdone_entry(struct queue_entry *entry, u32 status, __le32 *txwi,
@@ -1062,6 +1103,103 @@ void rt2800_txdone_entry(struct queue_en
}
EXPORT_SYMBOL_GPL(rt2800_txdone_entry);
@ -170,11 +168,9 @@ index a567bc273ffc..9f2835729016 100644
static unsigned int rt2800_hw_beacon_base(struct rt2x00_dev *rt2x00dev,
unsigned int index)
{
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
index 51d9c2a932cc..0dff2c7b3010 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
@@ -195,6 +195,9 @@ void rt2800_process_rxwi(struct queue_entry *entry, struct rxdone_entry_desc *tx
@@ -206,6 +206,9 @@ void rt2800_process_rxwi(struct queue_en
void rt2800_txdone_entry(struct queue_entry *entry, u32 status, __le32 *txwi,
bool match);
@ -184,11 +180,9 @@ index 51d9c2a932cc..0dff2c7b3010 100644
void rt2800_write_beacon(struct queue_entry *entry, struct txentry_desc *txdesc);
void rt2800_clear_beacon(struct queue_entry *entry);
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800usb.c b/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
index 98a7313fea4a..19eabf16147b 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
@@ -116,35 +116,6 @@ static bool rt2800usb_txstatus_pending(struct rt2x00_dev *rt2x00dev)
@@ -116,35 +116,6 @@ static bool rt2800usb_txstatus_pending(s
return false;
}
@ -224,7 +218,7 @@ index 98a7313fea4a..19eabf16147b 100644
#define TXSTATUS_READ_INTERVAL 1000000
static bool rt2800usb_tx_sta_fifo_read_completed(struct rt2x00_dev *rt2x00dev,
@@ -171,7 +142,7 @@ static bool rt2800usb_tx_sta_fifo_read_completed(struct rt2x00_dev *rt2x00dev,
@@ -171,7 +142,7 @@ static bool rt2800usb_tx_sta_fifo_read_c
}
/* Check if there is any entry that timedout waiting on TX status */
@ -233,7 +227,7 @@ index 98a7313fea4a..19eabf16147b 100644
queue_work(rt2x00dev->workqueue, &rt2x00dev->txdone_work);
if (rt2800usb_txstatus_pending(rt2x00dev)) {
@@ -501,123 +472,17 @@ static int rt2800usb_get_tx_data_len(struct queue_entry *entry)
@@ -501,123 +472,17 @@ static int rt2800usb_get_tx_data_len(str
/*
* TX control handlers
*/
@ -360,6 +354,3 @@ index 98a7313fea4a..19eabf16147b 100644
/*
* The hw may delay sending the packet after DMA complete
--
2.18.0

@ -19,11 +19,9 @@ Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
.../net/wireless/ralink/rt2x00/rt2x00queue.c | 1 +
2 files changed, 9 insertions(+), 172 deletions(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
index e1a7ed7e4892..aa8449a5e8fe 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
@@ -175,161 +175,6 @@ static void rt2800mmio_wakeup(struct rt2x00_dev *rt2x00dev)
@@ -175,161 +175,6 @@ static void rt2800mmio_wakeup(struct rt2
rt2800_config(rt2x00dev, &libconf, IEEE80211_CONF_CHANGE_PS);
}
@ -185,7 +183,7 @@ index e1a7ed7e4892..aa8449a5e8fe 100644
static inline void rt2800mmio_enable_interrupt(struct rt2x00_dev *rt2x00dev,
struct rt2x00_field32 irq_field)
{
@@ -349,14 +194,14 @@ static inline void rt2800mmio_enable_interrupt(struct rt2x00_dev *rt2x00dev,
@@ -349,14 +194,14 @@ static inline void rt2800mmio_enable_int
void rt2800mmio_txstatus_tasklet(unsigned long data)
{
struct rt2x00_dev *rt2x00dev = (struct rt2x00_dev *)data;
@ -207,7 +205,7 @@ index e1a7ed7e4892..aa8449a5e8fe 100644
}
EXPORT_SYMBOL_GPL(rt2800mmio_txstatus_tasklet);
@@ -440,10 +285,6 @@ static void rt2800mmio_txstatus_interrupt(struct rt2x00_dev *rt2x00dev)
@@ -440,10 +285,6 @@ static void rt2800mmio_txstatus_interrup
* because we can schedule the tasklet multiple times (when the
* interrupt fires again during tx status processing).
*
@ -218,7 +216,7 @@ index e1a7ed7e4892..aa8449a5e8fe 100644
* Since we have only one producer and one consumer we don't
* need to lock the kfifo.
*/
@@ -485,13 +326,8 @@ irqreturn_t rt2800mmio_interrupt(int irq, void *dev_instance)
@@ -485,13 +326,8 @@ irqreturn_t rt2800mmio_interrupt(int irq
*/
mask = ~reg;
@ -233,11 +231,9 @@ index e1a7ed7e4892..aa8449a5e8fe 100644
if (rt2x00_get_field32(reg, INT_SOURCE_CSR_PRE_TBTT))
tasklet_hi_schedule(&rt2x00dev->pretbtt_tasklet);
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
index 710e9641552e..6e8beb7ea350 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
@@ -113,6 +113,7 @@ int rt2x00queue_map_txskb(struct queue_entry *entry)
@@ -113,6 +113,7 @@ int rt2x00queue_map_txskb(struct queue_e
return -ENOMEM;
skbdesc->flags |= SKBDESC_DMA_MAPPED_TX;
@ -245,6 +241,3 @@ index 710e9641552e..6e8beb7ea350 100644
return 0;
}
EXPORT_SYMBOL_GPL(rt2x00queue_map_txskb);
--
2.18.0

@ -15,11 +15,9 @@ Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 1 +
4 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 9f2835729016..0c56c7dca55f 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -1158,11 +1158,18 @@ bool rt2800_txstatus_timeout(struct rt2x00_dev *rt2x00dev)
@@ -1161,11 +1161,18 @@ bool rt2800_txstatus_timeout(struct rt2x
struct data_queue *queue;
struct queue_entry *entry;
@ -38,11 +36,9 @@ index 9f2835729016..0c56c7dca55f 100644
return false;
}
EXPORT_SYMBOL_GPL(rt2800_txstatus_timeout);
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
index aa8449a5e8fe..d0426314c2df 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
@@ -197,7 +197,8 @@ void rt2800mmio_txstatus_tasklet(unsigned long data)
@@ -197,7 +197,8 @@ void rt2800mmio_txstatus_tasklet(unsigne
rt2800_txdone(rt2x00dev);
@ -52,11 +48,9 @@ index aa8449a5e8fe..d0426314c2df 100644
if (test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
rt2800mmio_enable_interrupt(rt2x00dev,
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00.h b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
index a279a4363bc1..af062cda4a23 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
@@ -980,6 +980,8 @@ struct rt2x00_dev {
@@ -988,6 +988,8 @@ struct rt2x00_dev {
*/
DECLARE_KFIFO_PTR(txstatus_fifo, u32);
@ -65,11 +59,9 @@ index a279a4363bc1..af062cda4a23 100644
/*
* Timer to ensure tx status reports are read (rt2800usb).
*/
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
index 6e8beb7ea350..92ddc19e7bf7 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
@@ -1039,6 +1039,7 @@ void rt2x00queue_start_queues(struct rt2x00_dev *rt2x00dev)
@@ -1039,6 +1039,7 @@ void rt2x00queue_start_queues(struct rt2
*/
tx_queue_for_each(rt2x00dev, queue)
rt2x00queue_start_queue(queue);
@ -77,6 +69,3 @@ index 6e8beb7ea350..92ddc19e7bf7 100644
rt2x00queue_start_queue(rt2x00dev->rx);
}
--
2.18.0

@ -16,11 +16,9 @@ Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
.../net/wireless/ralink/rt2x00/rt2x00mac.c | 4 +++
3 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 0c56c7dca55f..595cb9c90b81 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -1137,36 +1137,47 @@ void rt2800_txdone(struct rt2x00_dev *rt2x00dev)
@@ -1140,36 +1140,47 @@ void rt2800_txdone(struct rt2x00_dev *rt
}
EXPORT_SYMBOL_GPL(rt2800_txdone);
@ -77,7 +75,7 @@ index 0c56c7dca55f..595cb9c90b81 100644
return true;
}
@@ -1195,7 +1206,7 @@ void rt2800_txdone_nostatus(struct rt2x00_dev *rt2x00dev)
@@ -1198,7 +1209,7 @@ void rt2800_txdone_nostatus(struct rt2x0
break;
if (test_bit(ENTRY_DATA_IO_FAILED, &entry->flags) ||
@ -86,11 +84,9 @@ index 0c56c7dca55f..595cb9c90b81 100644
rt2x00lib_txdone_noinfo(entry, TXDONE_FAILURE);
else
break;
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00.h b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
index af062cda4a23..4b1744e9fb78 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
@@ -665,6 +665,7 @@ enum rt2x00_state_flags {
@@ -667,6 +667,7 @@ enum rt2x00_state_flags {
DEVICE_STATE_STARTED,
DEVICE_STATE_ENABLED_RADIO,
DEVICE_STATE_SCANNING,
@ -98,11 +94,9 @@ index af062cda4a23..4b1744e9fb78 100644
/*
* Driver configuration
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c b/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c
index fa2fd64084ac..2825560e2424 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c
@@ -720,8 +720,12 @@ void rt2x00mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
@@ -720,8 +720,12 @@ void rt2x00mac_flush(struct ieee80211_hw
if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
return;
@ -115,6 +109,3 @@ index fa2fd64084ac..2825560e2424 100644
}
EXPORT_SYMBOL_GPL(rt2x00mac_flush);
--
2.18.0

@ -14,11 +14,9 @@ Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
.../net/wireless/ralink/rt2x00/rt2800pci.c | 2 +-
4 files changed, 99 insertions(+), 38 deletions(-)
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 595cb9c90b81..9e7b8933d30c 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -1147,7 +1147,7 @@ static inline bool rt2800_entry_txstatus_timeout(struct rt2x00_dev *rt2x00dev,
@@ -1150,7 +1150,7 @@ static inline bool rt2800_entry_txstatus
return false;
if (test_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags))
@ -27,7 +25,7 @@ index 595cb9c90b81..9e7b8933d30c 100644
else
tout = msecs_to_jiffies(2000);
@@ -1163,15 +1163,13 @@ bool rt2800_txstatus_timeout(struct rt2x00_dev *rt2x00dev)
@@ -1166,15 +1166,13 @@ bool rt2800_txstatus_timeout(struct rt2x
{
struct data_queue *queue;
struct queue_entry *entry;
@ -48,11 +46,9 @@ index 595cb9c90b81..9e7b8933d30c 100644
rt2x00dev->last_nostatus_check = jiffies;
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
index d0426314c2df..7d83dabb913d 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
@@ -191,21 +191,6 @@ static inline void rt2800mmio_enable_interrupt(struct rt2x00_dev *rt2x00dev,
@@ -191,21 +191,6 @@ static inline void rt2800mmio_enable_int
spin_unlock_irq(&rt2x00dev->irqmask_lock);
}
@ -74,7 +70,7 @@ index d0426314c2df..7d83dabb913d 100644
void rt2800mmio_pretbtt_tasklet(unsigned long data)
{
struct rt2x00_dev *rt2x00dev = (struct rt2x00_dev *)data;
@@ -270,12 +255,26 @@ void rt2800mmio_autowake_tasklet(unsigned long data)
@@ -270,12 +255,26 @@ void rt2800mmio_autowake_tasklet(unsigne
}
EXPORT_SYMBOL_GPL(rt2800mmio_autowake_tasklet);
@ -104,7 +100,7 @@ index d0426314c2df..7d83dabb913d 100644
* The TX_FIFO_STATUS interrupt needs special care. We should
* read TX_STA_FIFO but we should do it immediately as otherwise
* the register can overflow and we would lose status reports.
@@ -286,25 +285,37 @@ static void rt2800mmio_txstatus_interrupt(struct rt2x00_dev *rt2x00dev)
@@ -286,25 +285,37 @@ static void rt2800mmio_txstatus_interrup
* because we can schedule the tasklet multiple times (when the
* interrupt fires again during tx status processing).
*
@ -151,7 +147,7 @@ index d0426314c2df..7d83dabb913d 100644
irqreturn_t rt2800mmio_interrupt(int irq, void *dev_instance)
{
struct rt2x00_dev *rt2x00dev = dev_instance;
@@ -327,8 +338,10 @@ irqreturn_t rt2800mmio_interrupt(int irq, void *dev_instance)
@@ -327,8 +338,10 @@ irqreturn_t rt2800mmio_interrupt(int irq
*/
mask = ~reg;
@ -164,7 +160,7 @@ index d0426314c2df..7d83dabb913d 100644
if (rt2x00_get_field32(reg, INT_SOURCE_CSR_PRE_TBTT))
tasklet_hi_schedule(&rt2x00dev->pretbtt_tasklet);
@@ -453,6 +466,55 @@ void rt2800mmio_kick_queue(struct data_queue *queue)
@@ -453,6 +466,55 @@ void rt2800mmio_kick_queue(struct data_q
}
EXPORT_SYMBOL_GPL(rt2800mmio_kick_queue);
@ -220,11 +216,9 @@ index d0426314c2df..7d83dabb913d 100644
void rt2800mmio_stop_queue(struct data_queue *queue)
{
struct rt2x00_dev *rt2x00dev = queue->rt2x00dev;
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.h b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.h
index b63312ce3f27..3a513273f414 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.h
@@ -148,6 +148,7 @@ void rt2800mmio_toggle_irq(struct rt2x00_dev *rt2x00dev,
@@ -148,6 +148,7 @@ void rt2800mmio_toggle_irq(struct rt2x00
/* Queue handlers */
void rt2800mmio_start_queue(struct data_queue *queue);
void rt2800mmio_kick_queue(struct data_queue *queue);
@ -232,11 +226,9 @@ index b63312ce3f27..3a513273f414 100644
void rt2800mmio_stop_queue(struct data_queue *queue);
void rt2800mmio_queue_init(struct data_queue *queue);
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800pci.c b/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
index 71b1affc3885..0291441ac548 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
@@ -364,7 +364,7 @@ static const struct rt2x00lib_ops rt2800pci_rt2x00_ops = {
@@ -364,7 +364,7 @@ static const struct rt2x00lib_ops rt2800
.start_queue = rt2800mmio_start_queue,
.kick_queue = rt2800mmio_kick_queue,
.stop_queue = rt2800mmio_stop_queue,
@ -245,6 +237,3 @@ index 71b1affc3885..0291441ac548 100644
.write_tx_desc = rt2800mmio_write_tx_desc,
.write_tx_data = rt2800_write_tx_data,
.write_beacon = rt2800_write_beacon,
--
2.18.0

@ -16,7 +16,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -8717,6 +8717,24 @@ static void rt2800_init_rfcsr_6352(struc
@@ -8875,6 +8875,24 @@ static void rt2800_init_rfcsr_6352(struc
rt2800_rfcsr_write_chanreg(rt2x00dev, 58, 0x02);
rt2800_rfcsr_write_chanreg(rt2x00dev, 60, 0xC7);

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -7652,6 +7652,58 @@ static void rt2800_init_rfcsr_5592(struc
@@ -8331,6 +8331,58 @@ static void rt2800_init_rfcsr_5592(struc
rt2800_led_open_drain_enable(rt2x00dev);
}
@ -59,7 +59,7 @@
static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev,
bool set_bw, bool is_ht40)
{
@@ -8259,6 +8311,7 @@ static void rt2800_init_rfcsr_6352(struc
@@ -8956,6 +9008,7 @@ static void rt2800_init_rfcsr_6352(struc
rt2800_rfcsr_write_dccal(rt2x00dev, 5, 0x00);
rt2800_rfcsr_write_dccal(rt2x00dev, 17, 0x7C);
@ -69,7 +69,7 @@
}
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
@@ -227,6 +227,7 @@ void rt2800_link_tuner(struct rt2x00_dev
@@ -242,6 +242,7 @@ void rt2800_link_tuner(struct rt2x00_dev
const u32 count);
void rt2800_gain_calibration(struct rt2x00_dev *rt2x00dev);
void rt2800_vco_calibration(struct rt2x00_dev *rt2x00dev);
@ -79,7 +79,7 @@
void rt2800_disable_radio(struct rt2x00_dev *rt2x00dev);
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
@@ -570,6 +570,7 @@ struct rt2x00lib_ops {
@@ -572,6 +572,7 @@ struct rt2x00lib_ops {
struct link_qual *qual, const u32 count);
void (*gain_calibration) (struct rt2x00_dev *rt2x00dev);
void (*vco_calibration) (struct rt2x00_dev *rt2x00dev);

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -7704,6 +7704,160 @@ void rt2800_rf_self_txdc_cal(struct rt2x
@@ -8383,6 +8383,160 @@ void rt2800_rf_self_txdc_cal(struct rt2x
}
EXPORT_SYMBOL_GPL(rt2800_rf_self_txdc_cal);
@ -161,7 +161,7 @@
static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev,
bool set_bw, bool is_ht40)
{
@@ -8311,6 +8465,7 @@ static void rt2800_init_rfcsr_6352(struc
@@ -9008,6 +9162,7 @@ static void rt2800_init_rfcsr_6352(struc
rt2800_rfcsr_write_dccal(rt2x00dev, 5, 0x00);
rt2800_rfcsr_write_dccal(rt2x00dev, 17, 0x7C);
@ -171,7 +171,7 @@
rt2800_bw_filter_calibration(rt2x00dev, false);
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
@@ -228,6 +228,8 @@ void rt2800_link_tuner(struct rt2x00_dev
@@ -243,6 +243,8 @@ void rt2800_link_tuner(struct rt2x00_dev
void rt2800_gain_calibration(struct rt2x00_dev *rt2x00dev);
void rt2800_vco_calibration(struct rt2x00_dev *rt2x00dev);
void rt2800_rf_self_txdc_cal(struct rt2x00_dev *rt2x00dev);
@ -182,7 +182,7 @@
void rt2800_disable_radio(struct rt2x00_dev *rt2x00dev);
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
@@ -571,6 +571,8 @@ struct rt2x00lib_ops {
@@ -573,6 +573,8 @@ struct rt2x00lib_ops {
void (*gain_calibration) (struct rt2x00_dev *rt2x00dev);
void (*vco_calibration) (struct rt2x00_dev *rt2x00dev);
void (*rf_self_txdc_cal) (struct rt2x00_dev *rt2x00dev);

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -7858,6 +7858,71 @@ void rt2800_r_calibration(struct rt2x00_
@@ -8537,6 +8537,71 @@ void rt2800_r_calibration(struct rt2x00_
}
EXPORT_SYMBOL_GPL(rt2800_r_calibration);
@ -72,7 +72,7 @@
static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev,
bool set_bw, bool is_ht40)
{
@@ -8467,6 +8532,7 @@ static void rt2800_init_rfcsr_6352(struc
@@ -9164,6 +9229,7 @@ static void rt2800_init_rfcsr_6352(struc
rt2800_r_calibration(rt2x00dev);
rt2800_rf_self_txdc_cal(rt2x00dev);
@ -82,7 +82,7 @@
}
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
@@ -230,6 +230,7 @@ void rt2800_vco_calibration(struct rt2x0
@@ -245,6 +245,7 @@ void rt2800_vco_calibration(struct rt2x0
void rt2800_rf_self_txdc_cal(struct rt2x00_dev *rt2x00dev);
int rt2800_calcrcalibrationcode(struct rt2x00_dev *rt2x00dev, int d1, int d2);
void rt2800_r_calibration(struct rt2x00_dev *rt2x00dev);
@ -92,7 +92,7 @@
void rt2800_disable_radio(struct rt2x00_dev *rt2x00dev);
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
@@ -573,6 +573,7 @@ struct rt2x00lib_ops {
@@ -575,6 +575,7 @@ struct rt2x00lib_ops {
void (*rf_self_txdc_cal) (struct rt2x00_dev *rt2x00dev);
int (*calcrcalibrationcode) (struct rt2x00_dev *rt2x00dev, int d1, int d2);
void (*r_calibration) (struct rt2x00_dev *rt2x00dev);

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -7923,6 +7923,386 @@ void rt2800_rxdcoc_calibration(struct rt
@@ -8602,6 +8602,386 @@ void rt2800_rxdcoc_calibration(struct rt
}
EXPORT_SYMBOL_GPL(rt2800_rxdcoc_calibration);
@ -387,7 +387,7 @@
static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev,
bool set_bw, bool is_ht40)
{
@@ -8535,6 +8915,7 @@ static void rt2800_init_rfcsr_6352(struc
@@ -9232,6 +9612,7 @@ static void rt2800_init_rfcsr_6352(struc
rt2800_rxdcoc_calibration(rt2x00dev);
rt2800_bw_filter_calibration(rt2x00dev, true);
rt2800_bw_filter_calibration(rt2x00dev, false);
@ -397,7 +397,7 @@
static void rt2800_init_rfcsr(struct rt2x00_dev *rt2x00dev)
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
@@ -231,6 +231,7 @@ void rt2800_rf_self_txdc_cal(struct rt2x
@@ -246,6 +246,7 @@ void rt2800_rf_self_txdc_cal(struct rt2x
int rt2800_calcrcalibrationcode(struct rt2x00_dev *rt2x00dev, int d1, int d2);
void rt2800_r_calibration(struct rt2x00_dev *rt2x00dev);
void rt2800_rxdcoc_calibration(struct rt2x00_dev *rt2x00dev);
@ -407,7 +407,7 @@
void rt2800_disable_radio(struct rt2x00_dev *rt2x00dev);
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
@@ -574,6 +574,7 @@ struct rt2x00lib_ops {
@@ -576,6 +576,7 @@ struct rt2x00lib_ops {
int (*calcrcalibrationcode) (struct rt2x00_dev *rt2x00dev, int d1, int d2);
void (*r_calibration) (struct rt2x00_dev *rt2x00dev);
void (*rxdcoc_calibration) (struct rt2x00_dev *rt2x00dev);

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -8303,6 +8303,957 @@ restore_value:
@@ -8982,6 +8982,957 @@ restore_value:
}
EXPORT_SYMBOL_GPL(rt2800_rxiq_calibration);
@ -958,7 +958,7 @@
static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev,
bool set_bw, bool is_ht40)
{
@@ -8915,6 +9866,7 @@ static void rt2800_init_rfcsr_6352(struc
@@ -9612,6 +10563,7 @@ static void rt2800_init_rfcsr_6352(struc
rt2800_rxdcoc_calibration(rt2x00dev);
rt2800_bw_filter_calibration(rt2x00dev, true);
rt2800_bw_filter_calibration(rt2x00dev, false);
@ -985,7 +985,7 @@
/* RT2800 driver data structure */
struct rt2800_drv_data {
@@ -232,6 +242,7 @@ int rt2800_calcrcalibrationcode(struct r
@@ -247,6 +257,7 @@ int rt2800_calcrcalibrationcode(struct r
void rt2800_r_calibration(struct rt2x00_dev *rt2x00dev);
void rt2800_rxdcoc_calibration(struct rt2x00_dev *rt2x00dev);
void rt2800_rxiq_calibration(struct rt2x00_dev *rt2x00dev);
@ -995,7 +995,7 @@
void rt2800_disable_radio(struct rt2x00_dev *rt2x00dev);
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
@@ -575,6 +575,7 @@ struct rt2x00lib_ops {
@@ -577,6 +577,7 @@ struct rt2x00lib_ops {
void (*r_calibration) (struct rt2x00_dev *rt2x00dev);
void (*rxdcoc_calibration) (struct rt2x00_dev *rt2x00dev);
void (*rxiq_calibration) (struct rt2x00_dev *rt2x00dev);

@ -1,6 +1,6 @@
--- a/net/mac80211/Makefile
+++ b/net/mac80211/Makefile
@@ -6,7 +6,6 @@ mac80211-y := \
@@ -7,7 +7,6 @@ mac80211-y := \
driver-ops.o \
sta_info.o \
wep.o \
@ -8,7 +8,7 @@
wpa.o \
scan.o offchannel.o \
ht.o agg-tx.o agg-rx.o \
@@ -16,8 +15,8 @@ mac80211-y := \
@@ -18,8 +17,8 @@ mac80211-y := \
rate.o \
michael.o \
tkip.o \
@ -385,7 +385,7 @@
#endif /* AES_GCM_H */
--- a/net/mac80211/wpa.c
+++ b/net/mac80211/wpa.c
@@ -306,7 +306,8 @@ ieee80211_crypto_tkip_decrypt(struct iee
@@ -314,7 +314,8 @@ ieee80211_crypto_tkip_decrypt(struct iee
}
@ -395,7 +395,7 @@
{
__le16 mask_fc;
int a4_included, mgmt;
@@ -336,14 +337,8 @@ static void ccmp_special_blocks(struct s
@@ -344,14 +345,8 @@ static void ccmp_special_blocks(struct s
else
qos_tid = 0;
@ -412,7 +412,7 @@
/* Nonce: Nonce Flags | A2 | PN
* Nonce Flags: Priority (b0..b3) | Management (b4) | Reserved (b5..b7)
@@ -351,6 +346,8 @@ static void ccmp_special_blocks(struct s
@@ -359,6 +354,8 @@ static void ccmp_special_blocks(struct s
b_0[1] = qos_tid | (mgmt << 4);
memcpy(&b_0[2], hdr->addr2, ETH_ALEN);
memcpy(&b_0[8], pn, IEEE80211_CCMP_PN_LEN);
@ -421,7 +421,7 @@
/* AAD (extra authenticate-only data) / masked 802.11 header
* FC | A1 | A2 | A3 | SC | [A4] | [QC] */
@@ -407,7 +404,7 @@ static int ccmp_encrypt_skb(struct ieee8
@@ -415,7 +412,7 @@ static int ccmp_encrypt_skb(struct ieee8
u8 *pos;
u8 pn[6];
u64 pn64;
@ -430,7 +430,7 @@
u8 b_0[AES_BLOCK_SIZE];
if (info->control.hw_key &&
@@ -462,9 +459,11 @@ static int ccmp_encrypt_skb(struct ieee8
@@ -470,9 +467,11 @@ static int ccmp_encrypt_skb(struct ieee8
return 0;
pos += IEEE80211_CCMP_HDR_LEN;
@ -445,7 +445,7 @@
}
@@ -537,13 +536,13 @@ ieee80211_crypto_ccmp_decrypt(struct iee
@@ -545,13 +544,13 @@ ieee80211_crypto_ccmp_decrypt(struct iee
u8 aad[2 * AES_BLOCK_SIZE];
u8 b_0[AES_BLOCK_SIZE];
/* hardware didn't decrypt/verify MIC */
@ -461,7 +461,7 @@
return RX_DROP_UNUSABLE;
}
@@ -639,7 +638,7 @@ static int gcmp_encrypt_skb(struct ieee8
@@ -646,7 +645,7 @@ static int gcmp_encrypt_skb(struct ieee8
u8 *pos;
u8 pn[6];
u64 pn64;
@ -470,7 +470,7 @@
u8 j_0[AES_BLOCK_SIZE];
if (info->control.hw_key &&
@@ -696,8 +695,10 @@ static int gcmp_encrypt_skb(struct ieee8
@@ -703,8 +702,10 @@ static int gcmp_encrypt_skb(struct ieee8
pos += IEEE80211_GCMP_HDR_LEN;
gcmp_special_blocks(skb, pn, j_0, aad);
@ -483,7 +483,7 @@
}
ieee80211_tx_result
@@ -1121,9 +1122,9 @@ ieee80211_crypto_aes_gmac_encrypt(struct
@@ -1127,9 +1128,9 @@ ieee80211_crypto_aes_gmac_encrypt(struct
struct ieee80211_key *key = tx->key;
struct ieee80211_mmie_16 *mmie;
struct ieee80211_hdr *hdr;
@ -495,7 +495,7 @@
if (WARN_ON(skb_queue_len(&tx->skbs) != 1))
return TX_DROP;
@@ -1169,7 +1170,7 @@ ieee80211_crypto_aes_gmac_decrypt(struct
@@ -1175,7 +1176,7 @@ ieee80211_crypto_aes_gmac_decrypt(struct
struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
struct ieee80211_key *key = rx->key;
struct ieee80211_mmie_16 *mmie;

@ -2,7 +2,7 @@ Used for AP+STA support in OpenWrt - preserve AP mode keys across STA reconnects
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -1058,7 +1058,6 @@ static int ieee80211_stop_ap(struct wiph
@@ -1063,7 +1063,6 @@ static int ieee80211_stop_ap(struct wiph
sdata->u.ap.driver_smps_mode = IEEE80211_SMPS_OFF;
__sta_info_flush(sdata, true);

@ -21,7 +21,7 @@ Disable FILS support, since it pulls in crypto hash support
* Copyright 2016, Qualcomm Atheros, Inc.
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -550,7 +550,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_
@@ -570,7 +570,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_
NL80211_FEATURE_MAC_ON_CREATE |
NL80211_FEATURE_USERSPACE_MPM |
NL80211_FEATURE_FULL_AP_CLIENT_STATE;
@ -29,4 +29,4 @@ Disable FILS support, since it pulls in crypto hash support
+#if 0 /* LINUX_VERSION_IS_GEQ(4,3,0) */
wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_FILS_STA);
#endif
wiphy_ext_feature_set(wiphy,

@ -1,6 +1,6 @@
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -3750,6 +3750,12 @@ out:
@@ -3787,6 +3787,12 @@ out:
netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,
struct net_device *dev)
{

@ -1,6 +1,6 @@
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -292,7 +292,7 @@ void ieee80211_restart_hw(struct ieee802
@@ -315,7 +315,7 @@ void ieee80211_restart_hw(struct ieee802
}
EXPORT_SYMBOL(ieee80211_restart_hw);
@ -9,7 +9,7 @@
static int ieee80211_ifa_changed(struct notifier_block *nb,
unsigned long data, void *arg)
{
@@ -351,7 +351,7 @@ static int ieee80211_ifa_changed(struct
@@ -374,7 +374,7 @@ static int ieee80211_ifa_changed(struct
}
#endif
@ -18,9 +18,9 @@
static int ieee80211_ifa6_changed(struct notifier_block *nb,
unsigned long data, void *arg)
{
@@ -1114,14 +1114,14 @@ int ieee80211_register_hw(struct ieee802
if (result)
goto fail_flows;
@@ -1168,14 +1168,14 @@ int ieee80211_register_hw(struct ieee802
rtnl_unlock();
-#ifdef CONFIG_INET
+#ifdef __disabled__CONFIG_INET
@ -35,7 +35,7 @@
local->ifa6_notifier.notifier_call = ieee80211_ifa6_changed;
result = register_inet6addr_notifier(&local->ifa6_notifier);
if (result)
@@ -1130,13 +1130,13 @@ int ieee80211_register_hw(struct ieee802
@@ -1184,13 +1184,13 @@ int ieee80211_register_hw(struct ieee802
return 0;
@ -51,8 +51,8 @@
+#if defined(__disabled__CONFIG_INET) || defined(__disabled__CONFIG_IPV6)
fail_ifa:
#endif
ieee80211_txq_teardown_flows(local);
@@ -1166,10 +1166,10 @@ void ieee80211_unregister_hw(struct ieee
rtnl_lock();
@@ -1220,10 +1220,10 @@ void ieee80211_unregister_hw(struct ieee
tasklet_kill(&local->tx_pending_tasklet);
tasklet_kill(&local->tasklet);
@ -64,4 +64,4 @@
+#if IS_ENABLED(__disabled__CONFIG_IPV6)
unregister_inet6addr_notifier(&local->ifa6_notifier);
#endif
ieee80211_txq_teardown_flows(local);

@ -1,6 +1,6 @@
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -2215,7 +2215,7 @@ static int ieee80211_scan(struct wiphy *
@@ -2229,7 +2229,7 @@ static int ieee80211_scan(struct wiphy *
* the frames sent while scanning on other channel will be
* lost)
*/

@ -11,7 +11,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -177,6 +177,7 @@ struct ieee80211_tx_data {
@@ -179,6 +179,7 @@ struct ieee80211_tx_data {
struct ieee80211_tx_rate rate;
unsigned int flags;
@ -39,7 +39,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
/* internal error, why isn't DONTFRAG set? */
if (WARN_ON(skb->len + FCS_LEN <= frag_threshold))
return TX_DROP;
@@ -1175,6 +1173,8 @@ ieee80211_tx_prepare(struct ieee80211_su
@@ -1174,6 +1172,8 @@ ieee80211_tx_prepare(struct ieee80211_su
hdr = (struct ieee80211_hdr *) skb->data;
@ -48,7 +48,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
if (likely(sta)) {
if (!IS_ERR(sta))
tx->sta = sta;
@@ -3468,6 +3468,7 @@ begin:
@@ -3497,6 +3497,7 @@ begin:
tx.local = local;
tx.skb = skb;
tx.sdata = vif_to_sdata(info->control.vif);
@ -56,7 +56,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
if (txq->sta)
tx.sta = container_of(txq->sta, struct sta_info, sta);
@@ -3796,6 +3797,7 @@ ieee80211_build_data_template(struct iee
@@ -3833,6 +3834,7 @@ ieee80211_build_data_template(struct iee
hdr = (void *)skb->data;
tx.sta = sta_info_get(sdata, hdr->addr1);
tx.skb = skb;
@ -66,7 +66,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
rcu_read_unlock();
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -1232,6 +1232,7 @@ void ieee80211_send_auth(struct ieee8021
@@ -1290,6 +1290,7 @@ void ieee80211_send_auth(struct ieee8021
struct ieee80211_local *local = sdata->local;
struct sk_buff *skb;
struct ieee80211_mgmt *mgmt;
@ -74,7 +74,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
int err;
/* 24 + 6 = header + auth_algo + auth_transaction + status_code */
@@ -1255,8 +1256,10 @@ void ieee80211_send_auth(struct ieee8021
@@ -1313,8 +1314,10 @@ void ieee80211_send_auth(struct ieee8021
skb_put_data(skb, extra, extra_len);
if (auth_alg == WLAN_AUTH_SHARED_KEY && transaction == 3) {
@ -164,7 +164,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
if (skb->len < hdrlen)
return TX_DROP;
@@ -187,7 +187,6 @@ mic_fail_no_key:
@@ -195,7 +195,6 @@ mic_fail_no_key:
static int tkip_encrypt_skb(struct ieee80211_tx_data *tx, struct sk_buff *skb)
{
@ -172,7 +172,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
struct ieee80211_key *key = tx->key;
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
unsigned int hdrlen;
@@ -202,7 +201,7 @@ static int tkip_encrypt_skb(struct ieee8
@@ -210,7 +209,7 @@ static int tkip_encrypt_skb(struct ieee8
return 0;
}
@ -181,7 +181,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
len = skb->len - hdrlen;
if (info->control.hw_key)
@@ -420,7 +419,7 @@ static int ccmp_encrypt_skb(struct ieee8
@@ -428,7 +427,7 @@ static int ccmp_encrypt_skb(struct ieee8
return 0;
}
@ -190,7 +190,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
len = skb->len - hdrlen;
if (info->control.hw_key)
@@ -653,7 +652,7 @@ static int gcmp_encrypt_skb(struct ieee8
@@ -660,7 +659,7 @@ static int gcmp_encrypt_skb(struct ieee8
return 0;
}
@ -199,7 +199,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
len = skb->len - hdrlen;
if (info->control.hw_key)
@@ -793,7 +792,6 @@ static ieee80211_tx_result
@@ -800,7 +799,6 @@ static ieee80211_tx_result
ieee80211_crypto_cs_encrypt(struct ieee80211_tx_data *tx,
struct sk_buff *skb)
{
@ -207,7 +207,7 @@ Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
struct ieee80211_key *key = tx->key;
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
int hdrlen;
@@ -809,8 +807,7 @@ ieee80211_crypto_cs_encrypt(struct ieee8
@@ -816,8 +814,7 @@ ieee80211_crypto_cs_encrypt(struct ieee8
pskb_expand_head(skb, iv_len, 0, GFP_ATOMIC)))
return TX_DROP;

@ -21,11 +21,9 @@ wep/tkip/ccmp.
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
---
Index: backports-v4.18-rc7/include/net/mac80211.h
===================================================================
--- backports-v4.18-rc7.orig/include/net/mac80211.h
+++ backports-v4.18-rc7/include/net/mac80211.h
@@ -2084,6 +2084,9 @@ struct ieee80211_txq {
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2127,6 +2127,9 @@ struct ieee80211_txq {
* @IEEE80211_HW_DOESNT_SUPPORT_QOS_NDP: The driver (or firmware) doesn't
* support QoS NDP for AP probing - that's most likely a driver bug.
*
@ -35,7 +33,7 @@ Index: backports-v4.18-rc7/include/net/mac80211.h
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
*/
enum ieee80211_hw_flags {
@@ -2129,6 +2132,7 @@ enum ieee80211_hw_flags {
@@ -2172,6 +2175,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_SUPPORTS_TDLS_BUFFER_STA,
IEEE80211_HW_DEAUTH_NEED_MGD_TX_PREP,
IEEE80211_HW_DOESNT_SUPPORT_QOS_NDP,
@ -43,10 +41,8 @@ Index: backports-v4.18-rc7/include/net/mac80211.h
/* keep last, obviously */
NUM_IEEE80211_HW_FLAGS
Index: backports-v4.18-rc7/net/mac80211/debugfs.c
===================================================================
--- backports-v4.18-rc7.orig/net/mac80211/debugfs.c
+++ backports-v4.18-rc7/net/mac80211/debugfs.c
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -214,6 +214,7 @@ static const char *hw_flag_names[] = {
FLAG(SUPPORTS_TDLS_BUFFER_STA),
FLAG(DEAUTH_NEED_MGD_TX_PREP),
@ -55,11 +51,9 @@ Index: backports-v4.18-rc7/net/mac80211/debugfs.c
#undef FLAG
};
Index: backports-v4.18-rc7/net/mac80211/ieee80211_i.h
===================================================================
--- backports-v4.18-rc7.orig/net/mac80211/ieee80211_i.h
+++ backports-v4.18-rc7/net/mac80211/ieee80211_i.h
@@ -1550,6 +1550,29 @@ ieee80211_vif_get_num_mcast_if(struct ie
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -1557,6 +1557,29 @@ ieee80211_vif_get_num_mcast_if(struct ie
return -1;
}
@ -89,10 +83,8 @@ Index: backports-v4.18-rc7/net/mac80211/ieee80211_i.h
u64 ieee80211_calculate_rx_timestamp(struct ieee80211_local *local,
struct ieee80211_rx_status *status,
unsigned int mpdu_len,
Index: backports-v4.18-rc7/net/mac80211/sta_info.h
===================================================================
--- backports-v4.18-rc7.orig/net/mac80211/sta_info.h
+++ backports-v4.18-rc7/net/mac80211/sta_info.h
--- a/net/mac80211/sta_info.h
+++ b/net/mac80211/sta_info.h
@@ -301,7 +301,7 @@ struct ieee80211_fast_tx {
u8 hdr_len;
u8 sa_offs, da_offs, pn_offs;
@ -102,10 +94,8 @@ Index: backports-v4.18-rc7/net/mac80211/sta_info.h
sizeof(rfc1042_header)] __aligned(2);
struct rcu_head rcu_head;
Index: backports-v4.18-rc7/net/mac80211/status.c
===================================================================
--- backports-v4.18-rc7.orig/net/mac80211/status.c
+++ backports-v4.18-rc7/net/mac80211/status.c
--- a/net/mac80211/status.c
+++ b/net/mac80211/status.c
@@ -653,9 +653,22 @@ void ieee80211_tx_monitor(struct ieee802
struct sk_buff *skb2;
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
@ -129,10 +119,8 @@ Index: backports-v4.18-rc7/net/mac80211/status.c
/* send frame to monitor interfaces now */
rtap_len = ieee80211_tx_radiotap_len(info);
if (WARN_ON_ONCE(skb_headroom(skb) < rtap_len)) {
Index: backports-v4.18-rc7/net/mac80211/tkip.c
===================================================================
--- backports-v4.18-rc7.orig/net/mac80211/tkip.c
+++ backports-v4.18-rc7/net/mac80211/tkip.c
--- a/net/mac80211/tkip.c
+++ b/net/mac80211/tkip.c
@@ -201,10 +201,12 @@ void ieee80211_get_tkip_p2k(struct ieee8
{
struct ieee80211_key *key = (struct ieee80211_key *)
@ -147,11 +135,9 @@ Index: backports-v4.18-rc7/net/mac80211/tkip.c
u32 iv32 = get_unaligned_le32(&data[4]);
u16 iv16 = data[2] | (data[0] << 8);
Index: backports-v4.18-rc7/net/mac80211/tx.c
===================================================================
--- backports-v4.18-rc7.orig/net/mac80211/tx.c
+++ backports-v4.18-rc7/net/mac80211/tx.c
@@ -1169,8 +1169,7 @@ ieee80211_tx_prepare(struct ieee80211_su
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1171,8 +1171,7 @@ ieee80211_tx_prepare(struct ieee80211_su
info->flags &= ~IEEE80211_TX_INTFL_NEED_TXPROCESSING;
hdr = (struct ieee80211_hdr *) skb->data;
@ -161,7 +147,7 @@ Index: backports-v4.18-rc7/net/mac80211/tx.c
if (likely(sta)) {
if (!IS_ERR(sta))
@@ -2200,7 +2199,7 @@ netdev_tx_t ieee80211_monitor_start_xmit
@@ -2205,7 +2204,7 @@ netdev_tx_t ieee80211_monitor_start_xmit
goto fail;
hdr = (struct ieee80211_hdr *)(skb->data + len_rthdr);
@ -170,7 +156,7 @@ Index: backports-v4.18-rc7/net/mac80211/tx.c
if (skb->len < len_rthdr + hdrlen)
goto fail;
@@ -2418,7 +2417,7 @@ static struct sk_buff *ieee80211_build_h
@@ -2423,7 +2422,7 @@ static struct sk_buff *ieee80211_build_h
struct ieee80211_chanctx_conf *chanctx_conf;
struct ieee80211_sub_if_data *ap_sdata;
enum nl80211_band band;
@ -179,7 +165,7 @@ Index: backports-v4.18-rc7/net/mac80211/tx.c
if (IS_ERR(sta))
sta = NULL;
@@ -2638,6 +2637,9 @@ static struct sk_buff *ieee80211_build_h
@@ -2643,6 +2642,9 @@ static struct sk_buff *ieee80211_build_h
hdrlen += 2;
}
@ -189,7 +175,7 @@ Index: backports-v4.18-rc7/net/mac80211/tx.c
/*
* Drop unicast frames to unauthorised stations unless they are
* EAPOL frames from the local station.
@@ -2718,6 +2720,7 @@ static struct sk_buff *ieee80211_build_h
@@ -2723,6 +2725,7 @@ static struct sk_buff *ieee80211_build_h
skb_pull(skb, skip_header_bytes);
head_need = hdrlen + encaps_len + meshhdrlen - skb_headroom(skb);
@ -197,7 +183,7 @@ Index: backports-v4.18-rc7/net/mac80211/tx.c
/*
* So we need to modify the skb header and hence need a copy of
@@ -2750,6 +2753,9 @@ static struct sk_buff *ieee80211_build_h
@@ -2755,6 +2758,9 @@ static struct sk_buff *ieee80211_build_h
memcpy(skb_push(skb, meshhdrlen), &mesh_hdr, meshhdrlen);
#endif
@ -207,7 +193,7 @@ Index: backports-v4.18-rc7/net/mac80211/tx.c
if (ieee80211_is_data_qos(fc)) {
__le16 *qos_control;
@@ -2925,6 +2931,9 @@ void ieee80211_check_fast_xmit(struct st
@@ -2930,6 +2936,9 @@ void ieee80211_check_fast_xmit(struct st
fc |= cpu_to_le16(IEEE80211_STYPE_QOS_DATA);
}
@ -217,7 +203,7 @@ Index: backports-v4.18-rc7/net/mac80211/tx.c
/* We store the key here so there's no point in using rcu_dereference()
* but that's fine because the code that changes the pointers will call
* this function after doing so. For a single CPU that would be enough,
@@ -3513,7 +3522,7 @@ begin:
@@ -3524,7 +3533,7 @@ begin:
if (tx.key &&
(tx.key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_IV))
@ -226,11 +212,9 @@ Index: backports-v4.18-rc7/net/mac80211/tx.c
ieee80211_xmit_fast_finish(sta->sdata, sta, pn_offs,
tx.key, skb);
Index: backports-v4.18-rc7/net/mac80211/util.c
===================================================================
--- backports-v4.18-rc7.orig/net/mac80211/util.c
+++ backports-v4.18-rc7/net/mac80211/util.c
@@ -1274,6 +1274,7 @@ void ieee80211_send_auth(struct ieee8021
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -1288,6 +1288,7 @@ void ieee80211_send_auth(struct ieee8021
u32 tx_flags)
{
struct ieee80211_local *local = sdata->local;
@ -238,7 +222,7 @@ Index: backports-v4.18-rc7/net/mac80211/util.c
struct sk_buff *skb;
struct ieee80211_mgmt *mgmt;
unsigned int hdrlen;
@@ -1300,7 +1301,7 @@ void ieee80211_send_auth(struct ieee8021
@@ -1314,7 +1315,7 @@ void ieee80211_send_auth(struct ieee8021
skb_put_data(skb, extra, extra_len);
if (auth_alg == WLAN_AUTH_SHARED_KEY && transaction == 3) {

@ -10,7 +10,7 @@ Signed-off-by: Chaitanya TK <chaitanya.mgit@gmail.com>
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -1556,6 +1556,7 @@ struct ieee80211_vht_operation {
@@ -1659,6 +1659,7 @@ struct ieee80211_mu_edca_param_set {
#define IEEE80211_VHT_CAP_RXSTBC_3 0x00000300
#define IEEE80211_VHT_CAP_RXSTBC_4 0x00000400
#define IEEE80211_VHT_CAP_RXSTBC_MASK 0x00000700

@ -8,10 +8,8 @@ debugfs entries are cleaned up by debugfs_remove_recursive already.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
Index: backports-v4.18-rc7/net/mac80211/rc80211_minstrel.c
===================================================================
--- backports-v4.18-rc7.orig/net/mac80211/rc80211_minstrel.c
+++ backports-v4.18-rc7/net/mac80211/rc80211_minstrel.c
--- a/net/mac80211/rc80211_minstrel.c
+++ b/net/mac80211/rc80211_minstrel.c
@@ -689,8 +689,8 @@ minstrel_alloc(struct ieee80211_hw *hw,
#ifdef CPTCFG_MAC80211_DEBUGFS
@ -41,10 +39,8 @@ Index: backports-v4.18-rc7/net/mac80211/rc80211_minstrel.c
#endif
.get_expected_throughput = minstrel_get_expected_throughput,
};
Index: backports-v4.18-rc7/net/mac80211/rc80211_minstrel.h
===================================================================
--- backports-v4.18-rc7.orig/net/mac80211/rc80211_minstrel.h
+++ backports-v4.18-rc7/net/mac80211/rc80211_minstrel.h
--- a/net/mac80211/rc80211_minstrel.h
+++ b/net/mac80211/rc80211_minstrel.h
@@ -109,11 +109,6 @@ struct minstrel_sta_info {
/* sampling table */
@ -73,10 +69,8 @@ Index: backports-v4.18-rc7/net/mac80211/rc80211_minstrel.h
/* Recalculate success probabilities and counters for a given rate using EWMA */
void minstrel_calc_rate_stats(struct minstrel_rate_stats *mrs);
Index: backports-v4.18-rc7/net/mac80211/rc80211_minstrel_debugfs.c
===================================================================
--- backports-v4.18-rc7.orig/net/mac80211/rc80211_minstrel_debugfs.c
+++ backports-v4.18-rc7/net/mac80211/rc80211_minstrel_debugfs.c
--- a/net/mac80211/rc80211_minstrel_debugfs.c
+++ b/net/mac80211/rc80211_minstrel_debugfs.c
@@ -214,19 +214,7 @@ minstrel_add_sta_debugfs(void *priv, voi
{
struct minstrel_sta_info *mi = priv_sta;
@ -100,10 +94,8 @@ Index: backports-v4.18-rc7/net/mac80211/rc80211_minstrel_debugfs.c
+ debugfs_create_file("rc_stats_csv", S_IRUGO, dir, mi,
+ &minstrel_stat_csv_fops);
}
Index: backports-v4.18-rc7/net/mac80211/rc80211_minstrel_ht.c
===================================================================
--- backports-v4.18-rc7.orig/net/mac80211/rc80211_minstrel_ht.c
+++ backports-v4.18-rc7/net/mac80211/rc80211_minstrel_ht.c
--- a/net/mac80211/rc80211_minstrel_ht.c
+++ b/net/mac80211/rc80211_minstrel_ht.c
@@ -1393,7 +1393,6 @@ static const struct rate_control_ops mac
.free = minstrel_ht_free,
#ifdef CPTCFG_MAC80211_DEBUGFS
@ -112,10 +104,8 @@ Index: backports-v4.18-rc7/net/mac80211/rc80211_minstrel_ht.c
#endif
.get_expected_throughput = minstrel_ht_get_expected_throughput,
};
Index: backports-v4.18-rc7/net/mac80211/rc80211_minstrel_ht.h
===================================================================
--- backports-v4.18-rc7.orig/net/mac80211/rc80211_minstrel_ht.h
+++ backports-v4.18-rc7/net/mac80211/rc80211_minstrel_ht.h
--- a/net/mac80211/rc80211_minstrel_ht.h
+++ b/net/mac80211/rc80211_minstrel_ht.h
@@ -110,17 +110,12 @@ struct minstrel_ht_sta_priv {
struct minstrel_ht_sta ht;
struct minstrel_sta_info legacy;
@ -134,10 +124,8 @@ Index: backports-v4.18-rc7/net/mac80211/rc80211_minstrel_ht.h
int minstrel_ht_get_tp_avg(struct minstrel_ht_sta *mi, int group, int rate,
int prob_ewma);
Index: backports-v4.18-rc7/net/mac80211/rc80211_minstrel_ht_debugfs.c
===================================================================
--- backports-v4.18-rc7.orig/net/mac80211/rc80211_minstrel_ht_debugfs.c
+++ backports-v4.18-rc7/net/mac80211/rc80211_minstrel_ht_debugfs.c
--- a/net/mac80211/rc80211_minstrel_ht_debugfs.c
+++ b/net/mac80211/rc80211_minstrel_ht_debugfs.c
@@ -303,17 +303,8 @@ minstrel_ht_add_sta_debugfs(void *priv,
{
struct minstrel_ht_sta_priv *msp = priv_sta;

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save