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

Commit 74451b93 authored by Ping-Ke Shih's avatar Ping-Ke Shih Committed by Kalle Valo
Browse files

rtlwifi: Add TX/RX throughput statistics in period



The statistic variables use u64 to get higher precision.

Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Cc: Yan-Hsuan Chuang <yhchuang@realtek.com>
Cc: Birming Chiu <birming@realtek.com>
Cc: Shaofu <shaofu@realtek.com>
Cc: Steven Ting <steventing@realtek.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent c1816f17
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -1998,6 +1998,22 @@ void rtl_watchdog_wq_callback(void *data)
	rtlpriv->link_info.tx_busy_traffic = tx_busy_traffic;
	rtlpriv->link_info.higher_busyrxtraffic = higher_busyrxtraffic;

	rtlpriv->stats.txbytesunicast_inperiod =
		rtlpriv->stats.txbytesunicast -
		rtlpriv->stats.txbytesunicast_last;
	rtlpriv->stats.rxbytesunicast_inperiod =
		rtlpriv->stats.rxbytesunicast -
		rtlpriv->stats.rxbytesunicast_last;
	rtlpriv->stats.txbytesunicast_last = rtlpriv->stats.txbytesunicast;
	rtlpriv->stats.rxbytesunicast_last = rtlpriv->stats.rxbytesunicast;

	rtlpriv->stats.txbytesunicast_inperiod_tp =
		(u32)(rtlpriv->stats.txbytesunicast_inperiod * 8 / 2 /
		1024 / 1024);
	rtlpriv->stats.rxbytesunicast_inperiod_tp =
		(u32)(rtlpriv->stats.rxbytesunicast_inperiod * 8 / 2 /
		1024 / 1024);

	/* <3> DM */
	if (!rtlpriv->cfg->mod_params->disable_watchdog)
		rtlpriv->cfg->ops->dm_watchdog(hw);
+11 −4
Original line number Diff line number Diff line
@@ -1013,10 +1013,17 @@ struct init_gain {
};

struct wireless_stats {
	unsigned long txbytesunicast;
	unsigned long txbytesmulticast;
	unsigned long txbytesbroadcast;
	unsigned long rxbytesunicast;
	u64 txbytesunicast;
	u64 txbytesmulticast;
	u64 txbytesbroadcast;
	u64 rxbytesunicast;

	u64 txbytesunicast_inperiod;
	u64 rxbytesunicast_inperiod;
	u32 txbytesunicast_inperiod_tp;
	u32 rxbytesunicast_inperiod_tp;
	u64 txbytesunicast_last;
	u64 rxbytesunicast_last;

	long rx_snr_db[4];
	/*Correct smoothed ss in Dbm, only used