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

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

Merge tag 'mac80211-for-davem-2019-08-29' of...

Merge tag 'mac80211-for-davem-2019-08-29' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211



Johannes Berg says:

====================
We have
 * one fix for a driver as I'm covering for Kalle while he's on vacation
 * two fixes for eapol-over-nl80211 work
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 189308d5 f8b43c5c
Loading
Loading
Loading
Loading
+24 −0
Original line number Original line Diff line number Diff line
@@ -556,6 +556,30 @@ const struct iwl_cfg killer1650i_2ax_cfg_qu_b0_hr_b0 = {
	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
};
};


const struct iwl_cfg killer1650s_2ax_cfg_qu_c0_hr_b0 = {
	.name = "Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)",
	.fw_name_pre = IWL_QU_C_HR_B_FW_PRE,
	IWL_DEVICE_22500,
	/*
	 * This device doesn't support receiving BlockAck with a large bitmap
	 * so we need to restrict the size of transmitted aggregation to the
	 * HT size; mac80211 would otherwise pick the HE max (256) by default.
	 */
	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
};

const struct iwl_cfg killer1650i_2ax_cfg_qu_c0_hr_b0 = {
	.name = "Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W)",
	.fw_name_pre = IWL_QU_C_HR_B_FW_PRE,
	IWL_DEVICE_22500,
	/*
	 * This device doesn't support receiving BlockAck with a large bitmap
	 * so we need to restrict the size of transmitted aggregation to the
	 * HT size; mac80211 would otherwise pick the HE max (256) by default.
	 */
	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
};

const struct iwl_cfg iwl22000_2ax_cfg_jf = {
const struct iwl_cfg iwl22000_2ax_cfg_jf = {
	.name = "Intel(R) Dual Band Wireless AX 22000",
	.name = "Intel(R) Dual Band Wireless AX 22000",
	.fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
	.fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
+2 −0
Original line number Original line Diff line number Diff line
@@ -577,6 +577,8 @@ extern const struct iwl_cfg iwl_ax1650i_cfg_quz_hr;
extern const struct iwl_cfg iwl_ax1650s_cfg_quz_hr;
extern const struct iwl_cfg iwl_ax1650s_cfg_quz_hr;
extern const struct iwl_cfg killer1650s_2ax_cfg_qu_b0_hr_b0;
extern const struct iwl_cfg killer1650s_2ax_cfg_qu_b0_hr_b0;
extern const struct iwl_cfg killer1650i_2ax_cfg_qu_b0_hr_b0;
extern const struct iwl_cfg killer1650i_2ax_cfg_qu_b0_hr_b0;
extern const struct iwl_cfg killer1650s_2ax_cfg_qu_c0_hr_b0;
extern const struct iwl_cfg killer1650i_2ax_cfg_qu_c0_hr_b0;
extern const struct iwl_cfg killer1650x_2ax_cfg;
extern const struct iwl_cfg killer1650x_2ax_cfg;
extern const struct iwl_cfg killer1650w_2ax_cfg;
extern const struct iwl_cfg killer1650w_2ax_cfg;
extern const struct iwl_cfg iwl9461_2ac_cfg_qu_b0_jf_b0;
extern const struct iwl_cfg iwl9461_2ac_cfg_qu_b0_jf_b0;
+4 −0
Original line number Original line Diff line number Diff line
@@ -1062,6 +1062,10 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
			iwl_trans->cfg = &iwl9560_2ac_cfg_qu_c0_jf_b0;
			iwl_trans->cfg = &iwl9560_2ac_cfg_qu_c0_jf_b0;
		else if (iwl_trans->cfg == &iwl9560_2ac_160_cfg_qu_b0_jf_b0)
		else if (iwl_trans->cfg == &iwl9560_2ac_160_cfg_qu_b0_jf_b0)
			iwl_trans->cfg = &iwl9560_2ac_160_cfg_qu_c0_jf_b0;
			iwl_trans->cfg = &iwl9560_2ac_160_cfg_qu_c0_jf_b0;
		else if (iwl_trans->cfg == &killer1650s_2ax_cfg_qu_b0_hr_b0)
			iwl_trans->cfg = &killer1650s_2ax_cfg_qu_c0_hr_b0;
		else if (iwl_trans->cfg == &killer1650i_2ax_cfg_qu_b0_hr_b0)
			iwl_trans->cfg = &killer1650i_2ax_cfg_qu_c0_hr_b0;
	}
	}


	/* same thing for QuZ... */
	/* same thing for QuZ... */
+1 −6
Original line number Original line Diff line number Diff line
@@ -3602,12 +3602,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
		}
		}
	} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) ==
	} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) ==
		   CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_HR) &&
		   CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_HR) &&
		   ((trans->cfg != &iwl_ax200_cfg_cc &&
		   trans->hw_rev == CSR_HW_REV_TYPE_QNJ_B0) {
		     trans->cfg != &iwl_ax201_cfg_qu_hr &&
		     trans->cfg != &killer1650x_2ax_cfg &&
		     trans->cfg != &killer1650w_2ax_cfg &&
		     trans->cfg != &iwl_ax201_cfg_quz_hr) ||
		    trans->hw_rev == CSR_HW_REV_TYPE_QNJ_B0)) {
		u32 hw_status;
		u32 hw_status;


		hw_status = iwl_read_prph(trans, UMAG_GEN_HW_STATUS);
		hw_status = iwl_read_prph(trans, UMAG_GEN_HW_STATUS);
+3 −3
Original line number Original line Diff line number Diff line
@@ -2447,11 +2447,13 @@ static void ieee80211_deliver_skb_to_local_stack(struct sk_buff *skb,
		      skb->protocol == cpu_to_be16(ETH_P_PREAUTH)) &&
		      skb->protocol == cpu_to_be16(ETH_P_PREAUTH)) &&
		     sdata->control_port_over_nl80211)) {
		     sdata->control_port_over_nl80211)) {
		struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
		struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
		bool noencrypt = status->flag & RX_FLAG_DECRYPTED;
		bool noencrypt = !(status->flag & RX_FLAG_DECRYPTED);


		cfg80211_rx_control_port(dev, skb, noencrypt);
		cfg80211_rx_control_port(dev, skb, noencrypt);
		dev_kfree_skb(skb);
		dev_kfree_skb(skb);
	} else {
	} else {
		memset(skb->cb, 0, sizeof(skb->cb));

		/* deliver to local stack */
		/* deliver to local stack */
		if (rx->napi)
		if (rx->napi)
			napi_gro_receive(rx->napi, skb);
			napi_gro_receive(rx->napi, skb);
@@ -2546,8 +2548,6 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)


	if (skb) {
	if (skb) {
		skb->protocol = eth_type_trans(skb, dev);
		skb->protocol = eth_type_trans(skb, dev);
		memset(skb->cb, 0, sizeof(skb->cb));

		ieee80211_deliver_skb_to_local_stack(skb, rx);
		ieee80211_deliver_skb_to_local_stack(skb, rx);
	}
	}