Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f3aebeee authored by Wey-Yi Guy's avatar Wey-Yi Guy Committed by Reinette Chatre
Browse files

iwlwifi: move _agn statistics related structure



agn and 3945 has different statistics_notif data structure; since 3945
has it statistics_notif data structure inside the _3945 portion of
iwl_priv, it make sense to move the agn statistics_notif into _agn
portion.

Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
parent 278fc73c
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1580,7 +1580,8 @@ static int iwl4965_hw_get_temperature(struct iwl_priv *priv)
	u32 R4;

	if (test_bit(STATUS_TEMPERATURE, &priv->status) &&
		(priv->statistics.flag & STATISTICS_REPLY_FLG_HT40_MODE_MSK)) {
	    (priv->_agn.statistics.flag &
			STATISTICS_REPLY_FLG_HT40_MODE_MSK)) {
		IWL_DEBUG_TEMP(priv, "Running HT40 temperature calibration\n");
		R1 = (s32)le32_to_cpu(priv->card_alive_init.therm_r1[1]);
		R2 = (s32)le32_to_cpu(priv->card_alive_init.therm_r2[1]);
@@ -1604,8 +1605,8 @@ static int iwl4965_hw_get_temperature(struct iwl_priv *priv)
	if (!test_bit(STATUS_TEMPERATURE, &priv->status))
		vt = sign_extend(R4, 23);
	else
		vt = sign_extend(
			le32_to_cpu(priv->statistics.general.temperature), 23);
		vt = sign_extend(le32_to_cpu(
				priv->_agn.statistics.general.temperature), 23);

	IWL_DEBUG_TEMP(priv, "Calib values R[1-3]: %d %d %d R4: %d\n", R1, R2, R3, vt);

+1 −1
Original line number Diff line number Diff line
@@ -264,7 +264,7 @@ static void iwl5150_temperature(struct iwl_priv *priv)
	u32 vt = 0;
	s32 offset =  iwl_temp_calib_to_offset(priv);

	vt = le32_to_cpu(priv->statistics.general.temperature);
	vt = le32_to_cpu(priv->_agn.statistics.general.temperature);
	vt = vt / IWL_5150_VOLTAGE_TO_TEMPERATURE_COEFF + offset;
	/* now vt hold the temperature in Kelvin */
	priv->temperature = KELVIN_TO_CELSIUS(vt);
+36 −36
Original line number Diff line number Diff line
@@ -33,17 +33,17 @@ static int iwl_statistics_flag(struct iwl_priv *priv, char *buf, int bufsz)
	int p = 0;

	p += scnprintf(buf + p, bufsz - p, "Statistics Flag(0x%X):\n",
		       le32_to_cpu(priv->statistics.flag));
	if (le32_to_cpu(priv->statistics.flag) &
		       le32_to_cpu(priv->_agn.statistics.flag));
	if (le32_to_cpu(priv->_agn.statistics.flag) &
			UCODE_STATISTICS_CLEAR_MSK)
		p += scnprintf(buf + p, bufsz - p,
			       "\tStatistics have been cleared\n");
	p += scnprintf(buf + p, bufsz - p, "\tOperational Frequency: %s\n",
		       (le32_to_cpu(priv->statistics.flag) &
		       (le32_to_cpu(priv->_agn.statistics.flag) &
			UCODE_STATISTICS_FREQUENCY_MSK)
			? "2.4 GHz" : "5.2 GHz");
	p += scnprintf(buf + p, bufsz - p, "\tTGj Narrow Band: %s\n",
		       (le32_to_cpu(priv->statistics.flag) &
		       (le32_to_cpu(priv->_agn.statistics.flag) &
			UCODE_STATISTICS_NARROW_BAND_MSK)
			? "enabled" : "disabled");
	return p;
@@ -79,22 +79,22 @@ ssize_t iwl_ucode_rx_stats_read(struct file *file, char __user *user_buf,
	 * the last statistics notification from uCode
	 * might not reflect the current uCode activity
	 */
	ofdm = &priv->statistics.rx.ofdm;
	cck = &priv->statistics.rx.cck;
	general = &priv->statistics.rx.general;
	ht = &priv->statistics.rx.ofdm_ht;
	accum_ofdm = &priv->accum_statistics.rx.ofdm;
	accum_cck = &priv->accum_statistics.rx.cck;
	accum_general = &priv->accum_statistics.rx.general;
	accum_ht = &priv->accum_statistics.rx.ofdm_ht;
	delta_ofdm = &priv->delta_statistics.rx.ofdm;
	delta_cck = &priv->delta_statistics.rx.cck;
	delta_general = &priv->delta_statistics.rx.general;
	delta_ht = &priv->delta_statistics.rx.ofdm_ht;
	max_ofdm = &priv->max_delta.rx.ofdm;
	max_cck = &priv->max_delta.rx.cck;
	max_general = &priv->max_delta.rx.general;
	max_ht = &priv->max_delta.rx.ofdm_ht;
	ofdm = &priv->_agn.statistics.rx.ofdm;
	cck = &priv->_agn.statistics.rx.cck;
	general = &priv->_agn.statistics.rx.general;
	ht = &priv->_agn.statistics.rx.ofdm_ht;
	accum_ofdm = &priv->_agn.accum_statistics.rx.ofdm;
	accum_cck = &priv->_agn.accum_statistics.rx.cck;
	accum_general = &priv->_agn.accum_statistics.rx.general;
	accum_ht = &priv->_agn.accum_statistics.rx.ofdm_ht;
	delta_ofdm = &priv->_agn.delta_statistics.rx.ofdm;
	delta_cck = &priv->_agn.delta_statistics.rx.cck;
	delta_general = &priv->_agn.delta_statistics.rx.general;
	delta_ht = &priv->_agn.delta_statistics.rx.ofdm_ht;
	max_ofdm = &priv->_agn.max_delta.rx.ofdm;
	max_cck = &priv->_agn.max_delta.rx.cck;
	max_general = &priv->_agn.max_delta.rx.general;
	max_ht = &priv->_agn.max_delta.rx.ofdm_ht;

	pos += iwl_statistics_flag(priv, buf, bufsz);
	pos += scnprintf(buf + pos, bufsz - pos, "%-32s     current"
@@ -560,10 +560,10 @@ ssize_t iwl_ucode_tx_stats_read(struct file *file,
	  * the last statistics notification from uCode
	  * might not reflect the current uCode activity
	  */
	tx = &priv->statistics.tx;
	accum_tx = &priv->accum_statistics.tx;
	delta_tx = &priv->delta_statistics.tx;
	max_tx = &priv->max_delta.tx;
	tx = &priv->_agn.statistics.tx;
	accum_tx = &priv->_agn.accum_statistics.tx;
	delta_tx = &priv->_agn.delta_statistics.tx;
	max_tx = &priv->_agn.max_delta.tx;
	pos += iwl_statistics_flag(priv, buf, bufsz);
	pos += scnprintf(buf + pos, bufsz - pos,  "%-32s     current"
			 "acumulative       delta         max\n",
@@ -777,18 +777,18 @@ ssize_t iwl_ucode_general_stats_read(struct file *file, char __user *user_buf,
	  * the last statistics notification from uCode
	  * might not reflect the current uCode activity
	  */
	general = &priv->statistics.general;
	dbg = &priv->statistics.general.dbg;
	div = &priv->statistics.general.div;
	accum_general = &priv->accum_statistics.general;
	delta_general = &priv->delta_statistics.general;
	max_general = &priv->max_delta.general;
	accum_dbg = &priv->accum_statistics.general.dbg;
	delta_dbg = &priv->delta_statistics.general.dbg;
	max_dbg = &priv->max_delta.general.dbg;
	accum_div = &priv->accum_statistics.general.div;
	delta_div = &priv->delta_statistics.general.div;
	max_div = &priv->max_delta.general.div;
	general = &priv->_agn.statistics.general;
	dbg = &priv->_agn.statistics.general.dbg;
	div = &priv->_agn.statistics.general.div;
	accum_general = &priv->_agn.accum_statistics.general;
	delta_general = &priv->_agn.delta_statistics.general;
	max_general = &priv->_agn.max_delta.general;
	accum_dbg = &priv->_agn.accum_statistics.general.dbg;
	delta_dbg = &priv->_agn.delta_statistics.general.dbg;
	max_dbg = &priv->_agn.max_delta.general.dbg;
	accum_div = &priv->_agn.accum_statistics.general.div;
	delta_div = &priv->_agn.delta_statistics.general.div;
	max_div = &priv->_agn.max_delta.general.div;
	pos += iwl_statistics_flag(priv, buf, bufsz);
	pos += scnprintf(buf + pos, bufsz - pos, "%-32s     current"
			 "acumulative       delta         max\n",
+2 −1
Original line number Diff line number Diff line
@@ -361,7 +361,8 @@ int iwlagn_send_tx_power(struct iwl_priv *priv)
void iwlagn_temperature(struct iwl_priv *priv)
{
	/* store temperature from statistics (in Celsius) */
	priv->temperature = le32_to_cpu(priv->statistics.general.temperature);
	priv->temperature =
		le32_to_cpu(priv->_agn.statistics.general.temperature);
	iwl_tt_handler(priv);
}

+29 −29
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@ void iwl_rx_missed_beacon_notif(struct iwl_priv *priv,
static void iwl_rx_calc_noise(struct iwl_priv *priv)
{
	struct statistics_rx_non_phy *rx_info
				= &(priv->statistics.rx.general);
				= &(priv->_agn.statistics.rx.general);
	int num_active_rx = 0;
	int total_silence = 0;
	int bcn_silence_a =
@@ -117,10 +117,10 @@ static void iwl_accumulative_statistics(struct iwl_priv *priv,
	u32 *accum_stats;
	u32 *delta, *max_delta;

	prev_stats = (__le32 *)&priv->statistics;
	accum_stats = (u32 *)&priv->accum_statistics;
	delta = (u32 *)&priv->delta_statistics;
	max_delta = (u32 *)&priv->max_delta;
	prev_stats = (__le32 *)&priv->_agn.statistics;
	accum_stats = (u32 *)&priv->_agn.accum_statistics;
	delta = (u32 *)&priv->_agn.delta_statistics;
	max_delta = (u32 *)&priv->_agn.max_delta;

	for (i = sizeof(__le32); i < sizeof(struct iwl_notif_statistics);
	     i += sizeof(__le32), stats++, prev_stats++, delta++,
@@ -135,18 +135,18 @@ static void iwl_accumulative_statistics(struct iwl_priv *priv,
	}

	/* reset accumulative statistics for "no-counter" type statistics */
	priv->accum_statistics.general.temperature =
		priv->statistics.general.temperature;
	priv->accum_statistics.general.temperature_m =
		priv->statistics.general.temperature_m;
	priv->accum_statistics.general.ttl_timestamp =
		priv->statistics.general.ttl_timestamp;
	priv->accum_statistics.tx.tx_power.ant_a =
		priv->statistics.tx.tx_power.ant_a;
	priv->accum_statistics.tx.tx_power.ant_b =
		priv->statistics.tx.tx_power.ant_b;
	priv->accum_statistics.tx.tx_power.ant_c =
		priv->statistics.tx.tx_power.ant_c;
	priv->_agn.accum_statistics.general.temperature =
		priv->_agn.statistics.general.temperature;
	priv->_agn.accum_statistics.general.temperature_m =
		priv->_agn.statistics.general.temperature_m;
	priv->_agn.accum_statistics.general.ttl_timestamp =
		priv->_agn.statistics.general.ttl_timestamp;
	priv->_agn.accum_statistics.tx.tx_power.ant_a =
		priv->_agn.statistics.tx.tx_power.ant_a;
	priv->_agn.accum_statistics.tx.tx_power.ant_b =
		priv->_agn.statistics.tx.tx_power.ant_b;
	priv->_agn.accum_statistics.tx.tx_power.ant_c =
		priv->_agn.statistics.tx.tx_power.ant_c;
}
#endif

@@ -181,9 +181,9 @@ bool iwl_good_plcp_health(struct iwl_priv *priv,
	if (plcp_msec) {
		combined_plcp_delta =
			(le32_to_cpu(pkt->u.stats.rx.ofdm.plcp_err) -
			le32_to_cpu(priv->statistics.rx.ofdm.plcp_err)) +
			le32_to_cpu(priv->_agn.statistics.rx.ofdm.plcp_err)) +
			(le32_to_cpu(pkt->u.stats.rx.ofdm_ht.plcp_err) -
			le32_to_cpu(priv->statistics.rx.ofdm_ht.plcp_err));
			le32_to_cpu(priv->_agn.statistics.rx.ofdm_ht.plcp_err));

		if ((combined_plcp_delta > 0) &&
		    ((combined_plcp_delta * 100) / plcp_msec) >
@@ -204,10 +204,10 @@ bool iwl_good_plcp_health(struct iwl_priv *priv,
				priv->cfg->plcp_delta_threshold,
				le32_to_cpu(pkt->u.stats.rx.ofdm.plcp_err),
				le32_to_cpu(
				       priv->statistics.rx.ofdm.plcp_err),
				       priv->_agn.statistics.rx.ofdm.plcp_err),
				le32_to_cpu(pkt->u.stats.rx.ofdm_ht.plcp_err),
				le32_to_cpu(
				  priv->statistics.rx.ofdm_ht.plcp_err),
				  priv->_agn.statistics.rx.ofdm_ht.plcp_err),
				combined_plcp_delta, plcp_msec);
			rc = false;
		}
@@ -223,12 +223,12 @@ void iwl_rx_statistics(struct iwl_priv *priv,


	IWL_DEBUG_RX(priv, "Statistics notification received (%d vs %d).\n",
		     (int)sizeof(priv->statistics),
		     (int)sizeof(priv->_agn.statistics),
		     le32_to_cpu(pkt->len_n_flags) & FH_RSCSR_FRAME_SIZE_MSK);

	change = ((priv->statistics.general.temperature !=
	change = ((priv->_agn.statistics.general.temperature !=
		   pkt->u.stats.general.temperature) ||
		  ((priv->statistics.flag &
		  ((priv->_agn.statistics.flag &
		    STATISTICS_REPLY_FLG_HT40_MODE_MSK) !=
		   (pkt->u.stats.flag & STATISTICS_REPLY_FLG_HT40_MODE_MSK)));

@@ -237,8 +237,8 @@ void iwl_rx_statistics(struct iwl_priv *priv,
#endif
	iwl_recover_from_statistics(priv, pkt);

	memcpy(&priv->statistics, &pkt->u.stats,
	       sizeof(priv->statistics));
	memcpy(&priv->_agn.statistics, &pkt->u.stats,
	       sizeof(priv->_agn.statistics));

	set_bit(STATUS_STATISTICS, &priv->status);

@@ -265,11 +265,11 @@ void iwl_reply_statistics(struct iwl_priv *priv,

	if (le32_to_cpu(pkt->u.stats.flag) & UCODE_STATISTICS_CLEAR_MSK) {
#ifdef CONFIG_IWLWIFI_DEBUGFS
		memset(&priv->accum_statistics, 0,
		memset(&priv->_agn.accum_statistics, 0,
			sizeof(struct iwl_notif_statistics));
		memset(&priv->delta_statistics, 0,
		memset(&priv->_agn.delta_statistics, 0,
			sizeof(struct iwl_notif_statistics));
		memset(&priv->max_delta, 0,
		memset(&priv->_agn.max_delta, 0,
			sizeof(struct iwl_notif_statistics));
#endif
		IWL_DEBUG_RX(priv, "Statistics have been cleared\n");
Loading