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);
        }
 }
 
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to