Skip to content

Commit 71e0ad3

Browse files
committed
Merge tag 'wireless-next-2024-10-25' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
Kalle Valo says: ==================== wireless-next patches for v6.13 The first -next "new features" pull request for v6.13. This is a big one as we have not been able to send one earlier. We have also some patches affecting other subsystems: in staging we deleted the rtl8192e driver and in debugfs added a new interface to save struct file_operations memory; both were acked by GregKH. Because of the lib80211/libipw move there were quite a lot of conflicts and to solve those we decided to merge net-next into wireless-next. Major changes: cfg80211/mac80211 * stop exporting wext symbols * new mac80211 op to indicate that a new interface is to be added * support radio separation of multi-band devices Wireless Extensions * move wext spy implementation to libiw * remove iw_public_data from struct net_device brcmfmac * optional LPO clock support ipw2x00 * move remaining lib80211 code into libiw wilc1000 * WILC3000 support rtw89 * RTL8852BE and RTL8852BE-VT BT-coexistence improvements * tag 'wireless-next-2024-10-25' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next: (126 commits) mac80211: Remove NOP call to ieee80211_hw_config wifi: iwlwifi: work around -Wenum-compare-conditional warning wifi: mac80211: re-order assigning channel in activate links wifi: mac80211: convert debugfs files to short fops debugfs: add small file operations for most files wifi: mac80211: remove misleading j_0 construction parts wifi: mac80211_hwsim: use hrtimer_active() wifi: mac80211: refactor BW limitation check for CSA parsing wifi: mac80211: filter on monitor interfaces based on configured channel wifi: mac80211: refactor ieee80211_rx_monitor wifi: mac80211: add support for the monitor SKIP_TX flag wifi: cfg80211: add monitor SKIP_TX flag wifi: mac80211: add flag to opt out of virtual monitor support wifi: cfg80211: pass net_device to .set_monitor_channel wifi: mac80211: remove status->ampdu_delimiter_crc wifi: cfg80211: report per wiphy radio antenna mask wifi: mac80211: use vif radio mask to limit creating chanctx wifi: mac80211: use vif radio mask to limit ibss scan frequencies wifi: cfg80211: add option for vif allowed radios wifi: iwlwifi: allow IWL_FW_CHECK() with just a string ... ==================== Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
2 parents ef0ed88 + eaed5fc commit 71e0ad3

File tree

261 files changed

+6916
-28251
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

261 files changed

+6916
-28251
lines changed

Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ properties:
5353
- pci14e4,4488 # BCM4377
5454
- pci14e4,4425 # BCM4378
5555
- pci14e4,4433 # BCM4387
56+
- pci14e4,449d # BCM43752
5657

5758
reg:
5859
description: SDIO function number for the device (for most cases
@@ -121,6 +122,14 @@ properties:
121122
NVRAM. This would normally be filled in by the bootloader from platform
122123
configuration data.
123124

125+
clocks:
126+
items:
127+
- description: External Low Power Clock input (32.768KHz)
128+
129+
clock-names:
130+
items:
131+
- const: lpo
132+
124133
required:
125134
- compatible
126135
- reg

Documentation/devicetree/bindings/net/wireless/microchip,wilc1000.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@ description:
1616

1717
properties:
1818
compatible:
19-
const: microchip,wilc1000
19+
oneOf:
20+
- items:
21+
- const: microchip,wilc3000
22+
- const: microchip,wilc1000
23+
- const: microchip,wilc1000
2024

2125
reg: true
2226

Documentation/networking/net_cachelines/net_device.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ struct net_device_core_stats* core_stats
5252
atomic_t carrier_up_count
5353
atomic_t carrier_down_count
5454
struct iw_handler_def* wireless_handlers
55-
struct iw_public_data* wireless_data
5655
struct ethtool_ops* ethtool_ops
5756
struct l3mdev_ops* l3mdev_ops
5857
struct ndisc_ops* ndisc_ops

drivers/net/ethernet/toshiba/ps3_gelic_wireless.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2566,7 +2566,6 @@ static void gelic_wl_setup_netdev_ops(struct net_device *netdev)
25662566

25672567
netdev->ethtool_ops = &gelic_wl_ethtool_ops;
25682568
netdev->netdev_ops = &gelic_wl_netdevice_ops;
2569-
netdev->wireless_data = &wl->wireless_data;
25702569
netdev->wireless_handlers = &gelic_wl_wext_handler_def;
25712570
}
25722571

