Thread (1 message) 1 message, 1 author, 2017-01-02

Re: [PATCH V3 2/2] cfg80211: support ieee80211-freq-limit DT property

From: Rafał Miłecki <hidden>
Date: 2017-01-02 22:16:12
Also in: linux-wireless

On 2 January 2017 at 21:12, Arend van Spriel
[off-list ref] wrote:
On 02-01-17 18:52, Johannes Berg wrote:
quoted
quoted
+static void wiphy_freq_limits_apply(struct wiphy *wiphy)
[...]
quoted
+                    if (!wiphy_freq_limits_valid_chan(wiphy,
chan)) {
+                            pr_debug("Disabling freq %d MHz as
it's out of OF limits\n",
+                                     chan->center_freq);
+                            chan->flags |=
IEEE80211_CHAN_DISABLED;
I think you didn't address the problem in the best way now.

The problem with the channel sharing was the way you're applying the
limits - at runtime. This is now OK since the new function shouldn't be
called when the channel structs are shared, but hooking it all into thes
regulatory code is now no longer needed.

What you can do now, when reading the OF data, is actually apply it to
the channel flags immediately. If done *before* wiphy_register(), these
flags will be preserved forever, so you no longer need any hooks in
regulatory code at all - you can just set the original channel flags
according to the OF data.
I suppose this then can also be done early in the wiphy_register()
function itself, right?
When driver calls wiphy_apply_custom_regulatory I need to already have
limits read from the DT (at least in my current implementation, it may
change, but I need help understanding flow first). As
wiphy_apply_custom_regulatory has to be called before wiphy_register,
I can't read DT so late (in wiphy_register).

-- 
Rafał
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help