svn commit: r322950 - in head/sys/dev/rtwn: rtl8192c rtl8192e

Andriy Voskoboinyk avos at FreeBSD.org
Sun Aug 27 13:02:53 UTC 2017


Author: avos
Date: Sun Aug 27 13:02:51 2017
New Revision: 322950
URL: https://svnweb.freebsd.org/changeset/base/322950

Log:
  rtwn(4): deduplicate r92c_write_txpower().

Modified:
  head/sys/dev/rtwn/rtl8192c/r92c.h
  head/sys/dev/rtwn/rtl8192c/r92c_chan.c
  head/sys/dev/rtwn/rtl8192e/r92e_chan.c

Modified: head/sys/dev/rtwn/rtl8192c/r92c.h
==============================================================================
--- head/sys/dev/rtwn/rtl8192c/r92c.h	Sun Aug 27 12:44:56 2017	(r322949)
+++ head/sys/dev/rtwn/rtl8192c/r92c.h	Sun Aug 27 13:02:51 2017	(r322950)
@@ -56,6 +56,8 @@ uint8_t	r92c_temp_read(struct rtwn_softc *);
 /* r92c_chan.c */
 void	r92c_get_txpower(struct rtwn_softc *, int,
 	    struct ieee80211_channel *, uint8_t[]);
+void	r92c_write_txpower(struct rtwn_softc *, int,
+	    uint8_t power[]);
 void	r92c_set_bw20(struct rtwn_softc *, uint8_t);
 void	r92c_set_chan(struct rtwn_softc *, struct ieee80211_channel *);
 void	r92c_set_gain(struct rtwn_softc *, uint8_t);

Modified: head/sys/dev/rtwn/rtl8192c/r92c_chan.c
==============================================================================
--- head/sys/dev/rtwn/rtl8192c/r92c_chan.c	Sun Aug 27 12:44:56 2017	(r322949)
+++ head/sys/dev/rtwn/rtl8192c/r92c_chan.c	Sun Aug 27 13:02:51 2017	(r322950)
@@ -156,7 +156,7 @@ r92c_get_txpower(struct rtwn_softc *sc, int chain,
 	}
 }
 
