Merge branch 'wireless-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6
This commit is contained in:
commit
dee60269f0
|
@ -184,7 +184,7 @@ static int iwl3945_hwrate_to_plcp_idx(u8 plcp)
|
||||||
{
|
{
|
||||||
int idx;
|
int idx;
|
||||||
|
|
||||||
for (idx = 0; idx < IWL_RATE_COUNT; idx++)
|
for (idx = 0; idx < IWL_RATE_COUNT_3945; idx++)
|
||||||
if (iwl3945_rates[idx].plcp == plcp)
|
if (iwl3945_rates[idx].plcp == plcp)
|
||||||
return idx;
|
return idx;
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -805,7 +805,7 @@ void iwl3945_hw_build_tx_cmd_rate(struct iwl_priv *priv,
|
||||||
int sta_id, int tx_id)
|
int sta_id, int tx_id)
|
||||||
{
|
{
|
||||||
u16 hw_value = ieee80211_get_tx_rate(priv->hw, info)->hw_value;
|
u16 hw_value = ieee80211_get_tx_rate(priv->hw, info)->hw_value;
|
||||||
u16 rate_index = min(hw_value & 0xffff, IWL_RATE_COUNT - 1);
|
u16 rate_index = min(hw_value & 0xffff, IWL_RATE_COUNT_3945);
|
||||||
u16 rate_mask;
|
u16 rate_mask;
|
||||||
int rate;
|
int rate;
|
||||||
u8 rts_retry_limit;
|
u8 rts_retry_limit;
|
||||||
|
@ -2146,7 +2146,7 @@ static void iwl3945_hw_reg_init_channel_groups(struct iwl_priv *priv)
|
||||||
|
|
||||||
/* fill in channel group's nominal powers for each rate */
|
/* fill in channel group's nominal powers for each rate */
|
||||||
for (rate_index = 0;
|
for (rate_index = 0;
|
||||||
rate_index < IWL_RATE_COUNT; rate_index++, clip_pwrs++) {
|
rate_index < IWL_RATE_COUNT_3945; rate_index++, clip_pwrs++) {
|
||||||
switch (rate_index) {
|
switch (rate_index) {
|
||||||
case IWL_RATE_36M_INDEX_TABLE:
|
case IWL_RATE_36M_INDEX_TABLE:
|
||||||
if (i == 0) /* B/G */
|
if (i == 0) /* B/G */
|
||||||
|
|
|
@ -2653,7 +2653,7 @@ static int iwl_mac_setup_register(struct iwl_priv *priv)
|
||||||
*/
|
*/
|
||||||
hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT;
|
hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT;
|
||||||
|
|
||||||
hw->wiphy->max_scan_ssids = PROBE_OPTION_MAX + 1;
|
hw->wiphy->max_scan_ssids = PROBE_OPTION_MAX;
|
||||||
/* we create the 802.11 header and a zero-length SSID element */
|
/* we create the 802.11 header and a zero-length SSID element */
|
||||||
hw->wiphy->max_scan_ie_len = IWL_MAX_PROBE_REQUEST - 24 - 2;
|
hw->wiphy->max_scan_ie_len = IWL_MAX_PROBE_REQUEST - 24 - 2;
|
||||||
|
|
||||||
|
|
|
@ -638,20 +638,9 @@ u16 iwl_fill_probe_req(struct iwl_priv *priv, struct ieee80211_mgmt *frame,
|
||||||
if (left < 0)
|
if (left < 0)
|
||||||
return 0;
|
return 0;
|
||||||
*pos++ = WLAN_EID_SSID;
|
*pos++ = WLAN_EID_SSID;
|
||||||
if (!priv->is_internal_short_scan &&
|
*pos++ = 0;
|
||||||
priv->scan_request->n_ssids) {
|
|
||||||
struct cfg80211_ssid *ssid =
|
|
||||||
priv->scan_request->ssids;
|
|
||||||
|
|
||||||
/* Broadcast if ssid_len is 0 */
|
len += 2;
|
||||||
*pos++ = ssid->ssid_len;
|
|
||||||
memcpy(pos, ssid->ssid, ssid->ssid_len);
|
|
||||||
pos += ssid->ssid_len;
|
|
||||||
len += 2 + ssid->ssid_len;
|
|
||||||
} else {
|
|
||||||
*pos++ = 0;
|
|
||||||
len += 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (WARN_ON(left < ie_len))
|
if (WARN_ON(left < ie_len))
|
||||||
return len;
|
return len;
|
||||||
|
@ -780,26 +769,20 @@ static void iwl_bg_request_scan(struct work_struct *data)
|
||||||
if (priv->is_internal_short_scan) {
|
if (priv->is_internal_short_scan) {
|
||||||
IWL_DEBUG_SCAN(priv, "Start internal passive scan.\n");
|
IWL_DEBUG_SCAN(priv, "Start internal passive scan.\n");
|
||||||
} else if (priv->scan_request->n_ssids) {
|
} else if (priv->scan_request->n_ssids) {
|
||||||
|
int i, p = 0;
|
||||||
IWL_DEBUG_SCAN(priv, "Kicking off active scan\n");
|
IWL_DEBUG_SCAN(priv, "Kicking off active scan\n");
|
||||||
/*
|
for (i = 0; i < priv->scan_request->n_ssids; i++) {
|
||||||
* The first SSID to scan is stuffed into the probe request
|
/* always does wildcard anyway */
|
||||||
* template and the remaining ones are handled through the
|
if (!priv->scan_request->ssids[i].ssid_len)
|
||||||
* direct_scan array.
|
continue;
|
||||||
*/
|
scan->direct_scan[p].id = WLAN_EID_SSID;
|
||||||
if (priv->scan_request->n_ssids > 1) {
|
scan->direct_scan[p].len =
|
||||||
int i, p = 0;
|
priv->scan_request->ssids[i].ssid_len;
|
||||||
for (i = 1; i < priv->scan_request->n_ssids; i++) {
|
memcpy(scan->direct_scan[p].ssid,
|
||||||
if (!priv->scan_request->ssids[i].ssid_len)
|
priv->scan_request->ssids[i].ssid,
|
||||||
continue;
|
priv->scan_request->ssids[i].ssid_len);
|
||||||
scan->direct_scan[p].id = WLAN_EID_SSID;
|
n_probes++;
|
||||||
scan->direct_scan[p].len =
|
p++;
|
||||||
priv->scan_request->ssids[i].ssid_len;
|
|
||||||
memcpy(scan->direct_scan[p].ssid,
|
|
||||||
priv->scan_request->ssids[i].ssid,
|
|
||||||
priv->scan_request->ssids[i].ssid_len);
|
|
||||||
n_probes++;
|
|
||||||
p++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
is_active = true;
|
is_active = true;
|
||||||
} else
|
} else
|
||||||
|
|
Loading…
Reference in New Issue