diff options
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/utils.c')
| -rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 12 | 
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/utils.c b/drivers/net/wireless/intel/iwlwifi/mvm/utils.c index 4649327abb45..b9914efc55c4 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/utils.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/utils.c @@ -1418,6 +1418,16 @@ void iwl_mvm_tcm_rm_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif)  	cancel_delayed_work_sync(&mvmvif->uapsd_nonagg_detected_wk);  } +u32 iwl_mvm_get_systime(struct iwl_mvm *mvm) +{ +	u32 reg_addr = DEVICE_SYSTEM_TIME_REG; + +	if (mvm->trans->cfg->device_family >= IWL_DEVICE_FAMILY_22000 && +	    mvm->trans->cfg->gp2_reg_addr) +		reg_addr = mvm->trans->cfg->gp2_reg_addr; + +	return iwl_read_prph(mvm->trans, reg_addr); +}  void iwl_mvm_get_sync_time(struct iwl_mvm *mvm, u32 *gp2, u64 *boottime)  { @@ -1432,7 +1442,7 @@ void iwl_mvm_get_sync_time(struct iwl_mvm *mvm, u32 *gp2, u64 *boottime)  		iwl_mvm_power_update_device(mvm);  	} -	*gp2 = iwl_read_prph(mvm->trans, DEVICE_SYSTEM_TIME_REG); +	*gp2 = iwl_mvm_get_systime(mvm);  	*boottime = ktime_get_boot_ns();  	if (!ps_disabled) {  |