-static void
+void
 r92c_write_txpower(struct rtwn_softc *sc, int chain,
     uint8_t power[RTWN_RIDX_COUNT])
 {

Modified: head/sys/dev/rtwn/rtl8192e/r92e_chan.c
==============================================================================
--- head/sys/dev/rtwn/rtl8192e/r92e_chan.c	Sun Aug 27 12:44:56 2017	(r322949)
+++ head/sys/dev/rtwn/rtl8192e/r92e_chan.c	Sun Aug 27 13:02:51 2017	(r322950)
@@ -57,6 +57,8 @@ __FBSDID("$FreeBSD$");
 #include <dev/rtwn/if_rtwn_ridx.h>
 #include <dev/rtwn/if_rtwn_rx.h>
 
+#include <dev/rtwn/rtl8192c/r92c.h>
+
 #include <dev/rtwn/rtl8192e/r92e.h>
 #include <dev/rtwn/rtl8192e/r92e_reg.h>
 #include <dev/rtwn/rtl8192e/r92e_var.h>
@@ -144,70 +146,7 @@ r92e_get_txpower(struct rtwn_softc *sc, int chain, str
 #endif
 }
 
-
 static void
-r92e_write_txpower(struct rtwn_softc *sc, int chain,
-    uint8_t power[RTWN_RIDX_COUNT])
-{
-	uint32_t reg;
-
-	/* Write per-CCK rate Tx power. */
-	if (chain == 0) {
-		reg = rtwn_bb_read(sc, R92C_TXAGC_A_CCK1_MCS32);
-		reg = RW(reg, R92C_TXAGC_A_CCK1,  power[RTWN_RIDX_CCK1]);
-		rtwn_bb_write(sc, R92C_TXAGC_A_CCK1_MCS32, reg);
-		reg = rtwn_bb_read(sc, R92C_TXAGC_B_CCK11_A_CCK2_11);
-		reg = RW(reg, R92C_TXAGC_A_CCK2,  power[RTWN_RIDX_CCK2]);
-		reg = RW(reg, R92C_TXAGC_A_CCK55, power[RTWN_RIDX_CCK55]);
-		reg = RW(reg, R92C_TXAGC_A_CCK11, power[RTWN_RIDX_CCK11]);
-		rtwn_bb_write(sc, R92C_TXAGC_B_CCK11_A_CCK2_11, reg);
-	} else {
-		reg = rtwn_bb_read(sc, R92C_TXAGC_B_CCK1_55_MCS32);
-		reg = RW(reg, R92C_TXAGC_B_CCK1,  power[RTWN_RIDX_CCK1]);
-		reg = RW(reg, R92C_TXAGC_B_CCK2,  power[RTWN_RIDX_CCK2]);
-		reg = RW(reg, R92C_TXAGC_B_CCK55, power[RTWN_RIDX_CCK55]);
-		rtwn_bb_write(sc, R92C_TXAGC_B_CCK1_55_MCS32, reg);
-		reg = rtwn_bb_read(sc, R92C_TXAGC_B_CCK11_A_CCK2_11);
-		reg = RW(reg, R92C_TXAGC_B_CCK11, power[RTWN_RIDX_CCK11]);
-		rtwn_bb_write(sc, R92C_TXAGC_B_CCK11_A_CCK2_11, reg);
-	}
-	/* Write per-OFDM rate Tx power. */
-	rtwn_bb_write(sc, R92C_TXAGC_RATE18_06(chain),
-	    SM(R92C_TXAGC_RATE06, power[RTWN_RIDX_OFDM6]) |
-	    SM(R92C_TXAGC_RATE09, power[RTWN_RIDX_OFDM9]) |
-	    SM(R92C_TXAGC_RATE12, power[RTWN_RIDX_OFDM12]) |
-	    SM(R92C_TXAGC_RATE18, power[RTWN_RIDX_OFDM18]));
-	rtwn_bb_write(sc, R92C_TXAGC_RATE54_24(chain),
-	    SM(R92C_TXAGC_RATE24, power[RTWN_RIDX_OFDM24]) |
-	    SM(R92C_TXAGC_RATE36, power[RTWN_RIDX_OFDM36]) |
-	    SM(R92C_TXAGC_RATE48, power[RTWN_RIDX_OFDM48]) |
-	    SM(R92C_TXAGC_RATE54, power[RTWN_RIDX_OFDM54]));
-	/* Write per-MCS Tx power. */
-	rtwn_bb_write(sc, R92C_TXAGC_MCS03_MCS00(chain),
-	    SM(R92C_TXAGC_MCS00,  power[RTWN_RIDX_MCS(0)]) |
-	    SM(R92C_TXAGC_MCS01,  power[RTWN_RIDX_MCS(1)]) |
-	    SM(R92C_TXAGC_MCS02,  power[RTWN_RIDX_MCS(2)]) |
-	    SM(R92C_TXAGC_MCS03,  power[RTWN_RIDX_MCS(3)]));
-	rtwn_bb_write(sc, R92C_TXAGC_MCS07_MCS04(chain),
-	    SM(R92C_TXAGC_MCS04,  power[RTWN_RIDX_MCS(4)]) |
-	    SM(R92C_TXAGC_MCS05,  power[RTWN_RIDX_MCS(5)]) |
-	    SM(R92C_TXAGC_MCS06,  power[RTWN_RIDX_MCS(6)]) |
-	    SM(R92C_TXAGC_MCS07,  power[RTWN_RIDX_MCS(7)]));
-	if (sc->ntxchains >= 2) {
-		rtwn_bb_write(sc, R92C_TXAGC_MCS11_MCS08(chain),
-		    SM(R92C_TXAGC_MCS08,  power[RTWN_RIDX_MCS(8)]) |
-		    SM(R92C_TXAGC_MCS09,  power[RTWN_RIDX_MCS(9)]) |
-		    SM(R92C_TXAGC_MCS10,  power[RTWN_RIDX_MCS(10)]) |
-		    SM(R92C_TXAGC_MCS11,  power[RTWN_RIDX_MCS(11)]));
-		rtwn_bb_write(sc, R92C_TXAGC_MCS15_MCS12(chain),
-		    SM(R92C_TXAGC_MCS12,  power[RTWN_RIDX_MCS(12)]) |
-		    SM(R92C_TXAGC_MCS13,  power[RTWN_RIDX_MCS(13)]) |
-		    SM(R92C_TXAGC_MCS14,  power[RTWN_RIDX_MCS(14)]) |
-		    SM(R92C_TXAGC_MCS15,  power[RTWN_RIDX_MCS(15)]));
-	}
-}
-
-static void
 r92e_set_txpower(struct rtwn_softc *sc, struct ieee80211_channel *c)
 {
 	uint8_t power[RTWN_RIDX_COUNT];
@@ -218,7 +157,7 @@ r92e_set_txpower(struct rtwn_softc *sc, struct ieee802
 		/* Compute per-rate Tx power values. */
 		r92e_get_txpower(sc, i, c, power);
 		/* Write per-rate Tx power values to hardware. */
-		r92e_write_txpower(sc, i, power);
+		r92c_write_txpower(sc, i, power);
 	}
 }
 


More information about the svn-src-head mailing list