mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-11 21:05:02 -04:00
Merge tag 'wireless-next-2022-12-02' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
Kalle Valo says: ==================== wireless-next patches for v6.2 Third set of patches for v6.2. mt76 has a new driver for mt7996 Wi-Fi 7 devices and iwlwifi also got initial Wi-Fi 7 support. Otherwise smaller features and fixes. Major changes: ath10k - store WLAN firmware version in SMEM image table mt76 - mt7996: new driver for MediaTek Wi-Fi 7 (802.11be) devices - mt7986, mt7915: enable Wireless Ethernet Dispatch (WED) offload support - mt7915: add ack signal support - mt7915: enable coredump support - mt7921: remain_on_channel support - mt7921: channel context support iwlwifi - enable Wi-Fi 7 Extremely High Throughput (EHT) PHY capabilities - 320 MHz channels support * tag 'wireless-next-2022-12-02' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next: (144 commits) wifi: ath10k: fix QCOM_SMEM dependency wifi: mt76: mt7921e: add pci .shutdown() support wifi: mt76: mt7915: mmio: fix naming convention wifi: mt76: mt7996: add support to configure spatial reuse parameter set wifi: mt76: mt7996: enable ack signal support wifi: mt76: mt7996: enable use_cts_prot support wifi: mt76: mt7915: rely on band_idx of mt76_phy wifi: mt76: mt7915: enable per bandwidth power limit support wifi: mt76: mt7915: introduce mt7915_get_power_bound() mt76: mt7915: Fix PCI device refcount leak in mt7915_pci_init_hif2() wifi: mt76: do not send firmware FW_FEATURE_NON_DL region wifi: mt76: mt7921: Add missing __packed annotation of struct mt7921_clc wifi: mt76: fix coverity overrun-call in mt76_get_txpower() wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devices wifi: mt76: mt76x0: remove dead code in mt76x0_phy_get_target_power wifi: mt76: mt7915: fix band_idx usage wifi: mt76: mt7915: enable .sta_set_txpwr support wifi: mt76: mt7915: add basedband Txpower info into debugfs wifi: mt76: mt7915: add support to configure spatial reuse parameter set wifi: mt76: mt7915: add missing MODULE_PARM_DESC ... ==================== Link: https://lore.kernel.org/r/20221202214254.D0D3DC433C1@smtp.kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -338,6 +338,17 @@ struct ieee80211_qos_hdr {
|
||||
__le16 qos_ctrl;
|
||||
} __packed __aligned(2);
|
||||
|
||||
struct ieee80211_qos_hdr_4addr {
|
||||
__le16 frame_control;
|
||||
__le16 duration_id;
|
||||
u8 addr1[ETH_ALEN];
|
||||
u8 addr2[ETH_ALEN];
|
||||
u8 addr3[ETH_ALEN];
|
||||
__le16 seq_ctrl;
|
||||
u8 addr4[ETH_ALEN];
|
||||
__le16 qos_ctrl;
|
||||
} __packed __aligned(2);
|
||||
|
||||
struct ieee80211_trigger {
|
||||
__le16 frame_control;
|
||||
__le16 duration;
|
||||
@@ -4060,16 +4071,21 @@ struct ieee80211_he_6ghz_capa {
|
||||
* @hdr: the frame
|
||||
*
|
||||
* The qos ctrl bytes come after the frame_control, duration, seq_num
|
||||
* and 3 or 4 addresses of length ETH_ALEN.
|
||||
* 3 addr: 2 + 2 + 2 + 3*6 = 24
|
||||
* 4 addr: 2 + 2 + 2 + 4*6 = 30
|
||||
* and 3 or 4 addresses of length ETH_ALEN. Checks frame_control to choose
|
||||
* between struct ieee80211_qos_hdr_4addr and struct ieee80211_qos_hdr.
|
||||
*/
|
||||
static inline u8 *ieee80211_get_qos_ctl(struct ieee80211_hdr *hdr)
|
||||
{
|
||||
if (ieee80211_has_a4(hdr->frame_control))
|
||||
return (u8 *)hdr + 30;
|
||||
union {
|
||||
struct ieee80211_qos_hdr addr3;
|
||||
struct ieee80211_qos_hdr_4addr addr4;
|
||||
} *qos;
|
||||
|
||||
qos = (void *)hdr;
|
||||
if (ieee80211_has_a4(qos->addr3.frame_control))
|
||||
return (u8 *)&qos->addr4.qos_ctrl;
|
||||
else
|
||||
return (u8 *)hdr + 24;
|
||||
return (u8 *)&qos->addr3.qos_ctrl;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -4742,7 +4742,7 @@ struct ieee80211_iface_limit {
|
||||
*
|
||||
* struct ieee80211_iface_limit limits1[] = {
|
||||
* { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), },
|
||||
* { .max = 1, .types = BIT(NL80211_IFTYPE_AP}, },
|
||||
* { .max = 1, .types = BIT(NL80211_IFTYPE_AP), },
|
||||
* };
|
||||
* struct ieee80211_iface_combination combination1 = {
|
||||
* .limits = limits1,
|
||||
|
||||
@@ -200,6 +200,7 @@ static void fq_tin_enqueue(struct fq *fq,
|
||||
fq_skb_free_t free_func)
|
||||
{
|
||||
struct fq_flow *flow;
|
||||
struct sk_buff *next;
|
||||
bool oom;
|
||||
|
||||
lockdep_assert_held(&fq->lock);
|
||||
@@ -214,11 +215,15 @@ static void fq_tin_enqueue(struct fq *fq,
|
||||
}
|
||||
|
||||
flow->tin = tin;
|
||||
flow->backlog += skb->len;
|
||||
tin->backlog_bytes += skb->len;
|
||||
tin->backlog_packets++;
|
||||
fq->memory_usage += skb->truesize;
|
||||
fq->backlog++;
|
||||
skb_list_walk_safe(skb, skb, next) {
|
||||
skb_mark_not_on_list(skb);
|
||||
flow->backlog += skb->len;
|
||||
tin->backlog_bytes += skb->len;
|
||||
tin->backlog_packets++;
|
||||
fq->memory_usage += skb->truesize;
|
||||
fq->backlog++;
|
||||
__skb_queue_tail(&flow->queue, skb);
|
||||
}
|
||||
|
||||
if (list_empty(&flow->flowchain)) {
|
||||
flow->deficit = fq->quantum;
|
||||
@@ -226,7 +231,6 @@ static void fq_tin_enqueue(struct fq *fq,
|
||||
&tin->new_flows);
|
||||
}
|
||||
|
||||
__skb_queue_tail(&flow->queue, skb);
|
||||
oom = (fq->memory_usage > fq->memory_limit);
|
||||
while (fq->backlog > fq->limit || oom) {
|
||||
flow = fq_find_fattest_flow(fq);
|
||||
|
||||
@@ -1807,6 +1807,10 @@ struct ieee80211_vif_cfg {
|
||||
* @addr: address of this interface
|
||||
* @p2p: indicates whether this AP or STA interface is a p2p
|
||||
* interface, i.e. a GO or p2p-sta respectively
|
||||
* @netdev_features: tx netdev features supported by the hardware for this
|
||||
* vif. mac80211 initializes this to hw->netdev_features, and the driver
|
||||
* can mask out specific tx features. mac80211 will handle software fixup
|
||||
* for masked offloads (GSO, CSUM)
|
||||
* @driver_flags: flags/capabilities the driver has for this interface,
|
||||
* these need to be set (or cleared) when the interface is added
|
||||
* or, if supported by the driver, the interface type is changed
|
||||
@@ -1848,6 +1852,7 @@ struct ieee80211_vif {
|
||||
|
||||
struct ieee80211_txq *txq;
|
||||
|
||||
netdev_features_t netdev_features;
|
||||
u32 driver_flags;
|
||||
u32 offload_flags;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user