Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b3117494 authored by John W. Linville's avatar John W. Linville
Browse files
Conflicts:
	drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
	drivers/net/wireless/iwlwifi/pcie/tx.c
parents e2ff0498 400e0208
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -67,6 +67,7 @@ static struct usb_device_id ath3k_table[] = {
	{ USB_DEVICE(0x13d3, 0x3304) },
	{ USB_DEVICE(0x13d3, 0x3304) },
	{ USB_DEVICE(0x0930, 0x0215) },
	{ USB_DEVICE(0x0930, 0x0215) },
	{ USB_DEVICE(0x0489, 0xE03D) },
	{ USB_DEVICE(0x0489, 0xE03D) },
	{ USB_DEVICE(0x0489, 0xE027) },


	/* Atheros AR9285 Malbec with sflash firmware */
	/* Atheros AR9285 Malbec with sflash firmware */
	{ USB_DEVICE(0x03F0, 0x311D) },
	{ USB_DEVICE(0x03F0, 0x311D) },
+1 −0
Original line number Original line Diff line number Diff line
@@ -124,6 +124,7 @@ static struct usb_device_id blacklist_table[] = {
	{ USB_DEVICE(0x13d3, 0x3304), .driver_info = BTUSB_IGNORE },
	{ USB_DEVICE(0x13d3, 0x3304), .driver_info = BTUSB_IGNORE },
	{ USB_DEVICE(0x0930, 0x0215), .driver_info = BTUSB_IGNORE },
	{ USB_DEVICE(0x0930, 0x0215), .driver_info = BTUSB_IGNORE },
	{ USB_DEVICE(0x0489, 0xe03d), .driver_info = BTUSB_IGNORE },
	{ USB_DEVICE(0x0489, 0xe03d), .driver_info = BTUSB_IGNORE },
	{ USB_DEVICE(0x0489, 0xe027), .driver_info = BTUSB_IGNORE },


	/* Atheros AR9285 Malbec with sflash firmware */
	/* Atheros AR9285 Malbec with sflash firmware */
	{ USB_DEVICE(0x03f0, 0x311d), .driver_info = BTUSB_IGNORE },
	{ USB_DEVICE(0x03f0, 0x311d), .driver_info = BTUSB_IGNORE },
+1 −1
Original line number Original line Diff line number Diff line
@@ -1456,7 +1456,7 @@ static bool ath9k_hw_set_reset_reg(struct ath_hw *ah, u32 type)
	switch (type) {
	switch (type) {
	case ATH9K_RESET_POWER_ON:
	case ATH9K_RESET_POWER_ON:
		ret = ath9k_hw_set_reset_power_on(ah);
		ret = ath9k_hw_set_reset_power_on(ah);
		if (!ret)
		if (ret)
			ah->reset_power_on = true;
			ah->reset_power_on = true;
		break;
		break;
	case ATH9K_RESET_WARM:
	case ATH9K_RESET_WARM:
+6 −2
Original line number Original line Diff line number Diff line
@@ -394,7 +394,7 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq,
	u16 seq_st = 0, acked_cnt = 0, txfail_cnt = 0, seq_first;
	u16 seq_st = 0, acked_cnt = 0, txfail_cnt = 0, seq_first;
	u32 ba[WME_BA_BMP_SIZE >> 5];
	u32 ba[WME_BA_BMP_SIZE >> 5];
	int isaggr, txfail, txpending, sendbar = 0, needreset = 0, nbad = 0;
	int isaggr, txfail, txpending, sendbar = 0, needreset = 0, nbad = 0;
	bool rc_update = true;
	bool rc_update = true, isba;
	struct ieee80211_tx_rate rates[4];
	struct ieee80211_tx_rate rates[4];
	struct ath_frame_info *fi;
	struct ath_frame_info *fi;
	int nframes;
	int nframes;
@@ -438,13 +438,17 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq,
	tidno = ieee80211_get_qos_ctl(hdr)[0] & IEEE80211_QOS_CTL_TID_MASK;
	tidno = ieee80211_get_qos_ctl(hdr)[0] & IEEE80211_QOS_CTL_TID_MASK;
	tid = ATH_AN_2_TID(an, tidno);
	tid = ATH_AN_2_TID(an, tidno);
	seq_first = tid->seq_start;
	seq_first = tid->seq_start;
	isba = ts->ts_flags & ATH9K_TX_BA;


	/*
	/*
	 * The hardware occasionally sends a tx status for the wrong TID.
	 * The hardware occasionally sends a tx status for the wrong TID.
	 * In this case, the BA status cannot be considered valid and all
	 * In this case, the BA status cannot be considered valid and all
	 * subframes need to be retransmitted
	 * subframes need to be retransmitted
	 *
	 * Only BlockAcks have a TID and therefore normal Acks cannot be
	 * checked
	 */
	 */
	if (tidno != ts->tid)
	if (isba && tidno != ts->tid)
		txok = false;
		txok = false;


	isaggr = bf_isaggr(bf);
	isaggr = bf_isaggr(bf);
+15 −1
Original line number Original line Diff line number Diff line
@@ -519,7 +519,7 @@ static void iwlagn_mac_tx(struct ieee80211_hw *hw,
		     ieee80211_get_tx_rate(hw, IEEE80211_SKB_CB(skb))->bitrate);
		     ieee80211_get_tx_rate(hw, IEEE80211_SKB_CB(skb))->bitrate);


	if (iwlagn_tx_skb(priv, control->sta, skb))
	if (iwlagn_tx_skb(priv, control->sta, skb))
		dev_kfree_skb_any(skb);
		ieee80211_free_txskb(hw, skb);
}
}


static void iwlagn_mac_update_tkip_key(struct ieee80211_hw *hw,
static void iwlagn_mac_update_tkip_key(struct ieee80211_hw *hw,
@@ -1352,6 +1352,20 @@ static int iwlagn_mac_add_interface(struct ieee80211_hw *hw,
	vif_priv->ctx = ctx;
	vif_priv->ctx = ctx;
	ctx->vif = vif;
	ctx->vif = vif;


	/*
	 * In SNIFFER device type, the firmware reports the FCS to
	 * the host, rather than snipping it off. Unfortunately,
	 * mac80211 doesn't (yet) provide a per-packet flag for
	 * this, so that we have to set the hardware flag based
	 * on the interfaces added. As the monitor interface can
	 * only be present by itself, and will be removed before
	 * other interfaces are added, this is safe.
	 */
	if (vif->type == NL80211_IFTYPE_MONITOR)
		priv->hw->flags |= IEEE80211_HW_RX_INCLUDES_FCS;
	else
		priv->hw->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS;

	err = iwl_setup_interface(priv, ctx);
	err = iwl_setup_interface(priv, ctx);
	if (!err || reset)
	if (!err || reset)
		goto out;
		goto out;
Loading