OSDN Git Service

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 e6f6de2..58f8466 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 6fa2c44..e9440ef 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 6b385cf..4d591fd 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);