iwlwifi: mvm: add and use iwl_mvm_has_unified_ucode()
authorJohannes Berg <johannes.berg@intel.com>
Thu, 8 Jun 2017 07:18:22 +0000 (09:18 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Tue, 1 Aug 2017 09:41:43 +0000 (12:41 +0300)
This may need to be refined later, but for now using this,
even with the TODO, is better than checking "has new TX API".

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/fw.c
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
drivers/net/wireless/intel/iwlwifi/mvm/ops.c

index e6f6de2500dbcd8f52c8b9ad5e6cf94125ab714a..58f846610e5d4fc682b94ea38deb79139c7bf3bc 100644 (file)
@@ -457,7 +457,7 @@ int iwl_run_init_mvm_ucode(struct iwl_mvm *mvm, bool read_nvm)
        };
        int ret;
 
-       if (iwl_mvm_has_new_tx_api(mvm))
+       if (iwl_mvm_has_unified_ucode(mvm))
                return iwl_run_unified_mvm_ucode(mvm, true);
 
        lockdep_assert_held(&mvm->mutex);
@@ -1034,7 +1034,7 @@ static int iwl_mvm_load_rt_fw(struct iwl_mvm *mvm)
 {
        int ret;
 
-       if (iwl_mvm_has_new_tx_api(mvm))
+       if (iwl_mvm_has_unified_ucode(mvm))
                return iwl_run_unified_mvm_ucode(mvm, false);
 
        ret = iwl_run_init_mvm_ucode(mvm, false);
@@ -1101,8 +1101,8 @@ int iwl_mvm_up(struct iwl_mvm *mvm)
        if (ret)
                goto error;
 
-       /* Send phy db control command and then phy db calibration*/
-       if (!iwl_mvm_has_new_tx_api(mvm)) {
+       if (!iwl_mvm_has_unified_ucode(mvm)) {
+               /* Send phy db control command and then phy db calibration */
                ret = iwl_send_phy_db_data(mvm->phy_db);
                if (ret)
                        goto error;
index 6fa2c44e6edd70baeff7f42d55e90a375202dc4c..e9440ef3022f19b991584c0d7a3f0f893eb431bd 100644 (file)
@@ -1232,6 +1232,12 @@ static inline bool iwl_mvm_has_new_tx_api(struct iwl_mvm *mvm)
        return mvm->trans->cfg->use_tfh;
 }
 
+static inline bool iwl_mvm_has_unified_ucode(struct iwl_mvm *mvm)
+{
+       /* TODO - better define this */
+       return mvm->trans->cfg->device_family >= IWL_DEVICE_FAMILY_A000;
+}
+
 static inline bool iwl_mvm_is_cdb_supported(struct iwl_mvm *mvm)
 {
        /*
index 6b385cf1055517bb27f1e2456e910f38775a61c4..4d591fdc61f2959aba597dc936dee9cefa5a2408 100644 (file)
@@ -645,7 +645,7 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
                mvm->last_agg_queue = IWL_MVM_DQA_MAX_DATA_QUEUE;
        }
        mvm->sf_state = SF_UNINIT;
-       if (iwl_mvm_has_new_tx_api(mvm))
+       if (iwl_mvm_has_unified_ucode(mvm))
                iwl_fw_set_current_image(&mvm->fwrt, IWL_UCODE_REGULAR);
        else
                iwl_fw_set_current_image(&mvm->fwrt, IWL_UCODE_INIT);