diff options
| author | Kalle Valo <kvalo@codeaurora.org> | 2015-04-07 12:55:57 -0400 |
|---|---|---|
| committer | Kalle Valo <kvalo@codeaurora.org> | 2015-04-07 12:55:57 -0400 |
| commit | 6dcaac59d08b77d5730f2ae824bca1c0bf8130dc (patch) | |
| tree | 5d01321c7ceedb7a9a294ac20dadee372b301d0b /drivers/net/wireless | |
| parent | 7abccdba25be45630eede85053496f1f48d36ec8 (diff) | |
| parent | 31755207afc5d5a30e3eea9e4f2a518fc5b680c1 (diff) | |
Merge tag 'iwlwifi-next-for-kalle-2015-04-02' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next
* some more work on LAR
* fixes for UMAC scan
* more work on debugging framework
* more work for 8000 devices
* cleanups and small bugfixes
Diffstat (limited to 'drivers/net/wireless')
38 files changed, 712 insertions, 310 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-8000.c b/drivers/net/wireless/iwlwifi/iwl-8000.c index 9c396a42aec8..ce6321b7d241 100644 --- a/drivers/net/wireless/iwlwifi/iwl-8000.c +++ b/drivers/net/wireless/iwlwifi/iwl-8000.c | |||
| @@ -94,8 +94,8 @@ | |||
| 94 | IWL8000_FW_PRE "-" __stringify(api) ".ucode" | 94 | IWL8000_FW_PRE "-" __stringify(api) ".ucode" |
| 95 | 95 | ||
| 96 | #define NVM_HW_SECTION_NUM_FAMILY_8000 10 | 96 | #define NVM_HW_SECTION_NUM_FAMILY_8000 10 |
| 97 | #define DEFAULT_NVM_FILE_FAMILY_8000A "iwl_nvm_8000.bin" | 97 | #define DEFAULT_NVM_FILE_FAMILY_8000B "nvmData-8000B" |
| 98 | #define DEFAULT_NVM_FILE_FAMILY_8000 "iwl_nvm_8000B.bin" | 98 | #define DEFAULT_NVM_FILE_FAMILY_8000C "nvmData-8000C" |
| 99 | 99 | ||
| 100 | /* Max SDIO RX aggregation size of the ADDBA request/response */ | 100 | /* Max SDIO RX aggregation size of the ADDBA request/response */ |
| 101 | #define MAX_RX_AGG_SIZE_8260_SDIO 28 | 101 | #define MAX_RX_AGG_SIZE_8260_SDIO 28 |
| @@ -177,8 +177,8 @@ const struct iwl_cfg iwl8260_2ac_sdio_cfg = { | |||
| 177 | .ht_params = &iwl8000_ht_params, | 177 | .ht_params = &iwl8000_ht_params, |
| 178 | .nvm_ver = IWL8000_NVM_VERSION, | 178 | .nvm_ver = IWL8000_NVM_VERSION, |
| 179 | .nvm_calib_ver = IWL8000_TX_POWER_VERSION, | 179 | .nvm_calib_ver = IWL8000_TX_POWER_VERSION, |
| 180 | .default_nvm_file = DEFAULT_NVM_FILE_FAMILY_8000, | 180 | .default_nvm_file_B_step = DEFAULT_NVM_FILE_FAMILY_8000B, |
| 181 | .default_nvm_file_8000A = DEFAULT_NVM_FILE_FAMILY_8000A, | 181 | .default_nvm_file_C_step = DEFAULT_NVM_FILE_FAMILY_8000C, |
| 182 | .max_rx_agg_size = MAX_RX_AGG_SIZE_8260_SDIO, | 182 | .max_rx_agg_size = MAX_RX_AGG_SIZE_8260_SDIO, |
| 183 | .disable_dummy_notification = true, | 183 | .disable_dummy_notification = true, |
| 184 | .max_ht_ampdu_exponent = MAX_HT_AMPDU_EXPONENT_8260_SDIO, | 184 | .max_ht_ampdu_exponent = MAX_HT_AMPDU_EXPONENT_8260_SDIO, |
| @@ -192,8 +192,8 @@ const struct iwl_cfg iwl4165_2ac_sdio_cfg = { | |||
| 192 | .ht_params = &iwl8000_ht_params, | 192 | .ht_params = &iwl8000_ht_params, |
| 193 | .nvm_ver = IWL8000_NVM_VERSION, | 193 | .nvm_ver = IWL8000_NVM_VERSION, |
| 194 | .nvm_calib_ver = IWL8000_TX_POWER_VERSION, | 194 | .nvm_calib_ver = IWL8000_TX_POWER_VERSION, |
| 195 | .default_nvm_file = DEFAULT_NVM_FILE_FAMILY_8000, | 195 | .default_nvm_file_B_step = DEFAULT_NVM_FILE_FAMILY_8000B, |
| 196 | .default_nvm_file_8000A = DEFAULT_NVM_FILE_FAMILY_8000A, | 196 | .default_nvm_file_C_step = DEFAULT_NVM_FILE_FAMILY_8000C, |
| 197 | .max_rx_agg_size = MAX_RX_AGG_SIZE_8260_SDIO, | 197 | .max_rx_agg_size = MAX_RX_AGG_SIZE_8260_SDIO, |
| 198 | .bt_shared_single_ant = true, | 198 | .bt_shared_single_ant = true, |
| 199 | .disable_dummy_notification = true, | 199 | .disable_dummy_notification = true, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-config.h b/drivers/net/wireless/iwlwifi/iwl-config.h index 4b190d98a1ec..07e999a32a7f 100644 --- a/drivers/net/wireless/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/iwlwifi/iwl-config.h | |||
| @@ -228,7 +228,7 @@ struct iwl_pwr_tx_backoff { | |||
| 228 | 228 | ||
| 229 | /** | 229 | /** |
| 230 | * struct iwl_cfg | 230 | * struct iwl_cfg |
| 231 | * @name: Offical name of the device | 231 | * @name: Official name of the device |
| 232 | * @fw_name_pre: Firmware filename prefix. The api version and extension | 232 | * @fw_name_pre: Firmware filename prefix. The api version and extension |
| 233 | * (.ucode) will be added to filename before loading from disk. The | 233 | * (.ucode) will be added to filename before loading from disk. The |
| 234 | * filename is constructed as fw_name_pre<api>.ucode. | 234 | * filename is constructed as fw_name_pre<api>.ucode. |
| @@ -303,8 +303,8 @@ struct iwl_cfg { | |||
| 303 | bool lp_xtal_workaround; | 303 | bool lp_xtal_workaround; |
| 304 | const struct iwl_pwr_tx_backoff *pwr_tx_backoffs; | 304 | const struct iwl_pwr_tx_backoff *pwr_tx_backoffs; |
| 305 | bool no_power_up_nic_in_init; | 305 | bool no_power_up_nic_in_init; |
| 306 | const char *default_nvm_file; | 306 | const char *default_nvm_file_B_step; |
| 307 | const char *default_nvm_file_8000A; | 307 | const char *default_nvm_file_C_step; |
| 308 | unsigned int max_rx_agg_size; | 308 | unsigned int max_rx_agg_size; |
| 309 | bool disable_dummy_notification; | 309 | bool disable_dummy_notification; |
| 310 | unsigned int max_tx_agg_size; | 310 | unsigned int max_tx_agg_size; |
diff --git a/drivers/net/wireless/iwlwifi/iwl-drv.c b/drivers/net/wireless/iwlwifi/iwl-drv.c index aefdd9b7c105..7267152e7dc7 100644 --- a/drivers/net/wireless/iwlwifi/iwl-drv.c +++ b/drivers/net/wireless/iwlwifi/iwl-drv.c | |||
| @@ -145,7 +145,7 @@ static struct iwlwifi_opmode_table { | |||
| 145 | #define IWL_DEFAULT_SCAN_CHANNELS 40 | 145 | #define IWL_DEFAULT_SCAN_CHANNELS 40 |
| 146 | 146 | ||
| 147 | /* | 147 | /* |
| 148 | * struct fw_sec: Just for the image parsing proccess. | 148 | * struct fw_sec: Just for the image parsing process. |
| 149 | * For the fw storage we are using struct fw_desc. | 149 | * For the fw storage we are using struct fw_desc. |
| 150 | */ | 150 | */ |
| 151 | struct fw_sec { | 151 | struct fw_sec { |
| @@ -241,16 +241,10 @@ static int iwl_request_firmware(struct iwl_drv *drv, bool first) | |||
| 241 | * previous name and uses the new format. | 241 | * previous name and uses the new format. |
| 242 | */ | 242 | */ |
| 243 | if (drv->trans->cfg->device_family == IWL_DEVICE_FAMILY_8000) { | 243 | if (drv->trans->cfg->device_family == IWL_DEVICE_FAMILY_8000) { |
| 244 | char rev_step[2] = { | 244 | char rev_step = 'A' + CSR_HW_REV_STEP(drv->trans->hw_rev); |
| 245 | 'A' + CSR_HW_REV_STEP(drv->trans->hw_rev), 0 | ||
| 246 | }; | ||
| 247 | |||
| 248 | /* A-step doesn't have an indication */ | ||
| 249 | if (CSR_HW_REV_STEP(drv->trans->hw_rev) == SILICON_A_STEP) | ||
| 250 | rev_step[0] = 0; | ||
| 251 | 245 | ||
| 252 | snprintf(drv->firmware_name, sizeof(drv->firmware_name), | 246 | snprintf(drv->firmware_name, sizeof(drv->firmware_name), |
| 253 | "%s%s-%s.ucode", name_pre, rev_step, tag); | 247 | "%s%c-%s.ucode", name_pre, rev_step, tag); |
| 254 | } | 248 | } |
| 255 | 249 | ||
| 256 | IWL_DEBUG_INFO(drv, "attempting to load firmware %s'%s'\n", | 250 | IWL_DEBUG_INFO(drv, "attempting to load firmware %s'%s'\n", |
| @@ -1108,6 +1102,7 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context) | |||
| 1108 | const unsigned int api_max = drv->cfg->ucode_api_max; | 1102 | const unsigned int api_max = drv->cfg->ucode_api_max; |
| 1109 | unsigned int api_ok = drv->cfg->ucode_api_ok; | 1103 | unsigned int api_ok = drv->cfg->ucode_api_ok; |
| 1110 | const unsigned int api_min = drv->cfg->ucode_api_min; | 1104 | const unsigned int api_min = drv->cfg->ucode_api_min; |
| 1105 | size_t trigger_tlv_sz[FW_DBG_TRIGGER_MAX]; | ||
| 1111 | u32 api_ver; | 1106 | u32 api_ver; |
| 1112 | int i; | 1107 | int i; |
| 1113 | bool load_module = false; | 1108 | bool load_module = false; |
| @@ -1227,8 +1222,37 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context) | |||
