Commit dad32cfe authored by David S. Miller's avatar David S. Miller
Browse files


Kalle Valo says:

====================
wireless fixes for v5.18

First set of fixes for v5.18. Maintainers file updates, two
compilation warning fixes, one revert for ath11k and smaller fixes to
drivers and stack. All the usual stuff.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 3d250452 fb4bccd8
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -201,6 +201,7 @@ F: include/net/ieee80211_radiotap.h
F:	include/net/iw_handler.h
F:	include/net/wext.h
F:	include/uapi/linux/nl80211.h
F:	include/uapi/linux/wireless.h
F:	net/wireless/
8169 10/100/1000 GIGABIT ETHERNET DRIVER
@@ -12401,7 +12402,7 @@ F: drivers/mmc/host/mtk-sd.c
MEDIATEK MT76 WIRELESS LAN DRIVER
M:	Felix Fietkau <nbd@nbd.name>
M:	Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
M:	Lorenzo Bianconi <lorenzo@kernel.org>
M:	Ryder Lee <ryder.lee@mediatek.com>
R:	Shayne Chen <shayne.chen@mediatek.com>
R:	Sean Wang <sean.wang@mediatek.com>
@@ -21231,10 +21232,8 @@ S: Maintained
F:	drivers/hid/hid-wiimote*
WILOCITY WIL6210 WIRELESS DRIVER
M:	Maya Erez <merez@codeaurora.org>
L:	linux-wireless@vger.kernel.org
L:	wil6210@qti.qualcomm.com
S:	Supported
S:	Orphan
W:	https://wireless.wiki.kernel.org/en/users/Drivers/wil6210
F:	drivers/net/wireless/ath/wil6210/
+14 −8
Original line number Diff line number Diff line
@@ -3136,6 +3136,20 @@ static void ath11k_mac_op_bss_info_changed(struct ieee80211_hw *hw,
			arvif->do_not_send_tmpl = true;
		else
			arvif->do_not_send_tmpl = false;

		if (vif->bss_conf.he_support) {
			ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
							    WMI_VDEV_PARAM_BA_MODE,
							    WMI_BA_MODE_BUFFER_SIZE_256);
			if (ret)
				ath11k_warn(ar->ab,
					    "failed to set BA BUFFER SIZE 256 for vdev: %d\n",
					    arvif->vdev_id);
			else
				ath11k_dbg(ar->ab, ATH11K_DBG_MAC,
					   "Set BA BUFFER SIZE 256 for VDEV: %d\n",
					   arvif->vdev_id);
		}
	}

	if (changed & (BSS_CHANGED_BEACON_INFO | BSS_CHANGED_BEACON)) {
@@ -3171,14 +3185,6 @@ static void ath11k_mac_op_bss_info_changed(struct ieee80211_hw *hw,

		if (arvif->is_up && vif->bss_conf.he_support &&
		    vif->bss_conf.he_oper.params) {
			ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
							    WMI_VDEV_PARAM_BA_MODE,
							    WMI_BA_MODE_BUFFER_SIZE_256);
			if (ret)
				ath11k_warn(ar->ab,
					    "failed to set BA BUFFER SIZE 256 for vdev: %d\n",
					    arvif->vdev_id);

			param_id = WMI_VDEV_PARAM_HEOPS_0_31;
			param_value = vif->bss_conf.he_oper.params;
			ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
+1 −1
Original line number Diff line number Diff line
@@ -839,7 +839,7 @@ static bool ath9k_txq_list_has_key(struct list_head *txq_list, u32 keyix)
			continue;

		txinfo = IEEE80211_SKB_CB(bf->bf_mpdu);
		fi = (struct ath_frame_info *)&txinfo->rate_driver_data[0];
		fi = (struct ath_frame_info *)&txinfo->status.status_driver_data[0];
		if (fi->keyix == keyix)
			return true;
	}
+21 −12
Original line number Diff line number Diff line
@@ -141,8 +141,8 @@ static struct ath_frame_info *get_frame_info(struct sk_buff *skb)
{
	struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb);
	BUILD_BUG_ON(sizeof(struct ath_frame_info) >
		     sizeof(tx_info->rate_driver_data));
	return (struct ath_frame_info *) &tx_info->rate_driver_data[0];
		     sizeof(tx_info->status.status_driver_data));
	return (struct ath_frame_info *) &tx_info->status.status_driver_data[0];
}

static void ath_send_bar(struct ath_atx_tid *tid, u16 seqno)
@@ -2542,6 +2542,16 @@ static void ath_tx_complete_buf(struct ath_softc *sc, struct ath_buf *bf,
	spin_unlock_irqrestore(&sc->tx.txbuflock, flags);
}

static void ath_clear_tx_status(struct ieee80211_tx_info *tx_info)
{
	void *ptr = &tx_info->status;

	memset(ptr + sizeof(tx_info->status.rates), 0,
	       sizeof(tx_info->status) -
	       sizeof(tx_info->status.rates) -
	       sizeof(tx_info->status.status_driver_data));
}

static void ath_tx_rc_status(struct ath_softc *sc, struct ath_buf *bf,
			     struct ath_tx_status *ts, int nframes, int nbad,
			     int txok)
@@ -2553,6 +2563,8 @@ static void ath_tx_rc_status(struct ath_softc *sc, struct ath_buf *bf,
	struct ath_hw *ah = sc->sc_ah;
	u8 i, tx_rateindex;

	ath_clear_tx_status(tx_info);

	if (txok)
		tx_info->status.ack_signal = ts->ts_rssi;

@@ -2567,6 +2579,13 @@ static void ath_tx_rc_status(struct ath_softc *sc, struct ath_buf *bf,
	tx_info->status.ampdu_len = nframes;
	tx_info->status.ampdu_ack_len = nframes - nbad;

	tx_info->status.rates[tx_rateindex].count = ts->ts_longretry + 1;

	for (i = tx_rateindex + 1; i < hw->max_rates; i++) {
		tx_info->status.rates[i].count = 0;
		tx_info->status.rates[i].idx = -1;
	}

	if ((ts->ts_status & ATH9K_TXERR_FILT) == 0 &&
	    (tx_info->flags & IEEE80211_TX_CTL_NO_ACK) == 0) {
		/*
@@ -2588,16 +2607,6 @@ static void ath_tx_rc_status(struct ath_softc *sc, struct ath_buf *bf,
			tx_info->status.rates[tx_rateindex].count =
				hw->max_rate_tries;
	}

	for (i = tx_rateindex + 1; i < hw->max_rates; i++) {
		tx_info->status.rates[i].count = 0;
		tx_info->status.rates[i].idx = -1;
	}

	tx_info->status.rates[tx_rateindex].count = ts->ts_longretry + 1;

	/* we report airtime in ath_tx_count_airtime(), don't report twice */
	tx_info->status.tx_time = 0;
}

static void ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq)
+1 −1
Original line number Diff line number Diff line
@@ -557,7 +557,7 @@ enum brcmf_sdio_frmtype {
	BRCMF_SDIO_FT_SUB,
};

#define SDIOD_DRVSTR_KEY(chip, pmu)     (((chip) << 16) | (pmu))
#define SDIOD_DRVSTR_KEY(chip, pmu)     (((unsigned int)(chip) << 16) | (pmu))

/* SDIO Pad drive strength to select value mappings */
struct sdiod_drive_str {
Loading