diff options
author | Eyal Shapira <eyal@wizery.com> | 2014-03-15 23:23:21 -0400 |
---|---|---|
committer | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2014-03-16 02:55:06 -0400 |
commit | 8930b05090acd321b1fc7c642528c697cb105c42 (patch) | |
tree | d7a42b17ef5aa52644964044d9ed832fa9e05d73 /drivers/net | |
parent | 833df4a81d06830bd4d24ad26b76656f62d5fac1 (diff) |
iwlwifi: mvm: rs: fix search cycle rules
We should explore all possible columns when searching to be
as resilient as possible to changing conditions. This fixes
for example a scenario where even after a sudden creation of
rssi difference between the 2 antennas we would keep doing MIMO
at a low rate instead of switching to SISO at a higher rate using
the better antenna which was the optimal configuration.
Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/rs.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/rs.c b/drivers/net/wireless/iwlwifi/mvm/rs.c index ad8334239106..4e16d7c92004 100644 --- a/drivers/net/wireless/iwlwifi/mvm/rs.c +++ b/drivers/net/wireless/iwlwifi/mvm/rs.c | |||
@@ -211,9 +211,9 @@ static const struct rs_tx_column rs_tx_columns[] = { | |||
211 | .next_columns = { | 211 | .next_columns = { |
212 | RS_COLUMN_LEGACY_ANT_B, | 212 | RS_COLUMN_LEGACY_ANT_B, |
213 | RS_COLUMN_SISO_ANT_A, | 213 | RS_COLUMN_SISO_ANT_A, |
214 | RS_COLUMN_SISO_ANT_B, | ||
214 | RS_COLUMN_MIMO2, | 215 | RS_COLUMN_MIMO2, |
215 | RS_COLUMN_INVALID, | 216 | RS_COLUMN_MIMO2_SGI, |
216 | RS_COLUMN_INVALID, | ||
217 | }, | 217 | }, |
218 | }, | 218 | }, |
219 | [RS_COLUMN_LEGACY_ANT_B] = { | 219 | [RS_COLUMN_LEGACY_ANT_B] = { |
@@ -221,10 +221,10 @@ static const struct rs_tx_column rs_tx_columns[] = { | |||
221 | .ant = ANT_B, | 221 | .ant = ANT_B, |
222 | .next_columns = { | 222 | .next_columns = { |
223 | RS_COLUMN_LEGACY_ANT_A, | 223 | RS_COLUMN_LEGACY_ANT_A, |
224 | RS_COLUMN_SISO_ANT_A, | ||
224 | RS_COLUMN_SISO_ANT_B, | 225 | RS_COLUMN_SISO_ANT_B, |
225 | RS_COLUMN_MIMO2, | 226 | RS_COLUMN_MIMO2, |
226 | RS_COLUMN_INVALID, | 227 | RS_COLUMN_MIMO2_SGI, |
227 | RS_COLUMN_INVALID, | ||
228 | }, | 228 | }, |
229 | }, | 229 | }, |
230 | [RS_COLUMN_SISO_ANT_A] = { | 230 | [RS_COLUMN_SISO_ANT_A] = { |
@@ -234,8 +234,8 @@ static const struct rs_tx_column rs_tx_columns[] = { | |||
234 | RS_COLUMN_SISO_ANT_B, | 234 | RS_COLUMN_SISO_ANT_B, |
235 | RS_COLUMN_MIMO2, | 235 | RS_COLUMN_MIMO2, |
236 | RS_COLUMN_SISO_ANT_A_SGI, | 236 | RS_COLUMN_SISO_ANT_A_SGI, |
237 | RS_COLUMN_INVALID, | 237 | RS_COLUMN_SISO_ANT_B_SGI, |
238 | RS_COLUMN_INVALID, | 238 | RS_COLUMN_MIMO2_SGI, |
239 | }, | 239 | }, |
240 | .checks = { | 240 | .checks = { |
241 | rs_siso_allow, | 241 | rs_siso_allow, |
@@ -248,8 +248,8 @@ static const struct rs_tx_column rs_tx_columns[] = { | |||
248 | RS_COLUMN_SISO_ANT_A, | 248 | RS_COLUMN_SISO_ANT_A, |
249 | RS_COLUMN_MIMO2, | 249 | RS_COLUMN_MIMO2, |
250 | RS_COLUMN_SISO_ANT_B_SGI, | 250 | RS_COLUMN_SISO_ANT_B_SGI, |
251 | RS_COLUMN_INVALID, | 251 | RS_COLUMN_SISO_ANT_A_SGI, |
252 | RS_COLUMN_INVALID, | 252 | RS_COLUMN_MIMO2_SGI, |
253 | }, | 253 | }, |
254 | .checks = { | 254 | .checks = { |
255 | rs_siso_allow, | 255 | rs_siso_allow, |
@@ -263,8 +263,8 @@ static const struct rs_tx_column rs_tx_columns[] = { | |||
263 | RS_COLUMN_SISO_ANT_B_SGI, | 263 | RS_COLUMN_SISO_ANT_B_SGI, |
264 | RS_COLUMN_MIMO2_SGI, | 264 | RS_COLUMN_MIMO2_SGI, |
265 | RS_COLUMN_SISO_ANT_A, | 265 | RS_COLUMN_SISO_ANT_A, |
266 | RS_COLUMN_INVALID, | 266 | RS_COLUMN_SISO_ANT_B, |
267 | RS_COLUMN_INVALID, | 267 | RS_COLUMN_MIMO2, |
268 | }, | 268 | }, |
269 | .checks = { | 269 | .checks = { |
270 | rs_siso_allow, | 270 | rs_siso_allow, |
@@ -279,8 +279,8 @@ static const struct rs_tx_column rs_tx_columns[] = { | |||
279 | RS_COLUMN_SISO_ANT_A_SGI, | 279 | RS_COLUMN_SISO_ANT_A_SGI, |
280 | RS_COLUMN_MIMO2_SGI, | 280 | RS_COLUMN_MIMO2_SGI, |
281 | RS_COLUMN_SISO_ANT_B, | 281 | RS_COLUMN_SISO_ANT_B, |
282 | RS_COLUMN_INVALID, | 282 | RS_COLUMN_SISO_ANT_A, |
283 | RS_COLUMN_INVALID, | 283 | RS_COLUMN_MIMO2, |
284 | }, | 284 | }, |
285 | .checks = { | 285 | .checks = { |
286 | rs_siso_allow, | 286 | rs_siso_allow, |
@@ -292,10 +292,10 @@ static const struct rs_tx_column rs_tx_columns[] = { | |||
292 | .ant = ANT_AB, | 292 | .ant = ANT_AB, |
293 | .next_columns = { | 293 | .next_columns = { |
294 | RS_COLUMN_SISO_ANT_A, | 294 | RS_COLUMN_SISO_ANT_A, |
295 | RS_COLUMN_SISO_ANT_B, | ||
296 | RS_COLUMN_SISO_ANT_A_SGI, | ||
297 | RS_COLUMN_SISO_ANT_B_SGI, | ||
295 | RS_COLUMN_MIMO2_SGI, | 298 | RS_COLUMN_MIMO2_SGI, |
296 | RS_COLUMN_INVALID, | ||
297 | RS_COLUMN_INVALID, | ||
298 | RS_COLUMN_INVALID, | ||
299 | }, | 299 | }, |
300 | .checks = { | 300 | .checks = { |
301 | rs_mimo_allow, | 301 | rs_mimo_allow, |
@@ -307,10 +307,10 @@ static const struct rs_tx_column rs_tx_columns[] = { | |||
307 | .sgi = true, | 307 | .sgi = true, |
308 | .next_columns = { | 308 | .next_columns = { |
309 | RS_COLUMN_SISO_ANT_A_SGI, | 309 | RS_COLUMN_SISO_ANT_A_SGI, |
310 | RS_COLUMN_SISO_ANT_B_SGI, | ||
311 | RS_COLUMN_SISO_ANT_A, | ||
312 | RS_COLUMN_SISO_ANT_B, | ||
310 | RS_COLUMN_MIMO2, | 313 | RS_COLUMN_MIMO2, |
311 | RS_COLUMN_INVALID, | ||
312 | RS_COLUMN_INVALID, | ||
313 | RS_COLUMN_INVALID, | ||
314 | }, | 314 | }, |
315 | .checks = { | 315 | .checks = { |
316 | rs_mimo_allow, | 316 | rs_mimo_allow, |