|
@@ -1687,9 +1687,7 @@ int wlcore_cmd_regdomain_config_locked(struct wl1271 *wl)
|
|
|
{
|
|
|
struct wl12xx_cmd_regdomain_dfs_config *cmd = NULL;
|
|
|
int ret = 0, i, b, ch_bit_idx;
|
|
|
- struct ieee80211_channel *channel;
|
|
|
u32 tmp_ch_bitmap[2];
|
|
|
- u16 ch;
|
|
|
struct wiphy *wiphy = wl->hw->wiphy;
|
|
|
struct ieee80211_supported_band *band;
|
|
|
bool timeout = false;
|
|
@@ -1704,12 +1702,16 @@ int wlcore_cmd_regdomain_config_locked(struct wl1271 *wl)
|
|
|
for (b = IEEE80211_BAND_2GHZ; b <= IEEE80211_BAND_5GHZ; b++) {
|
|
|
band = wiphy->bands[b];
|
|
|
for (i = 0; i < band->n_channels; i++) {
|
|
|
- channel = &band->channels[i];
|
|
|
- ch = channel->hw_value;
|
|
|
+ struct ieee80211_channel *channel = &band->channels[i];
|
|
|
+ u16 ch = channel->hw_value;
|
|
|
+ u32 flags = channel->flags;
|
|
|
|
|
|
- if (channel->flags & (IEEE80211_CHAN_DISABLED |
|
|
|
- IEEE80211_CHAN_RADAR |
|
|
|
- IEEE80211_CHAN_NO_IR))
|
|
|
+ if (flags & (IEEE80211_CHAN_DISABLED |
|
|
|
+ IEEE80211_CHAN_NO_IR))
|
|
|
+ continue;
|
|
|
+
|
|
|
+ if ((flags & IEEE80211_CHAN_RADAR) &&
|
|
|
+ channel->dfs_state != NL80211_DFS_AVAILABLE)
|
|
|
continue;
|
|
|
|
|
|
ch_bit_idx = wlcore_get_reg_conf_ch_idx(b, ch);
|