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

Commit 325322ee authored by Wey-Yi Guy's avatar Wey-Yi Guy
Browse files

iwlagn: add statistic notification structure for WiFi/BT devices



If its WiFi/BT combo device, the statistics notification sent by
uCode will include the additional BT related statistics counters.

Adding new data structure to support the new layout.

Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
parent 7a17a33c
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1605,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->_agn.statistics.general.temperature), 23);
		vt = sign_extend(le32_to_cpu(priv->_agn.statistics.
				 general.common.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
@@ -265,7 +265,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->_agn.statistics.general.temperature);
	vt = le32_to_cpu(priv->_agn.statistics.general.common.temperature);
	vt = vt / IWL_5150_VOLTAGE_TO_TEMPERATURE_COEFF + offset;
	/* now vt hold the temperature in Kelvin */
	priv->temperature = KELVIN_TO_CELSIUS(vt);
+14 −14
Original line number Diff line number Diff line
@@ -759,8 +759,8 @@ ssize_t iwl_ucode_general_stats_read(struct file *file, char __user *user_buf,
	char *buf;
	int bufsz = sizeof(struct statistics_general) * 10 + 300;
	ssize_t ret;
	struct statistics_general *general, *accum_general;
	struct statistics_general *delta_general, *max_general;
	struct statistics_general_common *general, *accum_general;
	struct statistics_general_common *delta_general, *max_general;
	struct statistics_dbg *dbg, *accum_dbg, *delta_dbg, *max_dbg;
	struct statistics_div *div, *accum_div, *delta_div, *max_div;

@@ -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->_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;
	general = &priv->_agn.statistics.general.common;
	dbg = &priv->_agn.statistics.general.common.dbg;
	div = &priv->_agn.statistics.general.common.div;
	accum_general = &priv->_agn.accum_statistics.general.common;
	delta_general = &priv->_agn.delta_statistics.general.common;
	max_general = &priv->_agn.max_delta.general.common;
	accum_dbg = &priv->_agn.accum_statistics.general.common.dbg;
	delta_dbg = &priv->_agn.delta_statistics.general.common.dbg;
	max_dbg = &priv->_agn.max_delta.general.common.dbg;
	accum_div = &priv->_agn.accum_statistics.general.common.div;
	delta_div = &priv->_agn.delta_statistics.general.common.div;
	max_div = &priv->_agn.max_delta.general.common.div;
	pos += iwl_statistics_flag(priv, buf, bufsz);
	pos += scnprintf(buf + pos, bufsz - pos, "%-32s     current"
			 "acumulative       delta         max\n",
+1 −1
Original line number Diff line number Diff line
@@ -364,7 +364,7 @@ void iwlagn_temperature(struct iwl_priv *priv)
{
	/* store temperature from statistics (in Celsius) */
	priv->temperature =
		le32_to_cpu(priv->_agn.statistics.general.temperature);
		le32_to_cpu(priv->_agn.statistics.general.common.temperature);
	iwl_tt_handler(priv);
}

+8 −8
Original line number Diff line number Diff line
@@ -135,12 +135,12 @@ static void iwl_accumulative_statistics(struct iwl_priv *priv,
	}

	/* reset accumulative statistics for "no-counter" type statistics */
	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.general.common.temperature =
		priv->_agn.statistics.general.common.temperature;
	priv->_agn.accum_statistics.general.common.temperature_m =
		priv->_agn.statistics.general.common.temperature_m;
	priv->_agn.accum_statistics.general.common.ttl_timestamp =
		priv->_agn.statistics.general.common.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 =
@@ -232,8 +232,8 @@ void iwl_rx_statistics(struct iwl_priv *priv,
		     (int)sizeof(priv->_agn.statistics),
		     le32_to_cpu(pkt->len_n_flags) & FH_RSCSR_FRAME_SIZE_MSK);

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