diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 75 |
1 files changed, 1 insertions, 74 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index 70149241e176..4311a56afbb3 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
@@ -108,79 +108,6 @@ static void iwl_set_rxon_hwcrypto(struct iwl_priv *priv, int hw_decrypt) | |||
108 | } | 108 | } |
109 | 109 | ||
110 | /** | 110 | /** |
111 | * iwl_check_rxon_cmd - validate RXON structure is valid | ||
112 | * | ||
113 | * NOTE: This is really only useful during development and can eventually | ||
114 | * be #ifdef'd out once the driver is stable and folks aren't actively | ||
115 | * making changes | ||
116 | */ | ||
117 | static int iwl_check_rxon_cmd(struct iwl_rxon_cmd *rxon) | ||
118 | { | ||
119 | int error = 0; | ||
120 | int counter = 1; | ||
121 | |||
122 | if (rxon->flags & RXON_FLG_BAND_24G_MSK) { | ||
123 | error |= le32_to_cpu(rxon->flags & | ||
124 | (RXON_FLG_TGJ_NARROW_BAND_MSK | | ||
125 | RXON_FLG_RADAR_DETECT_MSK)); | ||
126 | if (error) | ||
127 | IWL_WARNING("check 24G fields %d | %d\n", | ||
128 | counter++, error); | ||
129 | } else { | ||
130 | error |= (rxon->flags & RXON_FLG_SHORT_SLOT_MSK) ? | ||
131 | 0 : le32_to_cpu(RXON_FLG_SHORT_SLOT_MSK); | ||
132 | if (error) | ||
133 | IWL_WARNING("check 52 fields %d | %d\n", | ||
134 | counter++, error); | ||
135 | error |= le32_to_cpu(rxon->flags & RXON_FLG_CCK_MSK); | ||
136 | if (error) | ||
137 | IWL_WARNING("check 52 CCK %d | %d\n", | ||
138 | counter++, error); | ||
139 | } | ||
140 | error |= (rxon->node_addr[0] | rxon->bssid_addr[0]) & 0x1; | ||
141 | if (error) | ||
142 | IWL_WARNING("check mac addr %d | %d\n", counter++, error); | ||
143 | |||
144 | /* make sure basic rates 6Mbps and 1Mbps are supported */ | ||
145 | error |= (((rxon->ofdm_basic_rates & IWL_RATE_6M_MASK) == 0) && | ||
146 | ((rxon->cck_basic_rates & IWL_RATE_1M_MASK) == 0)); | ||
147 | if (error) | ||
148 | IWL_WARNING("check basic rate %d | %d\n", counter++, error); | ||
149 | |||
150 | error |= (le16_to_cpu(rxon->assoc_id) > 2007); | ||
151 | if (error) | ||
152 | IWL_WARNING("check assoc id %d | %d\n", counter++, error); | ||
153 | |||
154 | error |= ((rxon->flags & (RXON_FLG_CCK_MSK | RXON_FLG_SHORT_SLOT_MSK)) | ||
155 | == (RXON_FLG_CCK_MSK | RXON_FLG_SHORT_SLOT_MSK)); | ||
156 | if (error) | ||
157 | IWL_WARNING("check CCK and short slot %d | %d\n", | ||
158 | counter++, error); | ||
159 | |||
160 | error |= ((rxon->flags & (RXON_FLG_CCK_MSK | RXON_FLG_AUTO_DETECT_MSK)) | ||
161 | == (RXON_FLG_CCK_MSK | RXON_FLG_AUTO_DETECT_MSK)); | ||
162 | if (error) | ||
163 | IWL_WARNING("check CCK & auto detect %d | %d\n", | ||
164 | counter++, error); | ||
165 | |||
166 | error |= ((rxon->flags & (RXON_FLG_AUTO_DETECT_MSK | | ||
167 | RXON_FLG_TGG_PROTECT_MSK)) == RXON_FLG_TGG_PROTECT_MSK); | ||
168 | if (error) | ||
169 | IWL_WARNING("check TGG and auto detect %d | %d\n", | ||
170 | counter++, error); | ||
171 | |||
172 | if (error) | ||
173 | IWL_WARNING("Tuning to channel %d\n", | ||
174 | le16_to_cpu(rxon->channel)); | ||
175 | |||
176 | if (error) { | ||
177 | IWL_ERROR("Not a valid iwl_rxon_assoc_cmd field values\n"); | ||
178 | return -1; | ||
179 | } | ||
180 | return 0; | ||
181 | } | ||
182 | |||
183 | /** | ||
184 | * iwl_full_rxon_required - check if full RXON (vs RXON_ASSOC) cmd is needed | 111 | * iwl_full_rxon_required - check if full RXON (vs RXON_ASSOC) cmd is needed |
185 | * @priv: staging_rxon is compared to active_rxon | 112 | * @priv: staging_rxon is compared to active_rxon |
186 | * | 113 | * |
@@ -252,7 +179,7 @@ static int iwl_commit_rxon(struct iwl_priv *priv) | |||
252 | * 5000, but will not damage 4965 */ | 179 | * 5000, but will not damage 4965 */ |
253 | priv->staging_rxon.flags |= RXON_FLG_SELF_CTS_EN; | 180 | priv->staging_rxon.flags |= RXON_FLG_SELF_CTS_EN; |
254 | 181 | ||
255 | ret = iwl_check_rxon_cmd(&priv->staging_rxon); | 182 | ret = iwl_agn_check_rxon_cmd(&priv->staging_rxon); |
256 | if (ret) { | 183 | if (ret) { |
257 | IWL_ERROR("Invalid RXON configuration. Not committing.\n"); | 184 | IWL_ERROR("Invalid RXON configuration. Not committing.\n"); |
258 | return -EINVAL; | 185 | return -EINVAL; |