On Tue, 2024-01-16 at 19:29 +0100, Arend Van Spriel wrote: > > > > > > I modified brcmf_construct_chaninfo() to store the > > > IEEE80211_CHAN_DISABLED flag within orig_flags in case the flags had it. > > > This avoid the issue. Not sure this is the proper solution. > > > > orig_flags are from when the wiphy is registered - does the driver only > > set up proper flags after that? > > Long time ago we discussed about this. So brcmfmac provides a superset of > channels during wiphy_register() and none of them are disabled as they > could never be enabled. After that the driver may disable a subset as it > syncs with the device. I think we used strict custom reg flag, but that > seems to have gone. Could that have the result Stefan is observing? > All this confuses me way more than it should, I guess. We do still have REGULATORY_STRICT_REG, no? And that sets even orig_flags: if (lr->initiator == NL80211_REGDOM_SET_BY_DRIVER && request_wiphy && request_wiphy == wiphy && request_wiphy->regulatory_flags & REGULATORY_STRICT_REG) { /* * This guarantees the driver's requested regulatory domain * will always be used as a base for further regulatory * settings */ chan->flags = chan->orig_flags = map_regdom_flags(reg_rule->flags) | bw_flags; But brcmf_construct_chaninfo() looks a bit more like it really should be setting a custom regulatory with all the channels listed, a bit like what iwlwifi/mvm does, with REGULATORY_WIPHY_SELF_MANAGED? Maybe we should start from the beginning: what does this actually _want_? johannes