OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2010 Atheros Communications Inc. | 2 * Copyright (c) 2010 Atheros Communications Inc. |
3 * | 3 * |
4 * Permission to use, copy, modify, and/or distribute this software for any | 4 * Permission to use, copy, modify, and/or distribute this software for any |
5 * purpose with or without fee is hereby granted, provided that the above | 5 * purpose with or without fee is hereby granted, provided that the above |
6 * copyright notice and this permission notice appear in all copies. | 6 * copyright notice and this permission notice appear in all copies. |
7 * | 7 * |
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
359 if (sta->ht_cap.mcs.rx_mask[i/8] & (1<<(i%8))) | 359 if (sta->ht_cap.mcs.rx_mask[i/8] & (1<<(i%8))) |
360 trate->rates.ht_rates.rs_rates[j++] = i; | 360 trate->rates.ht_rates.rs_rates[j++] = i; |
361 if (j == ATH_HTC_RATE_MAX) | 361 if (j == ATH_HTC_RATE_MAX) |
362 break; | 362 break; |
363 } | 363 } |
364 trate->rates.ht_rates.rs_nrates = j; | 364 trate->rates.ht_rates.rs_nrates = j; |
365 | 365 |
366 caps = WLAN_RC_HT_FLAG; | 366 caps = WLAN_RC_HT_FLAG; |
367 if (sta->ht_cap.mcs.rx_mask[1]) | 367 if (sta->ht_cap.mcs.rx_mask[1]) |
368 caps |= WLAN_RC_DS_FLAG; | 368 caps |= WLAN_RC_DS_FLAG; |
369 » » if (sta->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40) | 369 » » if ((sta->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40) && |
| 370 » » (conf_is_ht40(&priv->hw->conf))) |
370 caps |= WLAN_RC_40_FLAG; | 371 caps |= WLAN_RC_40_FLAG; |
371 if (conf_is_ht40(&priv->hw->conf) && | 372 if (conf_is_ht40(&priv->hw->conf) && |
372 (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40)) | 373 (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40)) |
373 caps |= WLAN_RC_SGI_FLAG; | 374 caps |= WLAN_RC_SGI_FLAG; |
374 else if (conf_is_ht20(&priv->hw->conf) && | 375 else if (conf_is_ht20(&priv->hw->conf) && |
375 (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20)) | 376 (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20)) |
376 caps |= WLAN_RC_SGI_FLAG; | 377 caps |= WLAN_RC_SGI_FLAG; |
377 } | 378 } |
378 | 379 |
379 trate->sta_index = ista->index; | 380 trate->sta_index = ista->index; |
(...skipping 1448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1828 .get_tsf = ath9k_htc_get_tsf, | 1829 .get_tsf = ath9k_htc_get_tsf, |
1829 .set_tsf = ath9k_htc_set_tsf, | 1830 .set_tsf = ath9k_htc_set_tsf, |
1830 .reset_tsf = ath9k_htc_reset_tsf, | 1831 .reset_tsf = ath9k_htc_reset_tsf, |
1831 .ampdu_action = ath9k_htc_ampdu_action, | 1832 .ampdu_action = ath9k_htc_ampdu_action, |
1832 .sw_scan_start = ath9k_htc_sw_scan_start, | 1833 .sw_scan_start = ath9k_htc_sw_scan_start, |
1833 .sw_scan_complete = ath9k_htc_sw_scan_complete, | 1834 .sw_scan_complete = ath9k_htc_sw_scan_complete, |
1834 .set_rts_threshold = ath9k_htc_set_rts_threshold, | 1835 .set_rts_threshold = ath9k_htc_set_rts_threshold, |
1835 .rfkill_poll = ath9k_htc_rfkill_poll_state, | 1836 .rfkill_poll = ath9k_htc_rfkill_poll_state, |
1836 .set_coverage_class = ath9k_htc_set_coverage_class, | 1837 .set_coverage_class = ath9k_htc_set_coverage_class, |
1837 }; | 1838 }; |
OLD | NEW |