From 3df5a7d78ee632ff4a6591b6fd8a6329fedf221f Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Tue, 21 Feb 2012 18:31:06 +0200 Subject: [PATCH] --- yaml --- r: 290741 b: refs/heads/master c: a78be210d53b24cc3437d4362912c510b895a8eb h: refs/heads/master i: 290739: a3d5400de472242290ed3ddb41e80011475d25fe v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/iwlwifi/iwl-agn.c | 23 ++++++++++++++++--- .../drivers/net/wireless/iwlwifi/iwl-ucode.c | 14 +---------- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/[refs] b/[refs] index 361bfa4eb28a..ac977c3ca596 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e211b2427a61e92e5a6bdd629bc2c2e6114c2dc1 +refs/heads/master: a78be210d53b24cc3437d4362912c510b895a8eb diff --git a/trunk/drivers/net/wireless/iwlwifi/iwl-agn.c b/trunk/drivers/net/wireless/iwlwifi/iwl-agn.c index 5e476a80bd8c..d70dd6fff4f5 100644 --- a/trunk/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/trunk/drivers/net/wireless/iwlwifi/iwl-agn.c @@ -1151,6 +1151,7 @@ int iwl_op_mode_dvm_start(struct iwl_bus *bus, struct iwl_priv *priv; struct ieee80211_hw *hw; u16 num_mac; + u32 ucode_flags; /************************ * 1. Allocating HW data @@ -1242,6 +1243,22 @@ int iwl_op_mode_dvm_start(struct iwl_bus *bus, ************************/ iwl_set_hw_params(priv); + ucode_flags = fw->ucode_capa.flags; + +#ifndef CONFIG_IWLWIFI_P2P + ucode_flags &= ~IWL_UCODE_TLV_FLAGS_PAN; +#endif + if (!(hw_params(priv).sku & EEPROM_SKU_CAP_IPAN_ENABLE)) + ucode_flags &= ~IWL_UCODE_TLV_FLAGS_PAN; + + /* + * if not PAN, then don't support P2P -- might be a uCode + * packaging bug or due to the eeprom check above + */ + if (!(ucode_flags & IWL_UCODE_TLV_FLAGS_PAN)) + ucode_flags &= ~IWL_UCODE_TLV_FLAGS_P2P; + + /******************* * 6. Setup priv *******************/ @@ -1266,9 +1283,9 @@ int iwl_op_mode_dvm_start(struct iwl_bus *bus, "%s", fw->fw_version); priv->new_scan_threshold_behaviour = - !!(fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_NEWSCAN); + !!(ucode_flags & IWL_UCODE_TLV_FLAGS_NEWSCAN); - if (fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_PAN) { + if (ucode_flags & IWL_UCODE_TLV_FLAGS_PAN) { priv->sta_key_max_num = STA_KEY_MAX_NUM_PAN; priv->shrd->cmd_queue = IWL_IPAN_CMD_QUEUE_NUM; } else { @@ -1282,7 +1299,7 @@ int iwl_op_mode_dvm_start(struct iwl_bus *bus, fw->ucode_capa.standard_phy_calibration_size + 1; /* initialize all valid contexts */ - iwl_init_context(priv, fw->ucode_capa.flags); + iwl_init_context(priv, ucode_flags); /************************************************** * This is still part of probe() in a sense... diff --git a/trunk/drivers/net/wireless/iwlwifi/iwl-ucode.c b/trunk/drivers/net/wireless/iwlwifi/iwl-ucode.c index 99f89b27f42c..3645bf3d61c6 100644 --- a/trunk/drivers/net/wireless/iwlwifi/iwl-ucode.c +++ b/trunk/drivers/net/wireless/iwlwifi/iwl-ucode.c @@ -1226,9 +1226,7 @@ static void iwl_ucode_callback(const struct firmware *ucode_raw, void *context) nic->inst_evtlog_size = cfg->base_params->max_event_log_size; nic->inst_errlog_ptr = pieces.inst_errlog_ptr; -#ifndef CONFIG_IWLWIFI_P2P - fw->ucode_capa.flags &= ~IWL_UCODE_TLV_FLAGS_PAN; -#endif + /* * figure out the offset of chain noise reset and gain commands * base on the size of standard phy calibration commands table size @@ -1238,16 +1236,6 @@ static void iwl_ucode_callback(const struct firmware *ucode_raw, void *context) fw->ucode_capa.standard_phy_calibration_size = IWL_MAX_STANDARD_PHY_CALIBRATE_TBL_SIZE; - if (!(cfg->sku & EEPROM_SKU_CAP_IPAN_ENABLE)) - fw->ucode_capa.flags &= ~IWL_UCODE_TLV_FLAGS_PAN; - - /* - * if not PAN, then don't support P2P -- might be a uCode - * packaging bug or due to the eeprom check above - */ - if (!(fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_PAN)) - fw->ucode_capa.flags &= ~IWL_UCODE_TLV_FLAGS_P2P; - /* We have our copies now, allow OS release its copies */ release_firmware(ucode_raw); complete(&nic->request_firmware_complete);