This is part of an effort to curb the macro abuse
in atw. Please test.
Index: atw.c
===================================================================
RCS file: /cvs/src/sys/dev/ic/atw.c,v
retrieving revision 1.69
diff -u -p -r1.69 atw.c
--- atw.c 16 Aug 2009 18:03:48 -0000 1.69
+++ atw.c 16 Aug 2009 22:52:06 -0000
@@ -672,7 +672,7 @@ atw_attach(struct atw_softc *sc)
* MARVEL. My bug, or theirs?
*/
- reg = LSHIFT(sc->sc_rftype, ATW_SYNCTL_RFTYPE_MASK);
+ reg = sc->sc_rftype << ATW_SYNCTL_RFTYPE_SHIFT;
switch (sc->sc_rftype) {
case ATW_RFTYPE_INTERSIL:
@@ -688,7 +688,7 @@ atw_attach(struct atw_softc *sc)
sc->sc_synctl_rd = reg | ATW_SYNCTL_RD;
sc->sc_synctl_wr = reg | ATW_SYNCTL_WR;
- reg = LSHIFT(sc->sc_bbptype, ATW_BBPCTL_TYPE_MASK);
+ reg = sc->sc_bbptype << ATW_BBPCTL_TYPE_SHIFT;
switch (sc->sc_bbptype) {
case ATW_BBPTYPE_INTERSIL:
@@ -1024,7 +1024,7 @@ atw_wcsr_init(struct atw_softc *sc)
wcsr = ATW_READ(sc, ATW_WCSR);
wcsr &= ~(ATW_WCSR_BLN_MASK|ATW_WCSR_LSOE|ATW_WCSR_MPRE|ATW_WCSR_LSOE);
- wcsr |= LSHIFT(7, ATW_WCSR_BLN_MASK);
+ wcsr |= (7 << ATW_WCSR_BLN_SHIFT);
ATW_WRITE(sc, ATW_WCSR, wcsr); /* XXX resets wake-up status bits */
DPRINTF(sc, ("%s: %s reg[WCSR] = %08x\n",
@@ -1051,24 +1051,24 @@ atw_tofs2_init(struct atw_softc *sc)
uint32_t tofs2;
/* XXX this magic can probably be figured out from the RFMD docs */
#ifndef ATW_REFSLAVE
- tofs2 = LSHIFT(4, ATW_TOFS2_PWR1UP_MASK) | /* 8 ms = 4 * 2 ms */
- LSHIFT(13, ATW_TOFS2_PWR0PAPE_MASK) | /* 13 us */
- LSHIFT(8, ATW_TOFS2_PWR1PAPE_MASK) | /* 8 us */
- LSHIFT(5, ATW_TOFS2_PWR0TRSW_MASK) | /* 5 us */
- LSHIFT(12, ATW_TOFS2_PWR1TRSW_MASK) | /* 12 us */
- LSHIFT(13, ATW_TOFS2_PWR0PE2_MASK) | /* 13 us */
- LSHIFT(4, ATW_TOFS2_PWR1PE2_MASK) | /* 4 us */
- LSHIFT(5, ATW_TOFS2_PWR0TXPE_MASK); /* 5 us */
+ tofs2 = (4 << ATW_TOFS2_PWR1UP_SHIFT) | /* 8 ms = 4 * 2 ms */
+ (13 << ATW_TOFS2_PWR0PAPE_SHIFT) | /* 13 us */
+ (8 << ATW_TOFS2_PWR1PAPE_SHIFT) | /* 8 us */
+ (5 << ATW_TOFS2_PWR0TRSW_SHIFT) | /* 5 us */
+ (12 << ATW_TOFS2_PWR1TRSW_SHIFT) | /* 12 us */
+ (13 << ATW_TOFS2_PWR0PE2_SHIFT) | /* 13 us */
+ (4 << ATW_TOFS2_PWR1PE2_SHIFT) | /* 4 us */
+ (5 << ATW_TOFS2_PWR0TXPE_SHIFT); /* 5 us */
#else
/* XXX new magic from reference driver source */
- tofs2 = LSHIFT(8, ATW_TOFS2_PWR1UP_MASK) | /* 8 ms = 4 * 2 ms */
- LSHIFT(8, ATW_TOFS2_PWR0PAPE_MASK) | /* 13 us */
- LSHIFT(1, ATW_TOFS2_PWR1PAPE_MASK) | /* 8 us */
- LSHIFT(5, ATW_TOFS2_PWR0TRSW_MASK) | /* 5 us */
- LSHIFT(12, ATW_TOFS2_PWR1TRSW_MASK) | /* 12 us */
- LSHIFT(13, ATW_TOFS2_PWR0PE2_MASK) | /* 13 us */
- LSHIFT(1, ATW_TOFS2_PWR1PE2_MASK) | /* 4 us */
- LSHIFT(8, ATW_TOFS2_PWR0TXPE_MASK); /* 5 us */
+ tofs2 = (8 << ATW_TOFS2_PWR1UP_SHIFT) | /* 8 ms = 4 * 2 ms */
+ (8 << ATW_TOFS2_PWR0PAPE_SHIFT) | /* 13 us */
+ (1 << ATW_TOFS2_PWR1PAPE_SHIFT) | /* 8 us */
+ (5 << ATW_TOFS2_PWR0TRSW_SHIFT) | /* 5 us */
+ (12 << ATW_TOFS2_PWR1TRSW_SHIFT) | /* 12 us */
+ (13 << ATW_TOFS2_PWR0PE2_SHIFT) | /* 13 us */
+ (1 << ATW_TOFS2_PWR1PE2_SHIFT) | /* 4 us */
+ (8 << ATW_TOFS2_PWR0TXPE_SHIFT); /* 5 us */
#endif
ATW_WRITE(sc, ATW_TOFS2, tofs2);
}
@@ -1082,8 +1082,8 @@ atw_nar_init(struct atw_softc *sc)
void
atw_txlmt_init(struct atw_softc *sc)
{
- ATW_WRITE(sc, ATW_TXLMT, LSHIFT(512, ATW_TXLMT_MTMLT_MASK) |
- LSHIFT(1, ATW_TXLMT_SRTYLIM_MASK));
+ ATW_WRITE(sc, ATW_TXLMT, (512 << ATW_TXLMT_MTMLT_SHIFT) |
+ (1 << ATW_TXLMT_SRTYLIM_SHIFT));
}
void
@@ -1094,7 +1094,7 @@ atw_test1_init(struct atw_softc *sc)
test1 = ATW_READ(sc, ATW_TEST1);
test1 &= ~(ATW_TEST1_DBGREAD_MASK|ATW_TEST1_CONTROL);
/* XXX magic 0x1 */
- test1 |= LSHIFT(0x1, ATW_TEST1_DBGREAD_MASK) | ATW_TEST1_CONTROL;
+ test1 |= (0x1 << ATW_TEST1_DBGREAD_SHIFT) | ATW_TEST1_CONTROL;
ATW_WRITE(sc, ATW_TEST1, test1);
}
@@ -1117,7 +1117,7 @@ atw_cfp_init(struct atw_softc *sc)
cfpp = ATW_READ(sc, ATW_CFPP);
cfpp &= ~ATW_CFPP_CFPMD;
- cfpp |= LSHIFT(16, ATW_CFPP_CFPMD);
+ cfpp |= (16 << ATW_CFPP_CFPMD_SHIFT);
ATW_WRITE(sc, ATW_CFPP, cfpp);
}
@@ -1133,7 +1133,7 @@ atw_tofs0_init(struct atw_softc *sc)
* these values. These values are also the power-on default.
*/
ATW_WRITE(sc, ATW_TOFS0,
- LSHIFT(22, ATW_TOFS0_USCNT_MASK) |
+ (22 << ATW_TOFS0_USCNT_SHIFT) |
ATW_TOFS0_TUCNT_MASK /* set all bits in TUCNT */);
}
@@ -1145,11 +1145,11 @@ atw_ifs_init(struct atw_softc *sc)
/* XXX EIFS=0x64, SIFS=110 are used by the reference driver.
* Go figure.
*/
- ifst = LSHIFT(IEEE80211_DUR_DS_SLOT, ATW_IFST_SLOT_MASK) |
- LSHIFT(22 * 5 /* IEEE80211_DUR_DS_SIFS */ /* # of 22MHz cycles */,
- ATW_IFST_SIFS_MASK) |
- LSHIFT(IEEE80211_DUR_DS_DIFS, ATW_IFST_DIFS_MASK) |
- LSHIFT(0x64 /* IEEE80211_DUR_DS_EIFS */, ATW_IFST_EIFS_MASK);
+ ifst = (IEEE80211_DUR_DS_SLOT << ATW_IFST_SLOT_SHIFT) |
+ /* IEEE80211_DUR_DS_SIFS */ /* # of 22MHz cycles */
+ ((22 * 5) << ATW_IFST_SIFS_SHIFT) |
+ (IEEE80211_DUR_DS_DIFS << ATW_IFST_DIFS_SHIFT) |
+ (0x64 << ATW_IFST_EIFS_SHIFT);
ATW_WRITE(sc, ATW_IFST, ifst);
}
@@ -1163,8 +1163,8 @@ atw_response_times_init(struct atw_softc
* it waits at most SIFS + MART microseconds for the response.
* Surely this is not the ACK timeout?
*/
- ATW_WRITE(sc, ATW_RSPT, LSHIFT(0xffff, ATW_RSPT_MART_MASK) |
- LSHIFT(0xff, ATW_RSPT_MIRT_MASK));
+ ATW_WRITE(sc, ATW_RSPT, (0xffff << ATW_RSPT_MART_SHIFT) |
+ (0xff << ATW_RSPT_MIRT_SHIFT));
}
/* Set up the MMI read/write addresses for the baseband. The Tx/Rx
@@ -1270,8 +1270,8 @@ atw_init(struct ifnet *ifp)
*
* XXX Set transmit power for ATIM, RTS, Beacon.
*/
- ATW_WRITE(sc, ATW_PLCPHD, LSHIFT(10, ATW_PLCPHD_SIGNAL_MASK) |
- LSHIFT(0xb0, ATW_PLCPHD_SERVICE_MASK));
+ ATW_WRITE(sc, ATW_PLCPHD, (10 << ATW_PLCPHD_SIGNAL_SHIFT) |
+ (0xb0 << ATW_PLCPHD_SERVICE_SHIFT));
atw_tofs2_init(sc);
@@ -1293,7 +1293,7 @@ atw_init(struct ifnet *ifp)
* XXX A frame may only dribble in for 65536us.
*/
ATW_WRITE(sc, ATW_RMD,
- LSHIFT(1, ATW_RMD_PCNT) | LSHIFT(0xffff, ATW_RMD_RMRD_MASK));
+ (1 << ATW_RMD_PCNT_SHIFT) | (0xffff << ATW_RMD_RMRD_SHIFT));
atw_response_times_init(sc);
@@ -1629,7 +1629,7 @@ atw_si4126_tune(struct atw_softc *sc, u_
* REFDIF This is different from the reference driver, which
* always sets SI4126_GAIN to 0.
*/
- gain = LSHIFT(((mhz - 374) > 2047) ? 1 : 0, SI4126_GAIN_KP2_MASK);
+ gain = ((((mhz - 374) > 2047) ? 1 : 0) << SI4126_GAIN_KP2_SHIFT);
atw_si4126_write(sc, SI4126_GAIN, gain);
@@ -1668,7 +1668,7 @@ atw_si4126_tune(struct atw_softc *sc, u_
gpio = ATW_READ(sc, ATW_GPIO);
gpio &= ~(ATW_GPIO_EN_MASK|ATW_GPIO_O_MASK|ATW_GPIO_I_MASK);
- gpio |= LSHIFT(1, ATW_GPIO_EN_MASK);
+ gpio |= (1 << ATW_GPIO_EN_SHIFT);
if ((sc->sc_if.if_flags & IFF_LINK1) != 0 && chan != 14) {
/* Set a Prism RF front-end to a special mode for channel 14?
@@ -1676,7 +1676,7 @@ atw_si4126_tune(struct atw_softc *sc, u_
* Apparently the SMC2635W needs this, although I don't think
* it has a Prism RF.
*/
- gpio |= LSHIFT(1, ATW_GPIO_O_MASK);
+ gpio |= (1 << ATW_GPIO_O_SHIFT);
}
ATW_WRITE(sc, ATW_GPIO, gpio);
@@ -1701,7 +1701,7 @@ atw_rf3000_init(struct atw_softc *sc)
/* CCA is acquisition sensitive */
rc = atw_rf3000_write(sc, RF3000_CCACTL,
- LSHIFT(RF3000_CCACTL_MODE_BOTH, RF3000_CCACTL_MODE_MASK));
+ (RF3000_CCACTL_MODE_BOTH << RF3000_CCACTL_MODE_SHIFT));
if (rc != 0)
goto out;
@@ -1714,14 +1714,14 @@ atw_rf3000_init(struct atw_softc *sc)
/* sensible setting from a binary-only driver */
rc = atw_rf3000_write(sc, RF3000_GAINCTL,
- LSHIFT(0x1d, RF3000_GAINCTL_TXVGC_MASK));
+ (0x1d << RF3000_GAINCTL_TXVGC_SHIFT));
if (rc != 0)
goto out;
/* magic from a binary-only driver */
rc = atw_rf3000_write(sc, RF3000_LOGAINCAL,
- LSHIFT(0x38, RF3000_LOGAINCAL_CAL_MASK));
+ (0x38 << RF3000_LOGAINCAL_CAL_SHIFT));
if (rc != 0)
goto out;
@@ -1806,7 +1806,7 @@ atw_rf3000_tune(struct atw_softc *sc, u_
atw_bbp_io_enable(sc, 1);
if ((rc = atw_rf3000_write(sc, RF3000_GAINCTL,
- LSHIFT(txpower, RF3000_GAINCTL_TXVGC_MASK))) != 0)
+ (txpower << RF3000_GAINCTL_TXVGC_SHIFT))) != 0)
goto out;
if ((rc = atw_rf3000_write(sc, RF3000_LOGAINCAL, lpf_cutoff)) != 0)
@@ -1832,8 +1832,8 @@ out:
/* set beacon, rts, atim transmit power */
reg = ATW_READ(sc, ATW_PLCPHD);
reg &= ~ATW_PLCPHD_SERVICE_MASK;
- reg |= LSHIFT(LSHIFT(txpower, RF3000_GAINCTL_TXVGC_MASK),
- ATW_PLCPHD_SERVICE_MASK);
+ reg |= ((txpower << RF3000_GAINCTL_TXVGC_SHIFT) <<
+ ATW_PLCPHD_SERVICE_SHIFT);
ATW_WRITE(sc, ATW_PLCPHD, reg);
DELAY(2 * 1000);
@@ -1852,8 +1852,8 @@ atw_rf3000_write(struct atw_softc *sc, u
int i;
reg = sc->sc_bbpctl_wr |
- LSHIFT(val & 0xff, ATW_BBPCTL_DATA_MASK) |
- LSHIFT(addr & 0x7f, ATW_BBPCTL_ADDR_MASK);
+ ((val & 0xff) << ATW_BBPCTL_DATA_SHIFT) |
+ ((addr & 0x7f) << ATW_BBPCTL_ADDR_SHIFT);
for (i = 10; --i >= 0; ) {
ATW_WRITE(sc, ATW_BBPCTL, reg);
@@ -1901,7 +1901,7 @@ atw_rf3000_read(struct atw_softc *sc, u_
return ETIMEDOUT;
}
- reg = sc->sc_bbpctl_rd | LSHIFT(addr & 0x7f, ATW_BBPCTL_ADDR_MASK);
+ reg = sc->sc_bbpctl_rd | ((addr & 0x7f) << ATW_BBPCTL_ADDR_SHIFT);
ATW_WRITE(sc, ATW_BBPCTL, reg);
@@ -1949,8 +1949,8 @@ atw_si4126_write(struct atw_softc *sc, u
KASSERT((addr & ~PRESHIFT(SI4126_TWI_ADDR_MASK)) == 0);
KASSERT((val & ~PRESHIFT(SI4126_TWI_DATA_MASK)) == 0);
- bits = LSHIFT(val, SI4126_TWI_DATA_MASK) |
- LSHIFT(addr, SI4126_TWI_ADDR_MASK);
+ bits = (val << SI4126_TWI_DATA_SHIFT) |
+ (addr << SI4126_TWI_ADDR_SHIFT);
}
reg = ATW_SYNRF_SELSYN;
@@ -2000,7 +2000,7 @@ atw_si4126_read(struct atw_softc *sc, u_
return ETIMEDOUT;
}
- reg = sc->sc_synctl_rd | LSHIFT(addr, ATW_SYNCTL_DATA_MASK);
+ reg = sc->sc_synctl_rd | (addr << ATW_SYNCTL_DATA_SHIFT);
ATW_WRITE(sc, ATW_SYNCTL, reg);
@@ -2113,16 +2113,16 @@ atw_write_bssid(struct atw_softc *sc)
bssid = ic->ic_bss->ni_bssid;
ATW_WRITE(sc, ATW_BSSID0,
- LSHIFT(bssid[0], ATW_BSSID0_BSSIDB0_MASK) |
- LSHIFT(bssid[1], ATW_BSSID0_BSSIDB1_MASK) |
- LSHIFT(bssid[2], ATW_BSSID0_BSSIDB2_MASK) |
- LSHIFT(bssid[3], ATW_BSSID0_BSSIDB3_MASK));
+ (bssid[0] << ATW_BSSID0_BSSIDB0_SHIFT) |
+ (bssid[1] << ATW_BSSID0_BSSIDB1_SHIFT) |
+ (bssid[2] << ATW_BSSID0_BSSIDB2_SHIFT) |
+ (bssid[3] << ATW_BSSID0_BSSIDB3_SHIFT));
ATW_WRITE(sc, ATW_ABDA1,
(ATW_READ(sc, ATW_ABDA1) &
~(ATW_ABDA1_BSSIDB4_MASK|ATW_ABDA1_BSSIDB5_MASK)) |
- LSHIFT(bssid[4], ATW_ABDA1_BSSIDB4_MASK) |
- LSHIFT(bssid[5], ATW_ABDA1_BSSIDB5_MASK));
+ (bssid[4] << ATW_ABDA1_BSSIDB4_SHIFT) |
+ (bssid[5] << ATW_ABDA1_BSSIDB5_SHIFT));
DPRINTF(sc, ("%s: BSSID %s -> ", sc->sc_dev.dv_xname,
ether_sprintf(sc->sc_bssid)));
@@ -2150,11 +2150,11 @@ atw_write_sram(struct atw_softc *sc, u_i
for (i = 0; i < buflen; i += 2) {
ATW_WRITE(sc, ATW_WEPCTL, ATW_WEPCTL_WR |
- LSHIFT((ofs + i) / 2, ATW_WEPCTL_TBLADD_MASK));
+ (((ofs + i) / 2) << ATW_WEPCTL_TBLADD_SHIFT));
DELAY(atw_writewep_delay);
ATW_WRITE(sc, ATW_WESK,
- LSHIFT((ptr[i + 1] << 8) | ptr[i], ATW_WESK_DATA_MASK));
+ (((ptr[i + 1] << 8) | ptr[i]) << ATW_WESK_DATA_SHIFT));
DELAY(atw_writewep_delay);
}
ATW_WRITE(sc, ATW_WEPCTL, sc->sc_wepctl); /* restore WEP condition */
@@ -2212,7 +2212,7 @@ atw_write_wep(struct atw_softc *sc)
reg = ATW_READ(sc, ATW_MACTEST);
reg |= ATW_MACTEST_MMI_USETXCLK | ATW_MACTEST_FORCE_KEYID;
reg &= ~ATW_MACTEST_KEYID_MASK;
- reg |= LSHIFT(ic->ic_wep_txkey, ATW_MACTEST_KEYID_MASK);
+ reg |= (ic->ic_wep_txkey << ATW_MACTEST_KEYID_SHIFT);
ATW_WRITE(sc, ATW_MACTEST, reg);
sc->sc_wepctl = ATW_WEPCTL_WEPENABLE;
@@ -2371,14 +2371,14 @@ atw_start_beacon(struct atw_softc *sc, i
/* set listen interval
* XXX do software units agree w/ hardware?
*/
- bpli = LSHIFT(ic->ic_bss->ni_intval, ATW_BPLI_BP_MASK) |
- LSHIFT(ic->ic_lintval / ic->ic_bss->ni_intval, ATW_BPLI_LI_MASK);
+ bpli = (ic->ic_bss->ni_intval << ATW_BPLI_BP_SHIFT) |
+ ((ic->ic_lintval / ic->ic_bss->ni_intval) << ATW_BPLI_LI_SHIFT);
chan = ieee80211_chan2ieee(ic, ic->ic_bss->ni_chan);
- bcnt |= LSHIFT(len, ATW_BCNT_BCNT_MASK);
- cap0 |= LSHIFT(chan, ATW_CAP0_CHN_MASK);
- cap1 |= LSHIFT(capinfo, ATW_CAP1_CAPI_MASK);
+ bcnt |= (len << ATW_BCNT_BCNT_SHIFT);
+ cap0 |= (chan << ATW_CAP0_CHN_SHIFT);
+ cap1 |= (capinfo << ATW_CAP1_CAPI_SHIFT);
ATW_WRITE(sc, ATW_BCNT, bcnt);
ATW_WRITE(sc, ATW_BPLI, bpli);
@@ -2475,10 +2475,10 @@ atw_predict_beacon(struct atw_softc *sc)
tbtt = past_even + ival * 10;
ATW_WRITE(sc, ATW_TOFS1,
- LSHIFT(1, ATW_TOFS1_TSFTOFSR_MASK) |
- LSHIFT(TBTTOFS, ATW_TOFS1_TBTTOFS_MASK) |
- LSHIFT(MASK_AND_RSHIFT(tbtt - TBTTOFS * IEEE80211_DUR_TU,
- ATW_TBTTPRE_MASK), ATW_TOFS1_TBTTPRE_MASK));
+ (1 << ATW_TOFS1_TSFTOFSR_SHIFT) |
+ (TBTTOFS << ATW_TOFS1_TBTTOFS_SHIFT) |
+ (MASK_AND_RSHIFT(tbtt - TBTTOFS * IEEE80211_DUR_TU,
+ ATW_TBTTPRE_MASK) << ATW_TOFS1_TBTTPRE_SHIFT));
#undef TBTTOFS
}
@@ -2545,9 +2545,9 @@ atw_newstate(struct ieee80211com *ic, en
* XXX do software units agree w/ hardware?
*/
ATW_WRITE(sc, ATW_BPLI,
- LSHIFT(ic->ic_bss->ni_intval, ATW_BPLI_BP_MASK) |
- LSHIFT(ic->ic_lintval / ic->ic_bss->ni_intval,
- ATW_BPLI_LI_MASK));
+ (ic->ic_bss->ni_intval << ATW_BPLI_BP_SHIFT) |
+ ((ic->ic_lintval / ic->ic_bss->ni_intval) <<
+ ATW_BPLI_LI_SHIFT));
DPRINTF(sc, ("%s: reg[ATW_BPLI] = %08x\n",
sc->sc_dev.dv_xname, ATW_READ(sc, ATW_BPLI)));
@@ -3864,11 +3864,11 @@ atw_start(struct ifnet *ifp)
/* XXX arbitrary retry limit; 8 because I have seen it in
* use already and maybe 0 means "no tries" !
*/
- ctl = htole32(LSHIFT(8, ATW_TXCTL_TL_MASK));
+ ctl = htole32(8 << ATW_TXCTL_TL_SHIFT);
DPRINTF2(sc, ("%s: TXDR <- max(10, %d)\n",
sc->sc_dev.dv_xname, rate * 5));
- ctl |= htole32(LSHIFT(MAX(10, rate * 5), ATW_TXCTL_TXDR_MASK));
+ ctl |= htole32((MAX(10, rate * 5) << ATW_TXCTL_TXDR_SHIFT));
/*
* Initialize the transmit descriptors.
@@ -3888,8 +3888,8 @@ atw_start(struct ifnet *ifp)
txd->at_buf1 = htole32(dmamap->dm_segs[seg].ds_addr);
txd->at_flags =
- htole32(LSHIFT(dmamap->dm_segs[seg].ds_len,
- ATW_TXFLAG_TBS1_MASK)) |
+ htole32(dmamap->dm_segs[seg].ds_len <<
+ ATW_TXFLAG_TBS1_SHIFT) |
((nexttx == (ATW_NTXDESC - 1))
? htole32(ATW_TXFLAG_TER) : 0);
lasttx = nexttx;
Index: atwreg.h
===================================================================
RCS file: /cvs/src/sys/dev/ic/atwreg.h,v
retrieving revision 1.7
diff -u -p -r1.7 atwreg.h
--- atwreg.h 16 Aug 2009 18:03:48 -0000 1.7
+++ atwreg.h 16 Aug 2009 22:52:07 -0000
@@ -75,8 +75,6 @@
: MASK_TO_SHIFT16((m)))
#define MASK_AND_RSHIFT(x, mask) (((x) & (mask)) >> MASK_TO_SHIFT(mask))
-#define LSHIFT(x, mask) ((x) << MASK_TO_SHIFT(mask))
-#define MASK_AND_REPLACE(reg, val, mask) ((reg & ~mask) | LSHIFT(val, mask))
#define PRESHIFT(m) MASK_AND_RSHIFT((m), (m))
#endif /* _BIT_TWIDDLE */
@@ -181,21 +179,23 @@
* receive suspended state
*/
#define ATW_PAR_CAL_MASK 0xc000 /* cache alignment */
+#define ATW_PAR_CAL_SHIFT 14
#define ATW_PAR_CAL_PBL 0x0
/* min(8 DW, PBL) */
-#define ATW_PAR_CAL_8DW LSHIFT(0x1, ATW_PAR_CAL_MASK)
+#define ATW_PAR_CAL_8DW (0x1 << ATW_PAR_CAL_SHIFT)
/* min(16 DW, PBL) */
-#define ATW_PAR_CAL_16DW LSHIFT(0x2, ATW_PAR_CAL_MASK)
+#define ATW_PAR_CAL_16DW (0x2 << ATW_PAR_CAL_SHIFT)
/* min(32 DW, PBL) */
-#define ATW_PAR_CAL_32DW LSHIFT(0x3, ATW_PAR_CAL_MASK)
+#define ATW_PAR_CAL_32DW (0x3 << ATW_PAR_CAL_SHIFT)
#define ATW_PAR_PBL_MASK 0x3f00 /* programmable burst length */
+#define ATW_PAR_PBL_SHIFT 8
#define ATW_PAR_PBL_UNLIMITED 0x0
-#define ATW_PAR_PBL_1DW LSHIFT(0x1, ATW_PAR_PBL_MASK)
-#define ATW_PAR_PBL_2DW LSHIFT(0x2, ATW_PAR_PBL_MASK)
-#define ATW_PAR_PBL_4DW LSHIFT(0x4, ATW_PAR_PBL_MASK)
-#define ATW_PAR_PBL_8DW LSHIFT(0x8, ATW_PAR_PBL_MASK)
-#define ATW_PAR_PBL_16DW LSHIFT(0x16, ATW_PAR_PBL_MASK)
-#define ATW_PAR_PBL_32DW LSHIFT(0x32, ATW_PAR_PBL_MASK)
+#define ATW_PAR_PBL_1DW (0x1 << ATW_PAR_PBL_SHIFT)
+#define ATW_PAR_PBL_2DW (0x2 << ATW_PAR_PBL_SHIFT)
+#define ATW_PAR_PBL_4DW (0x4 << ATW_PAR_PBL_SHIFT)
+#define ATW_PAR_PBL_8DW (0x8 << ATW_PAR_PBL_SHIFT)
+#define ATW_PAR_PBL_16DW (0x16 << ATW_PAR_PBL_SHIFT)
+#define ATW_PAR_PBL_32DW (0x32 << ATW_PAR_PBL_SHIFT)
#define ATW_PAR_BLE (1<<7) /* big/little endian selection
*/
#define ATW_PAR_DSL_MASK 0x7c /* descriptor skip length */
#define ATW_PAR_BAR (1<<1) /* bus arbitration */
@@ -306,16 +306,17 @@
* TX threshold
*/
#define ATW_NAR_TR_MASK 0xc000 /* TX threshold */
-#define ATW_NAR_TR_L64 LSHIFT(0x0, ATW_NAR_TR_MASK)
-#define ATW_NAR_TR_L160 LSHIFT(0x2, ATW_NAR_TR_MASK)
-#define ATW_NAR_TR_L192 LSHIFT(0x3, ATW_NAR_TR_MASK)
-#define ATW_NAR_TR_H96 LSHIFT(0x0, ATW_NAR_TR_MASK)
-#define ATW_NAR_TR_H288 LSHIFT(0x2, ATW_NAR_TR_MASK)
-#define ATW_NAR_TR_H544 LSHIFT(0x3, ATW_NAR_TR_MASK)
+#define ATW_NAR_TR_SHIFT 14
+#define ATW_NAR_TR_L64 (0x0 << ATW_NAR_TR_SHIFT)
+#define ATW_NAR_TR_L160 (0x2 << ATW_NAR_TR_SHIFT)
+#define ATW_NAR_TR_L192 (0x3 << ATW_NAR_TR_SHIFT)
+#define ATW_NAR_TR_H96 (0x0 << ATW_NAR_TR_SHIFT)
+#define ATW_NAR_TR_H288 (0x2 << ATW_NAR_TR_SHIFT)
+#define ATW_NAR_TR_H544 (0x3 << ATW_NAR_TR_SHIFT)
#define ATW_NAR_ST (1<<13) /* start/stop transmit */
#define ATW_NAR_OM_MASK 0xc00 /* operating mode */
#define ATW_NAR_OM_NORMAL 0x0
-#define ATW_NAR_OM_LOOPBACK LSHIFT(0x1, ATW_NAR_OM_MASK)
+#define ATW_NAR_OM_LOOPBACK (0x1 << ATW_NAR_OM_SHIFT)
#define ATW_NAR_MM (1<<7) /* RX any multicast */
#define ATW_NAR_PR (1<<6) /* promiscuous mode */
#define ATW_NAR_EA (1<<5) /* match ad hoc packets (?) */
@@ -373,21 +374,24 @@
#define ATW_TEST1_DBGREAD_MASK 0x70000000 /* "control of read
data,
* debug only"
*/
+#define ATW_TEST1_DBGREAD_SHIFT 28
#define ATW_TEST1_TXWP_MASK 0xe000000 /* select ATW_WTDP
content? */
-#define ATW_TEST1_TXWP_TDBD LSHIFT(0x0, ATW_TEST1_TXWP_MASK)
-#define ATW_TEST1_TXWP_TDBH LSHIFT(0x1, ATW_TEST1_TXWP_MASK)
-#define ATW_TEST1_TXWP_TDBB LSHIFT(0x2, ATW_TEST1_TXWP_MASK)
-#define ATW_TEST1_TXWP_TDBP LSHIFT(0x3, ATW_TEST1_TXWP_MASK)
+#define ATW_TEST1_TXWP_TDBD (0x0 << ATW_TEST1_TXWP_SHIFT)
+#define ATW_TEST1_TXWP_TDBH (0x1 << ATW_TEST1_TXWP_SHIFT)
+#define ATW_TEST1_TXWP_TDBB (0x2 << ATW_TEST1_TXWP_SHIFT)
+#define ATW_TEST1_TXWP_TDBP (0x3 << ATW_TEST1_TXWP_SHIFT)
#define ATW_TEST1_RSVD0_MASK 0x1ffffc0 /* reserved */
#define ATW_TEST1_TESTMODE_MASK 0x30
+#define ATW_TEST1_TESTMODE_SHIFT 4
+
/* normal operation */
-#define ATW_TEST1_TESTMODE_NORMAL LSHIFT(0x0,
ATW_TEST1_TESTMODE_MASK)
+#define ATW_TEST1_TESTMODE_NORMAL (0x0 <<
ATW_TEST1_TESTMODE_SHIFT)
/* MAC-only mode */
-#define ATW_TEST1_TESTMODE_MACONLY LSHIFT(0x1,
ATW_TEST1_TESTMODE_MASK)
+#define ATW_TEST1_TESTMODE_MACONLY (0x1 <<
ATW_TEST1_TESTMODE_SHIFT)
/* normal operation */
-#define ATW_TEST1_TESTMODE_NORMAL2 LSHIFT(0x2,
ATW_TEST1_TESTMODE_MASK)
+#define ATW_TEST1_TESTMODE_NORMAL2 (0x2 <<
ATW_TEST1_TESTMODE_SHIFT)
/* monitor mode */
-#define ATW_TEST1_TESTMODE_MONITOR LSHIFT(0x3,
ATW_TEST1_TESTMODE_MASK)
+#define ATW_TEST1_TESTMODE_MONITOR (0x3 <<
ATW_TEST1_TESTMODE_SHIFT)
#define ATW_TEST1_DUMP_MASK 0xf /* select dump signal
* from dxfer (huh?)
@@ -401,50 +405,52 @@
#define ATW_TEST0_BE_MASK 0xe0000000 /* Bus error state */
#define ATW_TEST0_TS_MASK 0x1c000000 /* Transmit process state */
+#define ATW_TEST0_TS_SHIFT 26
/* Stopped */
-#define ATW_TEST0_TS_STOPPED LSHIFT(0, ATW_TEST0_TS_MASK)
+#define ATW_TEST0_TS_STOPPED (0 << ATW_TEST0_TS_SHIFT)
/* Running - fetch transmit descriptor */
-#define ATW_TEST0_TS_FETCH LSHIFT(1, ATW_TEST0_TS_MASK)
+#define ATW_TEST0_TS_FETCH (1 << ATW_TEST0_TS_SHIFT)
/* Running - wait for end of transmission */
-#define ATW_TEST0_TS_WAIT LSHIFT(2, ATW_TEST0_TS_MASK)
+#define ATW_TEST0_TS_WAIT (2 << ATW_TEST0_TS_SHIFT)
/* Running - read buffer from memory and queue into FIFO */
-#define ATW_TEST0_TS_READING LSHIFT(3, ATW_TEST0_TS_MASK)
-#define ATW_TEST0_TS_RESERVED1 LSHIFT(4, ATW_TEST0_TS_MASK)
-#define ATW_TEST0_TS_RESERVED2 LSHIFT(5, ATW_TEST0_TS_MASK)
+#define ATW_TEST0_TS_READING (3 << ATW_TEST0_TS_SHIFT)
+#define ATW_TEST0_TS_RESERVED1 (4 << ATW_TEST0_TS_SHIFT)
+#define ATW_TEST0_TS_RESERVED2 (5 << ATW_TEST0_TS_SHIFT)
/* Suspended */
-#define ATW_TEST0_TS_SUSPENDED LSHIFT(6, ATW_TEST0_TS_MASK)
+#define ATW_TEST0_TS_SUSPENDED (6 << ATW_TEST0_TS_SHIFT)
/* Running - close transmit descriptor */
-#define ATW_TEST0_TS_CLOSE LSHIFT(7, ATW_TEST0_TS_MASK)
+#define ATW_TEST0_TS_CLOSE (7 << ATW_TEST0_TS_SHIFT)
/* ADM8211C/CR registers */
/* Suspended */
-#define ATW_C_TEST0_TS_SUSPENDED LSHIFT(4, ATW_TEST0_TS_MASK)
+#define ATW_C_TEST0_TS_SUSPENDED (4 << ATW_TEST0_TS_SHIFT)
/* Descriptor write */
-#define ATW_C_TEST0_TS_CLOSE LSHIFT(5, ATW_TEST0_TS_MASK)
+#define ATW_C_TEST0_TS_CLOSE (5 << ATW_TEST0_TS_SHIFT)
/* Last descriptor write */
-#define ATW_C_TEST0_TS_CLOSELAST LSHIFT(6, ATW_TEST0_TS_MASK)
+#define ATW_C_TEST0_TS_CLOSELAST (6 << ATW_TEST0_TS_SHIFT)
/* FIFO full */
-#define ATW_C_TEST0_TS_FIFOFULL LSHIFT(7, ATW_TEST0_TS_MASK)
+#define ATW_C_TEST0_TS_FIFOFULL (7 << ATW_TEST0_TS_SHIFT)
#define ATW_TEST0_RS_MASK 0x3800000 /* Receive process state */
+#define ATW_TEST0_RS_SHIFT 23
/* Stopped */
-#define ATW_TEST0_RS_STOPPED LSHIFT(0, ATW_TEST0_RS_MASK)
+#define ATW_TEST0_RS_STOPPED (0 << ATW_TEST0_RS_SHIFT)
/* Running - fetch receive descriptor */
-#define ATW_TEST0_RS_FETCH LSHIFT(1, ATW_TEST0_RS_MASK)
+#define ATW_TEST0_RS_FETCH (1 << ATW_TEST0_RS_SHIFT)
/* Running - check for end of receive */
-#define ATW_TEST0_RS_CHECK LSHIFT(2, ATW_TEST0_RS_MASK)
+#define ATW_TEST0_RS_CHECK (2 << ATW_TEST0_RS_SHIFT)
/* Running - wait for packet */
-#define ATW_TEST0_RS_WAIT LSHIFT(3, ATW_TEST0_RS_MASK)
+#define ATW_TEST0_RS_WAIT (3 << ATW_TEST0_RS_SHIFT)
/* Suspended */
-#define ATW_TEST0_RS_SUSPENDED LSHIFT(4, ATW_TEST0_RS_MASK)
+#define ATW_TEST0_RS_SUSPENDED (4 << ATW_TEST0_RS_SHIFT)
/* Running - close receive descriptor */
-#define ATW_TEST0_RS_CLOSE LSHIFT(5, ATW_TEST0_RS_MASK)
+#define ATW_TEST0_RS_CLOSE (5 << ATW_TEST0_RS_SHIFT)
/* Running - flush current frame from FIFO */
-#define ATW_TEST0_RS_FLUSH LSHIFT(6, ATW_TEST0_RS_MASK)
+#define ATW_TEST0_RS_FLUSH (6 << ATW_TEST0_RS_SHIFT)
/* Running - queue current frame from FIFO into buffer */
-#define ATW_TEST0_RS_QUEUE LSHIFT(7, ATW_TEST0_RS_MASK)
+#define ATW_TEST0_RS_QUEUE (7 << ATW_TEST0_RS_SHIFT)
#define ATW_TEST0_EPNE (1<<18) /* SEEPROM not detected */
#define ATW_TEST0_EPSNM (1<<17) /* SEEPROM bad
signature */
@@ -465,6 +471,7 @@
#define ATW_WCSR_BLN_MASK 0xe00000 /* lose link after BLN lost
* beacons
*/
+#define ATW_WCSR_BLN_SHIFT 21
#define ATW_WCSR_TSFTWE (1<<20) /* wake up on TSFT out
of
* range
*/
@@ -490,16 +497,21 @@
#define ATW_GPIO_LAT_MASK 0x300000 /* input latch */
#define ATW_GPIO_INTEN_MASK 0xc0000 /* interrupt enable */
#define ATW_GPIO_EN_MASK 0x3f000 /* output enable */
+#define ATW_GPIO_EN_SHIFT 12
#define ATW_GPIO_O_MASK 0xfc0 /* output value */
+#define ATW_GPIO_O_SHIFT 6
#define ATW_GPIO_I_MASK 0x3f /* pin static input */
#define ATW_BBPCTL_TWI (1<<31) /* Intersil 3-wire interface */
#define ATW_BBPCTL_RF3KADDR_MASK 0x7f000000 /* Address for RF3000 */
-#define ATW_BBPCTL_RF3KADDR_ADDR LSHIFT(0x20, ATW_BBPCTL_RF3KADDR_MASK)
+#define ATW_BBPCTL_RF3KADDR_SHIFT 24
+
+#define ATW_BBPCTL_RF3KADDR_ADDR (0x20 << ATW_BBPCTL_RF3KADDR_SHIFT)
#define ATW_BBPCTL_NEGEDGE_DO (1<<23) /* data-out on negative edge */
#define ATW_BBPCTL_NEGEDGE_DI (1<<22) /* data-in on negative edge */
#define ATW_BBPCTL_CCA_ACTLO (1<<21) /* CCA low when busy */
#define ATW_BBPCTL_TYPE_MASK 0x1c0000 /* BBP type */
+#define ATW_BBPCTL_TYPE_SHIFT 18
#define ATW_BBPCTL_WR (1<<17) /* start write; reset on
* completion
*/
@@ -507,7 +519,9 @@
* completion
*/
#define ATW_BBPCTL_ADDR_MASK 0xff00 /* BBP address */
+#define ATW_BBPCTL_ADDR_SHIFT 8
#define ATW_BBPCTL_DATA_MASK 0xff /* BBP data */
+#define ATW_BBPCTL_DATA_SHIFT 0
#define ATW_SYNCTL_WR (1<<31) /* start write; reset on
* completion
@@ -530,30 +544,39 @@
* edge.
*/
#define ATW_SYNCTL_RFTYPE_MASK 0x1c00000 /* RF type */
+#define ATW_SYNCTL_RFTYPE_SHIFT 22
#define ATW_SYNCTL_DATA_MASK 0x3fffff /* synthesizer setting */
#define ATW_PLCPHD_SIGNAL_MASK 0xff000000 /* signal field in PLCP header,
* only for beacon, ATIM, and
* RTS.
*/
+#define ATW_PLCPHD_SIGNAL_SHIFT 24
+
#define ATW_PLCPHD_SERVICE_MASK 0xff0000 /* service field in PLCP
* header; with RFMD BBP,
* sets Tx power for beacon,
* RTS, ATIM.
*/
+#define ATW_PLCPHD_SERVICE_SHIFT 16
#define ATW_PLCPHD_PMBL (1<<15) /* 0: long preamble, 1:
short */
#define ATW_MMIWADDR_LENLO_MASK 0xff000000 /* tx: written
4th */
+#define ATW_MMIWADDR_LENLO_SHIFT 24
#define ATW_MMIWADDR_LENHI_MASK 0xff0000 /* tx: written
3rd */
+#define ATW_MMIWADDR_LENHI_SHIFT 16
#define ATW_MMIWADDR_GAIN_MASK 0xff00 /* tx: written 2nd */
+#define ATW_MMIWADDR_GAIN_SHIFT 8
+
#define ATW_MMIWADDR_RATE_MASK 0xff /* tx: written 1st */
+#define ATW_MMIWADDR_RATE_SHIFT 0
/* was magic 0x100E0C0A */
#define ATW_MMIWADDR_INTERSIL \
- (LSHIFT(0x0c, ATW_MMIWADDR_GAIN_MASK) | \
- LSHIFT(0x0a, ATW_MMIWADDR_RATE_MASK) | \
- LSHIFT(0x0e, ATW_MMIWADDR_LENHI_MASK) | \
- LSHIFT(0x10, ATW_MMIWADDR_LENLO_MASK))
+ ((0x0c << ATW_MMIWADDR_GAIN_SHIFT) | \
+ (0x0a << ATW_MMIWADDR_RATE_SHIFT) | \
+ (0x0e << ATW_MMIWADDR_LENHI_SHIFT) | \
+ (0x10 << ATW_MMIWADDR_LENLO_SHIFT))
/* was magic 0x00009101
*
@@ -562,42 +585,46 @@
* Tx length (high) and Tx length (low) registers back-to-back.
*/
#define ATW_MMIWADDR_RFMD \
- (LSHIFT(RF3000_TWI_AI|RF3000_GAINCTL, ATW_MMIWADDR_GAIN_MASK) | \
- LSHIFT(RF3000_CTL, ATW_MMIWADDR_RATE_MASK))
+ ((RF3000_TWI_AI|RF3000_GAINCTL << ATW_MMIWADDR_GAIN_SHIFT) | \
+ (RF3000_CTL << ATW_MMIWADDR_RATE_SHIFT))
#define ATW_MMIRADDR1_RSVD_MASK 0xff000000
#define ATW_MMIRADDR1_PWRLVL_MASK 0xff0000
#define ATW_MMIRADDR1_RSSI_MASK 0xff00
+#define ATW_MMIRADDR1_RSSI_SHIFT 8
#define ATW_MMIRADDR1_RXSTAT_MASK 0xff
+#define ATW_MMIRADDR1_RXSTAT_SHIFT 0
/* was magic 0x00007c7e
*
* TBD document registers for Intersil 3861 baseband
*/
#define ATW_MMIRADDR1_INTERSIL \
- (LSHIFT(0x7c, ATW_MMIRADDR1_RSSI_MASK) | \
- LSHIFT(0x7e, ATW_MMIRADDR1_RXSTAT_MASK))
+ ((0x7c << ATW_MMIRADDR1_RSSI_SHIFT) | \
+ (0x7e << ATW_MMIRADDR1_RXSTAT_SHIFT))
/* was magic 0x00000301 */
#define ATW_MMIRADDR1_RFMD \
- (LSHIFT(RF3000_RSSI, ATW_MMIRADDR1_RSSI_MASK) | \
- LSHIFT(RF3000_RXSTAT, ATW_MMIRADDR1_RXSTAT_MASK))
+ ((RF3000_RSSI << ATW_MMIRADDR1_RSSI_SHIFT) | \
+ (RF3000_RXSTAT << ATW_MMIRADDR1_RXSTAT_SHIFT))
/* was magic 0x00100000 */
#define ATW_MMIRADDR2_INTERSIL \
- (LSHIFT(0x0, ATW_MMIRADDR2_ID_MASK) | \
- LSHIFT(0x10, ATW_MMIRADDR2_RXPECNT_MASK))
+ ((0x0 << ATW_MMIRADDR2_ID_SHIFT) | \
+ (0x10 << ATW_MMIRADDR2_RXPECNT_SHIFT))
/* was magic 0x7e100000 */
#define ATW_MMIRADDR2_RFMD \
- (LSHIFT(0x7e, ATW_MMIRADDR2_ID_MASK) | \
- LSHIFT(0x10, ATW_MMIRADDR2_RXPECNT_MASK))
+ ((0x7e << ATW_MMIRADDR2_ID_SHIFT) | \
+ (0x10 << ATW_MMIRADDR2_RXPECNT_SHIFT))
#define ATW_MMIRADDR2_ID_MASK 0xff000000 /* 1st element ID in
WEP table
* for Probe Response (huh?)
*/
+#define ATW_MMIRADDR2_ID_SHIFT 24
/* RXPE is re-asserted after RXPECNT * 22MHz. */
#define ATW_MMIRADDR2_RXPECNT_MASK 0xff0000
+#define ATW_MMIRADDR2_RXPECNT_SHIFT 16
#define ATW_MMIRADDR2_PROREXT (1<<15) /* Probe
Response
* 11Mb/s length
* extension.
@@ -622,31 +649,39 @@
* Radio, PHYRST change after
* power-up, in 2ms units
*/
+#define ATW_TOFS2_PWR1UP_SHIFT 28
#define ATW_TOFS2_PWR0PAPE_MASK 0xf000000 /* delay of PAPE going
low
* after internal data
* transmit end, in us
*/
+#define ATW_TOFS2_PWR0PAPE_SHIFT 24
#define ATW_TOFS2_PWR1PAPE_MASK 0xf00000 /* delay of PAPE going
high
* after TXPE asserted, in us
*/
+#define ATW_TOFS2_PWR1PAPE_SHIFT 20
#define ATW_TOFS2_PWR0TRSW_MASK 0xf0000 /* delay of TRSW going low
* after internal data transmit
* end, in us
*/
+#define ATW_TOFS2_PWR0TRSW_SHIFT 16
#define ATW_TOFS2_PWR1TRSW_MASK 0xf000 /* delay of TRSW going high
* after TXPE asserted, in us
*/
+#define ATW_TOFS2_PWR1TRSW_SHIFT 12
#define ATW_TOFS2_PWR0PE2_MASK 0xf00 /* delay of PE2 going low
* after internal data transmit
* end, in us
*/
+#define ATW_TOFS2_PWR0PE2_SHIFT 8
#define ATW_TOFS2_PWR1PE2_MASK 0xf0 /* delay of PE2 going high
* after TXPE asserted, in us
*/
+#define ATW_TOFS2_PWR1PE2_SHIFT 4
#define ATW_TOFS2_PWR0TXPE_MASK 0xf /* delay of TXPE going low
* after internal data transmit
* end, in us
*/
+#define ATW_TOFS2_PWR0TXPE_SHIFT 0
#define ATW_CMDR_PM (1<<19) /* enables power mgmt
* capabilities.
@@ -656,14 +691,16 @@
*/
#define ATW_CMDR_RTE (1<<4) /* enable Rx FIFO threshold */
#define ATW_CMDR_DRT_MASK 0xc /* drain Rx FIFO threshold */
+#define ATW_CMDR_DRT_SHIFT 2
+
/* 32 bytes */
-#define ATW_CMDR_DRT_8DW LSHIFT(0x0, ATW_CMDR_DRT_MASK)
+#define ATW_CMDR_DRT_8DW (0x0 << ATW_CMDR_DRT_SHIFT)
/* 64 bytes */
-#define ATW_CMDR_DRT_16DW LSHIFT(0x1, ATW_CMDR_DRT_MASK)
+#define ATW_CMDR_DRT_16DW (0x1 << ATW_CMDR_DRT_SHIFT)
/* Store & Forward */
-#define ATW_CMDR_DRT_SF LSHIFT(0x2, ATW_CMDR_DRT_MASK)
+#define ATW_CMDR_DRT_SF (0x2 << ATW_CMDR_DRT_SHIFT)
/* Reserved */
-#define ATW_CMDR_DRT_RSVD LSHIFT(0x3, ATW_CMDR_DRT_MASK)
+#define ATW_CMDR_DRT_RSVD (0x3 << ATW_CMDR_DRT_SHIFT)
#define ATW_CMDR_SINT_MASK (1<<1) /* software interrupt---huh? */
/* TBD PCIC */
@@ -698,18 +735,26 @@
/* ATIM destination address, BSSID */
#define ATW_ABDA1_BSSIDB5_MASK 0xff000000
+#define ATW_ABDA1_BSSIDB5_SHIFT 24
#define ATW_ABDA1_BSSIDB4_MASK 0xff0000
+#define ATW_ABDA1_BSSIDB4_SHIFT 16
#define ATW_ABDA1_ATIMB5_MASK 0xff00
#define ATW_ABDA1_ATIMB4_MASK 0xff
/* BSSID */
#define ATW_BSSID0_BSSIDB3_MASK 0xff000000
+#define ATW_BSSID0_BSSIDB3_SHIFT 24
#define ATW_BSSID0_BSSIDB2_MASK 0xff0000
+#define ATW_BSSID0_BSSIDB2_SHIFT 16
#define ATW_BSSID0_BSSIDB1_MASK 0xff00
+#define ATW_BSSID0_BSSIDB1_SHIFT 8
#define ATW_BSSID0_BSSIDB0_MASK 0xff
+#define ATW_BSSID0_BSSIDB0_SHIFT 0
#define ATW_TXLMT_MTMLT_MASK 0xffff0000 /* max TX MSDU lifetime in TU */
+#define ATW_TXLMT_MTMLT_SHIFT 16
#define ATW_TXLMT_SRTYLIM_MASK 0xff /* short retry limit */
+#define ATW_TXLMT_SRTYLIM_SHIFT 0
#define ATW_MIBCNT_FFCNT_MASK 0xff000000 /* FCS failure count */
#define ATW_MIBCNT_AFCNT_MASK 0xff0000 /* ACK failure count */
@@ -719,6 +764,7 @@
#define ATW_BCNT_PLCPH_MASK 0xff0000 /* 11M PLCP length (us) */
#define ATW_BCNT_PLCPL_MASK 0xff00 /* 5.5M PLCP length (us) */
#define ATW_BCNT_BCNT_MASK 0xff /* byte count of beacon frame */
+#define ATW_BCNT_BCNT_SHIFT 0
/* For ADM8211C/CR */
/* ATW_C_TSC_TIMTABSEL = 1 */
@@ -782,9 +828,11 @@
#define ATW_C_SYNRF_RF2958PD ATW_SYNRF_PHYRST
#define ATW_BPLI_BP_MASK 0xffff0000 /* beacon interval in TU */
-#define ATW_BPLI_LI_MASK 0xffff /* STA listen interval in
+#define ATW_BPLI_BP_SHIFT 16
+#define ATW_BPLI_LI_MASK 0xffff /* STA listen interval in
* beacon intervals
*/
+#define ATW_BPLI_LI_SHIFT 0
#define ATW_C_CAP0_TIMLEN1 0xff000000 /* TIM table 1 len in bytes
* including TIM ID (XXX huh?)
@@ -799,8 +847,10 @@
*/
#define ATW_CAP0_RCVDTIM (1<<4) /* receive every DTIM */
#define ATW_CAP0_CHN_MASK 0xf /* current DSSS channel */
+#define ATW_CAP0_CHN_SHIFT 0
#define ATW_CAP1_CAPI_MASK 0xffff0000 /* capability information */
+#define ATW_CAP1_CAPI_SHIFT 16
#define ATW_CAP1_ATIMW_MASK 0xffff /* ATIM window in TU */
#define ATW_RMD_ATIMST (1<<31) /* ATIM frame TX status */
@@ -808,12 +858,15 @@
#define ATW_RMD_PCNT 0xfff0000 /* idle time between
* awake/ps mode, in seconds
*/
-#define ATW_RMD_RMRD_MASK 0xffff /* max RX reception duration
+#define ATW_RMD_PCNT_SHIFT 16
+#define ATW_RMD_RMRD_MASK 0xffff /* max RX reception duration
* in us
*/
+#define ATW_RMD_RMRD_SHIFT 0
#define ATW_CFPP_CFPP 0xff000000 /* CFP unit DTIM */
#define ATW_CFPP_CFPMD 0xffff00 /* CFP max duration in TU */
+#define ATW_CFPP_CFPMD_SHIFT 8
#define ATW_CFPP_DTIMP 0xff /* DTIM period in beacon
* intervals
*/
@@ -821,6 +874,7 @@
* in 1 microsecond.
* Depends PCI bus speed?
*/
+#define ATW_TOFS0_USCNT_SHIFT 24
#define ATW_C_TOFS0_TUCNT_MASK 0x7c00 /* PIFS (microseconds) */
#define ATW_TOFS0_TUCNT_MASK 0x3ff /* TU counter in microseconds */
@@ -829,22 +883,31 @@
* microseconds: RF+BBP
* latency
*/
+#define ATW_TOFS1_TSFTOFSR_SHIFT 24
#define ATW_TOFS1_TBTTPRE_MASK 0xffff00 /* prediction time, (next
* Nth TBTT - TBTTOFS) in
* microseconds (huh?). To
* match TSFT[25:10] (huh?).
*/
+#define ATW_TOFS1_TBTTPRE_SHIFT 8
#define ATW_TBTTPRE_MASK 0x3fffc00
-#define ATW_TOFS1_TBTTOFS_MASK 0xff /* wake-up time offset before
+#define ATW_TOFS1_TBTTOFS_MASK 0xff /* wake-up time offset before
* TBTT in TU
*/
+#define ATW_TOFS1_TBTTOFS_SHIFT 0
#define ATW_IFST_SLOT_MASK 0xf800000 /* SLOT time in us */
+#define ATW_IFST_SLOT_SHIFT 23
#define ATW_IFST_SIFS_MASK 0x7f8000 /* SIFS time in us */
+#define ATW_IFST_SIFS_SHIFT 15
#define ATW_IFST_DIFS_MASK 0x7e00 /* DIFS time in us */
+#define ATW_IFST_DIFS_SHIFT 9
#define ATW_IFST_EIFS_MASK 0x1ff /* EIFS time in us */
+#define ATW_IFST_EIFS_SHIFT 0
#define ATW_RSPT_MART_MASK 0xffff0000 /* max response time in us */
+#define ATW_RSPT_MART_SHIFT 16
#define ATW_RSPT_MIRT_MASK 0xff00 /* min response time in us */
+#define ATW_RSPT_MIRT_SHIFT 8
#define ATW_RSPT_TSFTOFST_MASK 0xff /* TX TSFT offset in us */
#define ATW_WEPCTL_WEPENABLE (1<<31) /* enable WEP engine */
@@ -863,6 +926,7 @@
* table.
*/
#define ATW_WEPCTL_TBLADD_MASK 0x1ff /* add to table */
+#define ATW_WEPCTL_TBLADD_SHIFT 0
/* set these bits in the second byte of a SRAM shared key record to affect
* the use and interpretation of the key in the record.
@@ -871,6 +935,7 @@
#define ATW_WEP_104BIT (1<<6)
#define ATW_WESK_DATA_MASK 0xffff /* data */
+#define ATW_WESK_DATA_SHIFT 0
#define ATW_WEPCNT_WIEC_MASK 0xffff /* WEP ICV error count */
#define ATW_MACTEST_FORCE_IV (1<<23)
@@ -951,7 +1016,9 @@ struct atw_txdesc {
#define ATW_TXCTL_OWN (1<<31) /* 1: ready to transmit */
#define ATW_TXCTL_DONE (1<<30) /* 0: not processed */
#define ATW_TXCTL_TXDR_MASK 0xff00000 /* TX data rate (?) */
+#define ATW_TXCTL_TXDR_SHIFT 20
#define ATW_TXCTL_TL_MASK 0xfffff /* retry limit, 0 - 255 */
+#define ATW_TXCTL_TL_SHIFT 0
#define ATW_TXSTAT_OWN ATW_TXCTL_OWN /* 0: not for transmission */
#define ATW_TXSTAT_DONE ATW_TXCTL_DONE /* 1: been processed */
@@ -972,6 +1039,7 @@ struct atw_txdesc {
#define ATW_TXFLAG_TCH (1<<24) /* at_buf2 is 2nd chain */
#define ATW_TXFLAG_TBS2_MASK 0xfff000 /* at_buf2 byte count */
#define ATW_TXFLAG_TBS1_MASK 0xfff /* at_buf1 byte count */
+#define ATW_TXFLAG_TBS1_SHIFT 0
/* Rx descriptor */
struct atw_rxdesc {
@@ -987,6 +1055,7 @@ struct atw_rxdesc {
#define ATW_RXCTL_RCH (1<<24) /* ar_buf2 is 2nd chain */
#define ATW_RXCTL_RBS2_MASK 0xfff000 /* ar_buf2 byte count */
#define ATW_RXCTL_RBS1_MASK 0xfff /* ar_buf1 byte count */
+#define ATW_RXCTL_RBS1_SHIFT 0
#define ATW_RXSTAT_OWN (1<<31) /* 1: NIC may fill descriptor */
#define ATW_RXSTAT_ES (1<<30) /* error summary, 0 on
Index: atwvar.h
===================================================================
RCS file: /cvs/src/sys/dev/ic/atwvar.h,v
retrieving revision 1.20
diff -u -p -r1.20 atwvar.h
--- atwvar.h 16 Aug 2009 18:03:48 -0000 1.20
+++ atwvar.h 16 Aug 2009 22:52:07 -0000
@@ -396,8 +396,8 @@ do {
\
__rxd->ar_buf2 = /* for descriptor chaining */ \
htole32(ATW_CDRXADDR((sc), ATW_NEXTRX((x)))); \
__rxd->ar_ctl = \
- htole32(LSHIFT(((__m->m_ext.ext_size - 1) & ~0x3U), \
- ATW_RXCTL_RBS1_MASK) | \
+ htole32((((__m->m_ext.ext_size - 1) & ~0x3U) << \
+ ATW_RXCTL_RBS1_SHIFT) | \
0 /* ATW_RXCTL_RCH */ | \
((x) == (ATW_NRXDESC - 1) ? ATW_RXCTL_RER : 0)); \
__rxd->ar_stat = htole32(ATW_RXSTAT_OWN); \
Index: rf3000reg.h
===================================================================
RCS file: /cvs/src/sys/dev/ic/rf3000reg.h,v
retrieving revision 1.3
diff -u -p -r1.3 rf3000reg.h
--- rf3000reg.h 16 Aug 2009 18:03:48 -0000 1.3
+++ rf3000reg.h 16 Aug 2009 22:52:07 -0000
@@ -68,6 +68,7 @@
#define RF3000_CCACTL 0x02 /* CCA control */
/* CCA mode */
#define RF3000_CCACTL_MODE_MASK 0xc0
+#define RF3000_CCACTL_MODE_SHIFT 6
#define RF3000_CCACTL_MODE_RSSIT 0 /* RSSI
threshold */
#define RF3000_CCACTL_MODE_ACQ 1 /* acquisition
*/
#define RF3000_CCACTL_MODE_BOTH 2 /* threshold or
acq. */
@@ -82,9 +83,11 @@
#define RF3000_RSSI_MASK 0x3f
#define RF3000_GAINCTL 0x11 /* TX variable gain control */
#define RF3000_GAINCTL_TXVGC_MASK 0xfc
+#define RF3000_GAINCTL_TXVGC_SHIFT 2
#define RF3000_GAINCTL_SCRAMBLER (1<<1)
#define RF3000_LOGAINCAL 0x14 /* low gain calibration
*/
#define RF3000_LOGAINCAL_CAL_MASK 0x3f
+#define RF3000_LOGAINCAL_CAL_SHIFT 0
#define RF3000_HIGAINCAL 0x15 /* high gain
calibration */
#define RF3000_HIGAINCAL_CAL_MASK 0x3f
#define RF3000_HIGAINCAL_DSSSPAD (1<<6) /* 6dB gain pad
for DSSS
Index: si4136reg.h
===================================================================
RCS file: /cvs/src/sys/dev/ic/si4136reg.h,v
retrieving revision 1.3
diff -u -p -r1.3 si4136reg.h
--- si4136reg.h 16 Aug 2009 18:03:48 -0000 1.3
+++ si4136reg.h 16 Aug 2009 22:52:07 -0000
@@ -39,7 +39,9 @@
* Serial bus format for Silicon Laboratories Si4126/Si4136 RF synthesizer.
*/
#define SI4126_TWI_DATA_MASK 0x3ffff0
+#define SI4126_TWI_DATA_SHIFT 4
#define SI4126_TWI_ADDR_MASK 0xf
+#define SI4126_TWI_ADDR_SHIFT 0
/*
* Registers for Silicon Laboratories Si4126/Si4136 RF synthesizer.
@@ -71,6 +73,7 @@
#define SI4126_GAIN 1 /* phase detector gain */
#define SI4126_GAIN_KPI_MASK 0x30 /* IF phase detector gain */
#define SI4126_GAIN_KP2_MASK 0xc /* RF2 phase detector gain */
+#define SI4126_GAIN_KP2_SHIFT 2
#define SI4126_GAIN_KP1_MASK 0x3 /* RF1 phase detector gain */
#define SI4126_POWER 2 /* powerdown */