Lines Matching refs:chandef
3233 const struct cfg80211_chan_def *chandef, in nl80211_parse_punct_bitmap() argument
3240 if (!cfg80211_valid_disable_subchannel_bitmap(punct_bitmap, chandef)) in nl80211_parse_punct_bitmap()
3248 struct cfg80211_chan_def *chandef) in nl80211_parse_chandef() argument
3266 memset(chandef, 0, sizeof(*chandef)); in nl80211_parse_chandef()
3267 chandef->chan = ieee80211_get_channel_khz(&rdev->wiphy, control_freq); in nl80211_parse_chandef()
3268 chandef->width = NL80211_CHAN_WIDTH_20_NOHT; in nl80211_parse_chandef()
3269 chandef->center_freq1 = KHZ_TO_MHZ(control_freq); in nl80211_parse_chandef()
3270 chandef->freq1_offset = control_freq % 1000; in nl80211_parse_chandef()
3271 chandef->center_freq2 = 0; in nl80211_parse_chandef()
3274 if (!chandef->chan || chandef->chan->flags & IEEE80211_CHAN_DISABLED) { in nl80211_parse_chandef()
3290 cfg80211_chandef_create(chandef, chandef->chan, in nl80211_parse_chandef()
3294 chandef->center_freq1 != nla_get_u32(attrs[NL80211_ATTR_CENTER_FREQ1])) { in nl80211_parse_chandef()
3316 chandef->width = in nl80211_parse_chandef()
3318 if (chandef->chan->band == NL80211_BAND_S1GHZ) { in nl80211_parse_chandef()
3320 if (chandef->width != ieee80211_s1g_channel_width(chandef->chan)) { in nl80211_parse_chandef()
3328 chandef->center_freq1 = in nl80211_parse_chandef()
3331 chandef->freq1_offset = nla_get_u32( in nl80211_parse_chandef()
3334 chandef->freq1_offset = 0; in nl80211_parse_chandef()
3337 chandef->center_freq2 = in nl80211_parse_chandef()
3342 chandef->edmg.channels = in nl80211_parse_chandef()
3346 chandef->edmg.bw_config = in nl80211_parse_chandef()
3349 chandef->edmg.bw_config = 0; in nl80211_parse_chandef()
3350 chandef->edmg.channels = 0; in nl80211_parse_chandef()
3353 if (!cfg80211_chandef_valid(chandef)) { in nl80211_parse_chandef()
3358 if (!cfg80211_chandef_usable(&rdev->wiphy, chandef, in nl80211_parse_chandef()
3364 if ((chandef->width == NL80211_CHAN_WIDTH_5 || in nl80211_parse_chandef()
3365 chandef->width == NL80211_CHAN_WIDTH_10) && in nl80211_parse_chandef()
3379 struct cfg80211_chan_def chandef; in __nl80211_set_channel() local
3398 result = nl80211_parse_chandef(rdev, info, &chandef); in __nl80211_set_channel()
3405 if (!cfg80211_reg_can_beacon_relax(&rdev->wiphy, &chandef, in __nl80211_set_channel()
3417 cur_chan = wdev->links[link_id].ap.chandef.chan; in __nl80211_set_channel()
3418 if (chandef.chan != cur_chan) in __nl80211_set_channel()
3422 switch (wdev->links[link_id].ap.chandef.width) { in __nl80211_set_channel()
3435 switch (chandef.width) { in __nl80211_set_channel()
3449 &chandef); in __nl80211_set_channel()
3452 wdev->links[link_id].ap.chandef = chandef; in __nl80211_set_channel()
3454 wdev->u.ap.preset_chandef = chandef; in __nl80211_set_channel()
3458 return cfg80211_set_mesh_channel(rdev, wdev, &chandef); in __nl80211_set_channel()
3460 return cfg80211_set_monitor_channel(rdev, &chandef); in __nl80211_set_channel()
3836 int nl80211_send_chandef(struct sk_buff *msg, const struct cfg80211_chan_def *chandef) in nl80211_send_chandef() argument
3838 if (WARN_ON(!cfg80211_chandef_valid(chandef))) in nl80211_send_chandef()
3842 chandef->chan->center_freq)) in nl80211_send_chandef()
3845 chandef->chan->freq_offset)) in nl80211_send_chandef()
3847 switch (chandef->width) { in nl80211_send_chandef()
3852 cfg80211_get_chandef_type(chandef))) in nl80211_send_chandef()
3858 if (nla_put_u32(msg, NL80211_ATTR_CHANNEL_WIDTH, chandef->width)) in nl80211_send_chandef()
3860 if (nla_put_u32(msg, NL80211_ATTR_CENTER_FREQ1, chandef->center_freq1)) in nl80211_send_chandef()
3862 if (chandef->center_freq2 && in nl80211_send_chandef()
3863 nla_put_u32(msg, NL80211_ATTR_CENTER_FREQ2, chandef->center_freq2)) in nl80211_send_chandef()
3902 struct cfg80211_chan_def chandef = {}; in nl80211_send_iface() local
3905 ret = rdev_get_channel(rdev, wdev, 0, &chandef); in nl80211_send_iface()
3906 if (ret == 0 && nl80211_send_chandef(msg, &chandef)) in nl80211_send_iface()
3968 struct cfg80211_chan_def chandef = {}; in nl80211_send_iface() local
3980 ret = rdev_get_channel(rdev, wdev, link_id, &chandef); in nl80211_send_iface()
3981 if (ret == 0 && nl80211_send_chandef(msg, &chandef)) in nl80211_send_iface()
5120 struct cfg80211_chan_def *chandef; in he_get_txmcsmap() local
5123 chandef = wdev_chandef(wdev, link_id); in he_get_txmcsmap()
5124 if (!chandef) { in he_get_txmcsmap()
5132 switch (chandef->width) { in he_get_txmcsmap()
5861 params->chandef = wdev->u.ap.preset_chandef; in nl80211_get_ap_channel()
5958 struct ieee80211_channel *channel = params->chandef.chan; in nl80211_validate_ap_phy_operation()
6106 err = nl80211_parse_chandef(rdev, info, ¶ms->chandef); in nl80211_start_ap()
6114 params->chandef = wdev->u.ap.preset_chandef; in nl80211_start_ap()
6122 ¶ms->chandef, in nl80211_start_ap()
6128 if (!cfg80211_reg_can_beacon_relax(&rdev->wiphy, ¶ms->chandef, in nl80211_start_ap()
6144 err = validate_beacon_tx_rate(rdev, params->chandef.chan->band, in nl80211_start_ap()
6262 wdev->links[link_id].ap.chandef = params->chandef; in nl80211_start_ap()
9080 struct cfg80211_chan_def *chandef; in cfg80211_off_channel_oper_allowed() local
9082 chandef = wdev_chandef(wdev, link_id); in cfg80211_off_channel_oper_allowed()
9083 if (!chandef || !chandef->chan) in cfg80211_off_channel_oper_allowed()
9093 if (chandef->chan->flags & IEEE80211_CHAN_RADAR) in cfg80211_off_channel_oper_allowed()
10007 struct cfg80211_chan_def chandef; in nl80211_start_radar_detection() local
10020 err = nl80211_parse_chandef(rdev, info, &chandef); in nl80211_start_radar_detection()
10024 err = cfg80211_chandef_dfs_required(wiphy, &chandef, wdev->iftype); in nl80211_start_radar_detection()
10033 if (!cfg80211_chandef_dfs_usable(wiphy, &chandef)) { in nl80211_start_radar_detection()
10040 &chandef); in nl80211_start_radar_detection()
10065 cac_time_ms = cfg80211_chandef_dfs_cac_time(&rdev->wiphy, &chandef); in nl80211_start_radar_detection()
10069 err = rdev_start_radar_detection(rdev, dev, &chandef, cac_time_ms); in nl80211_start_radar_detection()
10071 wdev->links[0].ap.chandef = chandef; in nl80211_start_radar_detection()
10089 struct cfg80211_chan_def chandef; in nl80211_notify_radar_detection() local
10100 err = nl80211_parse_chandef(rdev, info, &chandef); in nl80211_notify_radar_detection()
10106 err = cfg80211_chandef_dfs_required(wiphy, &chandef, wdev->iftype); in nl80211_notify_radar_detection()
10121 if (chandef.chan->dfs_state == NL80211_DFS_UNAVAILABLE) in nl80211_notify_radar_detection()
10124 cfg80211_set_dfs_state(wiphy, &chandef, NL80211_DFS_UNAVAILABLE); in nl80211_notify_radar_detection()
10128 rdev->radar_chandef = chandef; in nl80211_notify_radar_detection()
10300 err = nl80211_parse_chandef(rdev, info, ¶ms.chandef); in nl80211_channel_switch()
10304 if (!cfg80211_reg_can_beacon_relax(&rdev->wiphy, ¶ms.chandef, in nl80211_channel_switch()
10311 ¶ms.chandef, in nl80211_channel_switch()
10330 ¶ms.chandef, in nl80211_channel_switch()
11478 err = nl80211_parse_chandef(rdev, info, &ibss.chandef); in nl80211_join_ibss()
11482 if (!cfg80211_reg_can_beacon(&rdev->wiphy, &ibss.chandef, in nl80211_join_ibss()
11486 switch (ibss.chandef.width) { in nl80211_join_ibss()
11520 wiphy->bands[ibss.chandef.chan->band]; in nl80211_join_ibss()
11553 if ((ibss.chandef.width != NL80211_CHAN_WIDTH_20_NOHT) && in nl80211_join_ibss()
12426 struct cfg80211_chan_def chandef; in nl80211_remain_on_channel() local
12451 err = nl80211_parse_chandef(rdev, info, &chandef); in nl80211_remain_on_channel()
12456 if (!cfg80211_off_channel_oper_allowed(wdev, chandef.chan)) { in nl80211_remain_on_channel()
12469 compat_chandef = cfg80211_chandef_compatible(&chandef, in nl80211_remain_on_channel()
12472 if (compat_chandef != &chandef) { in nl80211_remain_on_channel()
12490 err = rdev_remain_on_channel(rdev, wdev, chandef.chan, in nl80211_remain_on_channel()
12609 struct cfg80211_chan_def chandef; in nl80211_tx_mgmt() local
12671 chandef.chan = NULL; in nl80211_tx_mgmt()
12673 err = nl80211_parse_chandef(rdev, info, &chandef); in nl80211_tx_mgmt()
12678 if (!chandef.chan && params.offchan) in nl80211_tx_mgmt()
12683 !cfg80211_off_channel_oper_allowed(wdev, chandef.chan)) { in nl80211_tx_mgmt()
12735 params.chan = chandef.chan; in nl80211_tx_mgmt()
13105 err = nl80211_parse_chandef(rdev, info, &setup.chandef); in nl80211_join_ocb()
13180 err = nl80211_parse_chandef(rdev, info, &setup.chandef); in nl80211_join_mesh()
13185 setup.chandef.chan = NULL; in nl80211_join_mesh()
13194 if (!setup.chandef.chan) in nl80211_join_mesh()
13197 sband = rdev->wiphy.bands[setup.chandef.chan->band]; in nl80211_join_mesh()
13213 if (!setup.chandef.chan) in nl80211_join_mesh()
13216 err = validate_beacon_tx_rate(rdev, setup.chandef.chan->band, in nl80211_join_mesh()
15498 struct cfg80211_chan_def chandef = {}; in nl80211_tdls_channel_switch() local
15519 err = nl80211_parse_chandef(rdev, info, &chandef); in nl80211_tdls_channel_switch()
15528 if (chandef.chan->band == NL80211_BAND_2GHZ && in nl80211_tdls_channel_switch()
15529 chandef.width != NL80211_CHAN_WIDTH_20_NOHT && in nl80211_tdls_channel_switch()
15530 chandef.width != NL80211_CHAN_WIDTH_20) in nl80211_tdls_channel_switch()
15534 if (!cfg80211_reg_can_beacon_relax(&rdev->wiphy, &chandef, in nl80211_tdls_channel_switch()
15539 if (cfg80211_chandef_dfs_required(wdev->wiphy, &chandef, wdev->iftype)) in nl80211_tdls_channel_switch()
15546 err = rdev_tdls_channel_switch(rdev, dev, addr, oper_class, &chandef); in nl80211_tdls_channel_switch()
19483 struct cfg80211_chan_def *chandef, in nl80211_ch_switch_notify() argument
19509 if (nl80211_send_chandef(msg, chandef)) in nl80211_ch_switch_notify()
19534 struct cfg80211_chan_def *chandef, in cfg80211_ch_switch_notify() argument
19544 trace_cfg80211_ch_switch_notify(dev, chandef, link_id, punct_bitmap); in cfg80211_ch_switch_notify()
19551 chandef->chan); in cfg80211_ch_switch_notify()
19554 wdev->u.mesh.chandef = *chandef; in cfg80211_ch_switch_notify()
19555 wdev->u.mesh.preset_chandef = *chandef; in cfg80211_ch_switch_notify()
19559 wdev->links[link_id].ap.chandef = *chandef; in cfg80211_ch_switch_notify()
19562 wdev->u.ibss.chandef = *chandef; in cfg80211_ch_switch_notify()
19571 nl80211_ch_switch_notify(rdev, dev, link_id, chandef, GFP_KERNEL, in cfg80211_ch_switch_notify()
19578 struct cfg80211_chan_def *chandef, in cfg80211_ch_switch_started_notify() argument
19589 trace_cfg80211_ch_switch_started_notify(dev, chandef, link_id, in cfg80211_ch_switch_started_notify()
19593 nl80211_ch_switch_notify(rdev, dev, link_id, chandef, GFP_KERNEL, in cfg80211_ch_switch_started_notify()
19646 const struct cfg80211_chan_def *chandef, in nl80211_radar_notify() argument
19679 if (nl80211_send_chandef(msg, chandef)) in nl80211_radar_notify()