drivers/net/ethernet/toshiba/ps3_gelic_wireless.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,6 @@ struct gelic_wl_info {
276276
u8 active_bssid[ETH_ALEN]; /* associated bssid */
277277
unsigned int essid_len;
278278

279-
struct iw_public_data wireless_data;
280279
struct iw_statistics iwstat;
281280
};
282281

drivers/net/wireless/ath/ath10k/mac.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8507,9 +8507,10 @@ static int ath10k_mac_op_set_bitrate_mask(struct ieee80211_hw *hw,
85078507

85088508
static void ath10k_sta_rc_update(struct ieee80211_hw *hw,
85098509
struct ieee80211_vif *vif,
8510-
struct ieee80211_sta *sta,
8510+
struct ieee80211_link_sta *link_sta,
85118511
u32 changed)
85128512
{
8513+
struct ieee80211_sta *sta = link_sta->sta;
85138514
struct ath10k *ar = hw->priv;
85148515
struct ath10k_sta *arsta = (struct ath10k_sta *)sta->drv_priv;
85158516
struct ath10k_vif *arvif = (void *)vif->drv_priv;
@@ -9450,7 +9451,7 @@ static const struct ieee80211_ops ath10k_ops = {
94509451
.reconfig_complete = ath10k_reconfig_complete,
94519452
.get_survey = ath10k_get_survey,
94529453
.set_bitrate_mask = ath10k_mac_op_set_bitrate_mask,
9453-
.sta_rc_update = ath10k_sta_rc_update,
9454+
.link_sta_rc_update = ath10k_sta_rc_update,
94549455
.offset_tsf = ath10k_offset_tsf,
94559456
.ampdu_action = ath10k_ampdu_action,
94569457
.get_et_sset_count = ath10k_debug_get_et_sset_count,

drivers/net/wireless/ath/ath11k/mac.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5079,9 +5079,10 @@ static void ath11k_mac_op_sta_set_4addr(struct ieee80211_hw *hw,
50795079

50805080
static void ath11k_mac_op_sta_rc_update(struct ieee80211_hw *hw,
50815081
struct ieee80211_vif *vif,
5082-
struct ieee80211_sta *sta,
5082+
struct ieee80211_link_sta *link_sta,
50835083
u32 changed)
50845084
{
5085+
struct ieee80211_sta *sta = link_sta->sta;
50855086
struct ath11k *ar = hw->priv;
50865087
struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta);
50875088
struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
@@ -9708,7 +9709,7 @@ static const struct ieee80211_ops ath11k_ops = {
97089709
.sta_state = ath11k_mac_op_sta_state,
97099710
.sta_set_4addr = ath11k_mac_op_sta_set_4addr,
97109711
.sta_set_txpwr = ath11k_mac_op_sta_set_txpwr,
9711-
.sta_rc_update = ath11k_mac_op_sta_rc_update,
9712+
.link_sta_rc_update = ath11k_mac_op_sta_rc_update,
97129713
.conf_tx = ath11k_mac_op_conf_tx,
97139714
.set_antenna = ath11k_mac_op_set_antenna,
97149715
.get_antenna = ath11k_mac_op_get_antenna,

drivers/net/wireless/ath/ath12k/mac.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4737,9 +4737,10 @@ static int ath12k_mac_op_sta_set_txpwr(struct ieee80211_hw *hw,
47374737

47384738
static void ath12k_mac_op_sta_rc_update(struct ieee80211_hw *hw,
47394739
struct ieee80211_vif *vif,
4740-
struct ieee80211_sta *sta,
4740+
struct ieee80211_link_sta *link_sta,
47414741
u32 changed)
47424742
{
4743+
struct ieee80211_sta *sta = link_sta->sta;
47434744
struct ath12k *ar;
47444745
struct ath12k_sta *arsta = ath12k_sta_to_arsta(sta);
47454746
struct ath12k_vif *arvif = ath12k_vif_to_arvif(vif);
@@ -8681,7 +8682,7 @@ static const struct ieee80211_ops ath12k_ops = {
86818682
.set_rekey_data = ath12k_mac_op_set_rekey_data,
86828683
.sta_state = ath12k_mac_op_sta_state,
86838684
.sta_set_txpwr = ath12k_mac_op_sta_set_txpwr,
8684-
.sta_rc_update = ath12k_mac_op_sta_rc_update,
8685+
.link_sta_rc_update = ath12k_mac_op_sta_rc_update,
86858686
.conf_tx = ath12k_mac_op_conf_tx,
86868687
.set_antenna = ath12k_mac_op_set_antenna,
86878688
.get_antenna = ath12k_mac_op_get_antenna,

drivers/net/wireless/ath/ath9k/htc_drv_main.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1357,8 +1357,10 @@ static int ath9k_htc_sta_remove(struct ieee80211_hw *hw,
13571357

13581358
static void ath9k_htc_sta_rc_update(struct ieee80211_hw *hw,
13591359
struct ieee80211_vif *vif,
1360-
struct ieee80211_sta *sta, u32 changed)
1360+
struct ieee80211_link_sta *link_sta,
1361+
u32 changed)
13611362
{
1363+
struct ieee80211_sta *sta = link_sta->sta;
13621364
struct ath9k_htc_sta *ista = (struct ath9k_htc_sta *) sta->drv_priv;
13631365

13641366
if (!(changed & IEEE80211_RC_SUPP_RATES_CHANGED))
@@ -1883,7 +1885,7 @@ struct ieee80211_ops ath9k_htc_ops = {
18831885
.sta_add = ath9k_htc_sta_add,
18841886
.sta_remove = ath9k_htc_sta_remove,
18851887
.conf_tx = ath9k_htc_conf_tx,
1886-
.sta_rc_update = ath9k_htc_sta_rc_update,
1888+
.link_sta_rc_update = ath9k_htc_sta_rc_update,
18871889
.bss_info_changed = ath9k_htc_bss_info_changed,
18881890
.set_key = ath9k_htc_set_key,
18891891
.get_tsf = ath9k_htc_get_tsf,

drivers/net/wireless/ath/wil6210/cfg80211.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1493,6 +1493,7 @@ int wil_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
14931493
}
14941494

14951495
static int wil_cfg80211_set_channel(struct wiphy *wiphy,
1496+
struct net_device *dev,
14961497
struct cfg80211_chan_def *chandef)
14971498
{
14981499
struct wil6210_priv *wil = wiphy_to_wil(wiphy);

drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -947,8 +947,8 @@ int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev)
947947

948948
/* try to attach to the target device */
949949
sdiodev->bus = brcmf_sdio_probe(sdiodev);
950-
if (!sdiodev->bus) {
951-
ret = -ENODEV;
950+
if (IS_ERR(sdiodev->bus)) {
951+
ret = PTR_ERR(sdiodev->bus);
952952
goto out;
953953
}
954954
brcmf_sdiod_host_fixup(sdiodev->func2->card->host);

drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7820,13 +7820,6 @@ s32 brcmf_cfg80211_down(struct net_device *ndev)
78207820
return err;
78217821
}
78227822

7823-
enum nl80211_iftype brcmf_cfg80211_get_iftype(struct brcmf_if *ifp)
7824-
{
7825-
struct wireless_dev *wdev = &ifp->vif->wdev;
7826-
7827-
return wdev->iftype;
7828-
}
7829-
78307823
bool brcmf_get_vif_state_any(struct brcmf_cfg80211_info *cfg,
78317824
unsigned long state)
78327825
{

drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -443,7 +443,6 @@ void brcmf_cfg80211_detach(struct brcmf_cfg80211_info *cfg);
443443
s32 brcmf_cfg80211_up(struct net_device *ndev);
444444
s32 brcmf_cfg80211_down(struct net_device *ndev);
445445
struct cfg80211_ops *brcmf_cfg80211_get_ops(struct brcmf_mp_device *settings);
446-
enum nl80211_iftype brcmf_cfg80211_get_iftype(struct brcmf_if *ifp);
447446

448447
struct brcmf_cfg80211_vif *brcmf_alloc_vif(struct brcmf_cfg80211_info *cfg,
449448
enum nl80211_iftype type);

drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,8 @@ struct brcmf_mp_device *brcmf_get_module_param(struct device *dev,
561561
if (!found) {
562562
/* No platform data for this device, try OF and DMI data */
563563
brcmf_dmi_probe(settings, chip, chiprev);
564-
brcmf_of_probe(dev, bus_type, settings);
564+
if (brcmf_of_probe(dev, bus_type, settings) == -EPROBE_DEFER)
565+
return ERR_PTR(-EPROBE_DEFER);
565566
brcmf_acpi_probe(dev, bus_type, settings);
566567
}
567568
return settings;

drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include <linux/of.h>
77
#include <linux/of_irq.h>
88
#include <linux/of_net.h>
9+
#include <linux/clk.h>
910

1011
#include <defs.h>
1112
#include "debug.h"
@@ -65,12 +66,13 @@ static int brcmf_of_get_country_codes(struct device *dev,
6566
return 0;
6667
}
6768

68-
void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
69-
struct brcmf_mp_device *settings)
69+
int brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
70+
struct brcmf_mp_device *settings)
7071
{
7172
struct brcmfmac_sdio_pd *sdio = &settings->bus.sdio;
7273
struct device_node *root, *np = dev->of_node;
7374
struct of_phandle_args oirq;
75+
struct clk *clk;
7476
const char *prop;
7577
int irq;
7678
int err;
@@ -106,16 +108,22 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
106108
board_type = devm_kstrdup(dev, tmp, GFP_KERNEL);
107109
if (!board_type) {
108110
of_node_put(root);
109-
return;
111+
return 0;
110112
}
111113
strreplace(board_type, '/', '-');
112114
settings->board_type = board_type;
113115

114116
of_node_put(root);
115117
}
116118

119+
clk = devm_clk_get_optional_enabled_with_rate(dev, "lpo", 32768);
120+
if (IS_ERR(clk))
121+
return PTR_ERR(clk);
122+
123+
brcmf_dbg(INFO, "%s LPO clock\n", clk ? "enable" : "no");
124+
117125
if (!np || !of_device_is_compatible(np, "brcm,bcm4329-fmac"))
118-
return;
126+
return 0;
119127

120128
err = brcmf_of_get_country_codes(dev, settings);
121129
if (err)
@@ -124,23 +132,25 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
124132
of_get_mac_address(np, settings->mac);
125133

126134
if (bus_type != BRCMF_BUSTYPE_SDIO)
127-
return;
135+
return 0;
128136

129137
if (of_property_read_u32(np, "brcm,drive-strength", &val) == 0)
130138
sdio->drive_strength = val;
131139

132140
/* make sure there are interrupts defined in the node */
133141
if (of_irq_parse_one(np, 0, &oirq))
134-
return;
142+
return 0;
135143

136144
irq = irq_create_of_mapping(&oirq);
137145
if (!irq) {
138146
brcmf_err("interrupt could not be mapped\n");
139-
return;
147+
return 0;
140148
}
141-
irqf = irqd_get_trigger_type(irq_get_irq_data(irq));
149+
irqf = irq_get_trigger_type(irq);
142150

143151
sdio->oob_irq_supported = true;
144152
sdio->oob_irq_nr = irq;
145153
sdio->oob_irq_flags = irqf;
154+
155+
return 0;
146156
}

drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33
* Copyright (c) 2014 Broadcom Corporation
44
*/
55
#ifdef CONFIG_OF
6-
void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
7-
struct brcmf_mp_device *settings);
6+
int brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
7+
struct brcmf_mp_device *settings);
88
#else
9-
static void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
10-
struct brcmf_mp_device *settings)
9+
static int brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
10+
struct brcmf_mp_device *settings)
1111
{
12+
return 0;
1213
}
1314
#endif /* CONFIG_OF */

0 commit comments

Comments
 (0)