aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2024-12-08 15:44:43 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2024-12-18 23:45:47 +0000
commit6858c6b1e1a9b151bad31bba3d354d2414a29c68 (patch)
treea11b960c0b1ac4510b0d606ff085918474ef692d
parentb71805e991fb955005640bdec81618e37d3af47c (diff)
rtwn: refactor out the TX power register power dump, condense output
* Refactor out the TX power register register dump - it's done in a couple places and it makes sense to refactor it. * Condense the output into a few lines per transmit chain. It's very long with the 8 and 16 MCS rates, and it made it difficult to eyeball what's going on when tweaking TX power. Differential Revision: https://reviews.freebsd.org/D47986 Reviewed by: bz, imp
-rw-r--r--sys/dev/rtwn/rtl8192c/r92c.h1
-rw-r--r--sys/dev/rtwn/rtl8192c/r92c_chan.c64
-rw-r--r--sys/dev/rtwn/rtl8192e/r92e_chan.c11
3 files changed, 55 insertions, 21 deletions
diff --git a/sys/dev/rtwn/rtl8192c/r92c.h b/sys/dev/rtwn/rtl8192c/r92c.h
index f73e92f7c932..759a946dac3c 100644
--- a/sys/dev/rtwn/rtl8192c/r92c.h
+++ b/sys/dev/rtwn/rtl8192c/r92c.h
@@ -54,6 +54,7 @@ void r92c_temp_measure(struct rtwn_softc *);
uint8_t r92c_temp_read(struct rtwn_softc *);
/* r92c_chan.c */
+void r92c_dump_txpower(struct rtwn_softc *, int, uint8_t[RTWN_RIDX_COUNT]);
void r92c_get_txpower(struct rtwn_softc *, int,
struct ieee80211_channel *, uint8_t[RTWN_RIDX_COUNT]);
void r92c_write_txpower(struct rtwn_softc *, int,
diff --git a/sys/dev/rtwn/rtl8192c/r92c_chan.c b/sys/dev/rtwn/rtl8192c/r92c_chan.c
index 108fbbf16c59..5404ad4a81bf 100644
--- a/sys/dev/rtwn/rtl8192c/r92c_chan.c
+++ b/sys/dev/rtwn/rtl8192c/r92c_chan.c
@@ -53,6 +53,56 @@
#include <dev/rtwn/rtl8192c/r92c_reg.h>
#include <dev/rtwn/rtl8192c/r92c_var.h>
+void
+r92c_dump_txpower(struct rtwn_softc *sc, int chain,
+ uint8_t power[RTWN_RIDX_COUNT])
+{
+
+#ifdef RTWN_DEBUG
+ if (sc->sc_debug & RTWN_DEBUG_TXPWR) {
+ int i;
+
+ /* Print CCK */
+ RTWN_DPRINTF(sc, RTWN_DEBUG_TXPWR,
+ "TX [%d]: CCK: 1M: %d 2M: %d 5.5M: %d 11M: %d\n",
+ chain,
+ power[RTWN_RIDX_CCK1],
+ power[RTWN_RIDX_CCK2],
+ power[RTWN_RIDX_CCK55],
+ power[RTWN_RIDX_CCK11]);
+ /* Print OFDM */
+ RTWN_DPRINTF(sc, RTWN_DEBUG_TXPWR,
+ "TX [%d]: OFDM: 6M: %d 9M: %d 12M: %d 18M: %d 24M: %d "
+ "36M: %d 48M: %d 54M: %d\n",
+ chain,
+ power[RTWN_RIDX_OFDM6],
+ power[RTWN_RIDX_OFDM9],
+ power[RTWN_RIDX_OFDM12],
+ power[RTWN_RIDX_OFDM18],
+ power[RTWN_RIDX_OFDM24],
+ power[RTWN_RIDX_OFDM36],
+ power[RTWN_RIDX_OFDM48],
+ power[RTWN_RIDX_OFDM54]);
+ /* Print HT, 1 and 2 stream */
+ for (i = 0; i < sc->ntxchains; i++) {
+ RTWN_DPRINTF(sc, RTWN_DEBUG_TXPWR,
+ "TX [%d]: MCS%d-%d: %d %d %d %d %d %d %d %d\n",
+ chain,
+ i * 8,
+ i * 8 + 7,
+ power[RTWN_RIDX_HT_MCS(i * 8 + 0)],
+ power[RTWN_RIDX_HT_MCS(i * 8 + 1)],
+ power[RTWN_RIDX_HT_MCS(i * 8 + 2)],
+ power[RTWN_RIDX_HT_MCS(i * 8 + 3)],
+ power[RTWN_RIDX_HT_MCS(i * 8 + 4)],
+ power[RTWN_RIDX_HT_MCS(i * 8 + 5)],
+ power[RTWN_RIDX_HT_MCS(i * 8 + 6)],
+ power[RTWN_RIDX_HT_MCS(i * 8 + 7)]);
+ }
+ }
+#endif
+}
+
static int
r92c_get_power_group(struct rtwn_softc *sc, struct ieee80211_channel *c)
{
@@ -224,18 +274,8 @@ r92c_set_txpower(struct rtwn_softc *sc, struct ieee80211_channel *c)
memset(power, 0, sizeof(power));
/* Compute per-rate Tx power values. */
rtwn_r92c_get_txpower(sc, i, c, power);
-#ifdef RTWN_DEBUG
- if (sc->sc_debug & RTWN_DEBUG_TXPWR) {
- int max_mcs, ridx;
-
- max_mcs = RTWN_RIDX_HT_MCS(sc->ntxchains * 8 - 1);
-
- /* Dump per-rate Tx power values. */
- printf("Tx power for chain %d:\n", i);
- for (ridx = RTWN_RIDX_CCK1; ridx <= max_mcs; ridx++)
- printf("Rate %d = %u\n", ridx, power[ridx]);
- }
-#endif
+ /* Optionally print out the power table */
+ r92c_dump_txpower(sc, i, power);
/* Write per-rate Tx power values to hardware. */
r92c_write_txpower(sc, i, power);
}
diff --git a/sys/dev/rtwn/rtl8192e/r92e_chan.c b/sys/dev/rtwn/rtl8192e/r92e_chan.c
index c6e911309cd2..4c761f61809d 100644
--- a/sys/dev/rtwn/rtl8192e/r92e_chan.c
+++ b/sys/dev/rtwn/rtl8192e/r92e_chan.c
@@ -132,15 +132,6 @@ r92e_get_txpower(struct rtwn_softc *sc, int chain, struct ieee80211_channel *c,
if (power[ridx] > R92C_MAX_TX_PWR)
power[ridx] = R92C_MAX_TX_PWR;
}
-
-#ifdef RTWN_DEBUG
- if (sc->sc_debug & RTWN_DEBUG_TXPWR) {
- /* Dump per-rate Tx power values. */
- printf("Tx power for chain %d:\n", chain);
- for (ridx = RTWN_RIDX_CCK1; ridx < RTWN_RIDX_LEGACY_HT_COUNT; ridx++)
- printf("Rate %d = %u\n", ridx, power[ridx]);
- }
-#endif
}
static void
@@ -153,6 +144,8 @@ r92e_set_txpower(struct rtwn_softc *sc, struct ieee80211_channel *c)
memset(power, 0, sizeof(power));
/* Compute per-rate Tx power values. */
r92e_get_txpower(sc, i, c, power);
+ /* Optionally print out the power table */
+ r92c_dump_txpower(sc, i, power);
/* Write per-rate Tx power values to hardware. */
r92c_write_txpower(sc, i, power);
}