Lines Matching full:wiphy

621 void cfg80211_set_dfs_state(struct wiphy *wiphy,
636 c = ieee80211_get_channel_khz(wiphy, freq);
687 static bool cfg80211_dfs_permissive_chan(struct wiphy *wiphy,
692 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
694 lockdep_assert_held(&rdev->wiphy.mtx);
696 if (!wiphy_ext_feature_isset(&rdev->wiphy,
708 list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
718 static int cfg80211_get_chans_dfs_required(struct wiphy *wiphy,
729 c = ieee80211_get_channel_khz(wiphy, freq);
734 !cfg80211_dfs_permissive_chan(wiphy, iftype, c))
742 int cfg80211_chandef_dfs_required(struct wiphy *wiphy,
761 ret = cfg80211_get_chans_dfs_required(wiphy, chandef, iftype);
783 bool cfg80211_chandef_dfs_usable(struct wiphy *wiphy,
803 c = ieee80211_get_channel_khz(wiphy, freq);
869 lockdep_assert_wiphy(wdev->wiphy);
933 static bool cfg80211_is_wiphy_oper_chan(struct wiphy *wiphy,
938 lockdep_assert_wiphy(wiphy);
940 list_for_each_entry(wdev, &wiphy->wdev_list, list) {
965 bool cfg80211_any_wiphy_oper_chan(struct wiphy *wiphy,
978 if (!reg_dfs_domain_same(wiphy, &rdev->wiphy))
981 guard(wiphy)(&rdev->wiphy);
983 found = cfg80211_is_wiphy_oper_chan(&rdev->wiphy, chan) ||
993 static bool cfg80211_chandef_dfs_available(struct wiphy *wiphy,
1007 dfs_offload = wiphy_ext_feature_isset(wiphy,
1016 c = ieee80211_get_channel_khz(wiphy, freq);
1033 cfg80211_chandef_dfs_cac_time(struct wiphy *wiphy,
1048 c = ieee80211_get_channel_khz(wiphy, freq);
1081 static bool cfg80211_edmg_usable(struct wiphy *wiphy, u8 edmg_channels,
1112 chan = ieee80211_get_channel(wiphy, freq);
1133 static bool cfg80211_s1g_usable(struct wiphy *wiphy,
1158 chan = ieee80211_get_channel_khz(wiphy, freq_khz);
1167 sibling = cfg80211_s1g_get_primary_sibling(wiphy, chandef);
1182 bool _cfg80211_chandef_usable(struct wiphy *wiphy,
1200 ht_cap = &wiphy->bands[chandef->chan->band]->ht_cap;
1201 vht_cap = &wiphy->bands[chandef->chan->band]->vht_cap;
1202 edmg_cap = &wiphy->bands[chandef->chan->band]->edmg_cap;
1207 return cfg80211_s1g_usable(wiphy, chandef);
1210 !cfg80211_edmg_usable(wiphy,
1292 sband = wiphy->bands[NL80211_BAND_6GHZ];
1334 c = ieee80211_get_channel_khz(wiphy, freq);
1346 bool cfg80211_chandef_usable(struct wiphy *wiphy,
1350 return _cfg80211_chandef_usable(wiphy, chandef, prohibited_flags, 0);
1425 static bool cfg80211_ir_permissive_chan(struct wiphy *wiphy,
1430 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
1432 lockdep_assert_held(&rdev->wiphy.mtx);
1435 !(wiphy->regulatory_flags & REGULATORY_ENABLE_RELAX_NO_IR))
1458 list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
1469 static bool _cfg80211_reg_can_beacon(struct wiphy *wiphy,
1478 trace_cfg80211_reg_can_beacon(wiphy, chandef, iftype,
1482 if (!_cfg80211_chandef_usable(wiphy, chandef,
1486 dfs_required = cfg80211_chandef_dfs_required(wiphy, chandef, iftype);
1490 cfg80211_chandef_dfs_available(wiphy, chandef)) {
1497 !_cfg80211_chandef_usable(wiphy, chandef,
1501 res = _cfg80211_chandef_usable(wiphy, chandef,
1509 bool cfg80211_reg_check_beaconing(struct wiphy *wiphy,
1513 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
1524 lockdep_assert_held(&rdev->wiphy.mtx);
1525 check_no_ir = !cfg80211_ir_permissive_chan(wiphy, cfg->iftype,
1538 return _cfg80211_reg_can_beacon(wiphy, chandef, cfg->iftype,
1556 bool cfg80211_any_usable_channels(struct wiphy *wiphy,
1565 struct ieee80211_supported_band *sband = wiphy->bands[idx];
1590 lockdep_assert_wiphy(wdev->wiphy);