aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-drv.c
diff options
context:
space:
mode:
authorDavid Spinadel <david.spinadel@intel.com>2012-03-10 16:00:15 -0500
committerJohn W. Linville <linville@tuxdriver.com>2012-03-12 14:22:10 -0400
commit4db2c9aeb28762ea7416122d03a7e5c8d87eb924 (patch)
tree50f1c3b6b1643324a42c0f9d56da6bf1ddb7fb2c /drivers/net/wireless/iwlwifi/iwl-drv.c
parent6dfa8d019cd21d08634ceb65a3fb90d0648bd93b (diff)
iwlwifi: Add bool mvm_ucode to iwl_fw
mvm_ucode is true when mvm TLVs arive. Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-drv.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-drv.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-drv.c b/drivers/net/wireless/iwlwifi/iwl-drv.c
index 54e09696fc9d..6f312c77af5e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-drv.c
+++ b/drivers/net/wireless/iwlwifi/iwl-drv.c
@@ -636,14 +636,17 @@ static int iwl_parse_tlv_firmware(struct iwl_drv *drv,
636 case IWL_UCODE_TLV_SEC_RT: 636 case IWL_UCODE_TLV_SEC_RT:
637 iwl_store_ucode_sec(pieces, tlv_data, IWL_UCODE_REGULAR, 637 iwl_store_ucode_sec(pieces, tlv_data, IWL_UCODE_REGULAR,
638 tlv_len); 638 tlv_len);
639 drv->fw.mvm_fw = true;
639 break; 640 break;
640 case IWL_UCODE_TLV_SEC_INIT: 641 case IWL_UCODE_TLV_SEC_INIT:
641 iwl_store_ucode_sec(pieces, tlv_data, IWL_UCODE_INIT, 642 iwl_store_ucode_sec(pieces, tlv_data, IWL_UCODE_INIT,
642 tlv_len); 643 tlv_len);
644 drv->fw.mvm_fw = true;
643 break; 645 break;
644 case IWL_UCODE_TLV_SEC_WOWLAN: 646 case IWL_UCODE_TLV_SEC_WOWLAN:
645 iwl_store_ucode_sec(pieces, tlv_data, IWL_UCODE_WOWLAN, 647 iwl_store_ucode_sec(pieces, tlv_data, IWL_UCODE_WOWLAN,
646 tlv_len); 648 tlv_len);
649 drv->fw.mvm_fw = true;
647 break; 650 break;
648 case IWL_UCODE_TLV_DEF_CALIB: 651 case IWL_UCODE_TLV_DEF_CALIB:
649 if (tlv_len != sizeof(struct iwl_tlv_calib_data)) 652 if (tlv_len != sizeof(struct iwl_tlv_calib_data))
@@ -870,7 +873,11 @@ static void iwl_ucode_callback(const struct firmware *ucode_raw, void *context)
870 goto try_again; 873 goto try_again;
871 } 874 }
872 875
873 if (validate_sec_sizes(drv, &pieces, cfg)) 876 /*
877 * In mvm uCode there is no difference between data and instructions
878 * sections.
879 */
880 if (!fw->mvm_fw && validate_sec_sizes(drv, &pieces, cfg))
874 goto try_again; 881 goto try_again;
875 882
876 /* Allocate ucode buffers for card's bus-master loading ... */ 883 /* Allocate ucode buffers for card's bus-master loading ... */