diff options
| author | John W. Linville <linville@tuxdriver.com> | 2010-03-10 16:34:38 -0500 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2010-03-10 16:34:38 -0500 |
| commit | dee60269f0fe90927ce5095eef3a8723bbb9c53e (patch) | |
| tree | 0b6726e5bd2c5bc1a5f692d2ee8ce2d3ae3153ff | |
| parent | 51f5f8ca446d4c59041b9b6995821e13208897ea (diff) | |
| parent | 1382c71c764540880d35485b033a44ce104d8e2e (diff) | |
Merge branch 'wireless-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-3945.c | 6 | ||||
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 2 | ||||
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-scan.c | 49 |
3 files changed, 20 insertions, 37 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c index 303cc8193adc..e0678d921055 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.c +++ b/drivers/net/wireless/iwlwifi/iwl-3945.c | |||
| @@ -184,7 +184,7 @@ static int iwl3945_hwrate_to_plcp_idx(u8 plcp) | |||
| 184 | { | 184 | { |
| 185 | int idx; | 185 | int idx; |
| 186 | 186 | ||
| 187 | for (idx = 0; idx < IWL_RATE_COUNT; idx++) | 187 | for (idx = 0; idx < IWL_RATE_COUNT_3945; idx++) |
| 188 | if (iwl3945_rates[idx].plcp == plcp) | 188 | if (iwl3945_rates[idx].plcp == plcp) |
| 189 | return idx; | 189 | return idx; |
| 190 | return -1; | 190 | return -1; |
| @@ -805,7 +805,7 @@ void iwl3945_hw_build_tx_cmd_rate(struct iwl_priv *priv, | |||
| 805 | int sta_id, int tx_id) | 805 | int sta_id, int tx_id) |
| 806 | { | 806 | { |
| 807 | u16 hw_value = ieee80211_get_tx_rate(priv->hw, info)->hw_value; | 807 | u16 hw_value = ieee80211_get_tx_rate(priv->hw, info)->hw_value; |
| 808 | u16 rate_index = min(hw_value & 0xffff, IWL_RATE_COUNT - 1); | 808 | u16 rate_index = min(hw_value & 0xffff, IWL_RATE_COUNT_3945); |
| 809 | u16 rate_mask; | 809 | u16 rate_mask; |
| 810 | int rate; | 810 | int rate; |
| 811 | u8 rts_retry_limit; | 811 | u8 rts_retry_limit; |
| @@ -2146,7 +2146,7 @@ static void iwl3945_hw_reg_init_channel_groups(struct iwl_priv *priv) | |||
| 2146 | 2146 | ||
| 2147 | /* fill in channel group's nominal powers for each rate */ | 2147 | /* fill in channel group's nominal powers for each rate */ |
| 2148 | for (rate_index = 0; | 2148 | for (rate_index = 0; |
| 2149 | rate_index < IWL_RATE_COUNT; rate_index++, clip_pwrs++) { | 2149 | rate_index < IWL_RATE_COUNT_3945; rate_index++, clip_pwrs++) { |
| 2150 | switch (rate_index) { | 2150 | switch (rate_index) { |
| 2151 | case IWL_RATE_36M_INDEX_TABLE: | 2151 | case IWL_RATE_36M_INDEX_TABLE: |
| 2152 | if (i == 0) /* B/G */ | 2152 | if (i == 0) /* B/G */ |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index 47b021477967..818367b57bab 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
| @@ -2653,7 +2653,7 @@ static int iwl_mac_setup_register(struct iwl_priv *priv) | |||
| 2653 | */ | 2653 | */ |
| 2654 | hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; | 2654 | hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; |
| 2655 | 2655 | ||
| 2656 | hw->wiphy->max_scan_ssids = PROBE_OPTION_MAX + 1; | 2656 | hw->wiphy->max_scan_ssids = PROBE_OPTION_MAX; |
| 2657 | /* we create the 802.11 header and a zero-length SSID element */ | 2657 | /* we create the 802.11 header and a zero-length SSID element */ |
| 2658 | hw->wiphy->max_scan_ie_len = IWL_MAX_PROBE_REQUEST - 24 - 2; | 2658 | hw->wiphy->max_scan_ie_len = IWL_MAX_PROBE_REQUEST - 24 - 2; |
| 2659 | 2659 | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c index dd9ff2ed645a..bd2f7c420563 100644 --- a/drivers/net/wireless/iwlwifi/iwl-scan.c +++ b/drivers/net/wireless/iwlwifi/iwl-scan.c | |||
| @@ -638,20 +638,9 @@ u16 iwl_fill_probe_req(struct iwl_priv *priv, struct ieee80211_mgmt *frame, | |||
| 638 | if (left < 0) | 638 | if (left < 0) |
| 639 | return 0; | 639 | return 0; |
| 640 | *pos++ = WLAN_EID_SSID; | 640 | *pos++ = WLAN_EID_SSID; |
| 641 | if (!priv->is_internal_short_scan && | 641 | *pos++ = 0; |
| 642 | priv->scan_request->n_ssids) { | 642 | |
| 643 | struct cfg80211_ssid *ssid = | 643 | len += 2; |
| 644 | priv->scan_request->ssids; | ||
| 645 | |||
| 646 | /* Broadcast if ssid_len is 0 */ | ||
| 647 | *pos++ = ssid->ssid_len; | ||
| 648 | memcpy(pos, ssid->ssid, ssid->ssid_len); | ||
| 649 | pos += ssid->ssid_len; | ||
| 650 | len += 2 + ssid->ssid_len; | ||
| 651 | } else { | ||
| 652 | *pos++ = 0; | ||
| 653 | len += 2; | ||
| 654 | } | ||
| 655 | 644 | ||
| 656 | if (WARN_ON(left < ie_len)) | 645 | if (WARN_ON(left < ie_len)) |
| 657 | return len; | 646 | return len; |
| @@ -780,26 +769,20 @@ static void iwl_bg_request_scan(struct work_struct *data) | |||
| 780 | if (priv->is_internal_short_scan) { | 769 | if (priv->is_internal_short_scan) { |
| 781 | IWL_DEBUG_SCAN(priv, "Start internal passive scan.\n"); | 770 | IWL_DEBUG_SCAN(priv, "Start internal passive scan.\n"); |
| 782 | } else if (priv->scan_request->n_ssids) { | 771 | } else if (priv->scan_request->n_ssids) { |
| 772 | int i, p = 0; | ||
| 783 | IWL_DEBUG_SCAN(priv, "Kicking off active scan\n"); | 773 | IWL_DEBUG_SCAN(priv, "Kicking off active scan\n"); |
| 784 | /* | 774 | for (i = 0; i < priv->scan_request->n_ssids; i++) { |
| 785 | * The first SSID to scan is stuffed into the probe request | 775 | /* always does wildcard anyway */ |
| 786 | * template and the remaining ones are handled through the | 776 | if (!priv->scan_request->ssids[i].ssid_len) |
| 787 | * direct_scan array. | 777 | continue; |
| 788 | */ | 778 | scan->direct_scan[p].id = WLAN_EID_SSID; |
| 789 | if (priv->scan_request->n_ssids > 1) { | 779 | scan->direct_scan[p].len = |
| 790 | int i, p = 0; | 780 | priv->scan_request->ssids[i].ssid_len; |
| 791 | for (i = 1; i < priv->scan_request->n_ssids; i++) { | 781 | memcpy(scan->direct_scan[p].ssid, |
| 792 | if (!priv->scan_request->ssids[i].ssid_len) | 782 | priv->scan_request->ssids[i].ssid, |
| 793 | continue; | 783 | priv->scan_request->ssids[i].ssid_len); |
| 794 | scan->direct_scan[p].id = WLAN_EID_SSID; | 784 | n_probes++; |
| 795 | scan->direct_scan[p].len = | 785 | p++; |
| 796 | priv->scan_request->ssids[i].ssid_len; | ||
| 797 | memcpy(scan->direct_scan[p].ssid, | ||
| 798 | priv->scan_request->ssids[i].ssid, | ||
| 799 | priv->scan_request->ssids[i].ssid_len); | ||
| 800 | n_probes++; | ||
| 801 | p++; | ||
| 802 | } | ||
| 803 | } | 786 | } |
| 804 | is_active = true; | 787 | is_active = true; |
| 805 | } else | 788 | } else |
