Bug Summary

File:dev/ic/atw.c
Warning:line 3930, column 3
Value stored to 'last_txs' is never read

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple amd64-unknown-openbsd7.4 -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name atw.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model static -mframe-pointer=all -relaxed-aliasing -ffp-contract=on -fno-rounding-math -mconstructor-aliases -ffreestanding -mcmodel=kernel -target-cpu x86-64 -target-feature +retpoline-indirect-calls -target-feature +retpoline-indirect-branches -target-feature -sse2 -target-feature -sse -target-feature -3dnow -target-feature -mmx -target-feature +save-args -target-feature +retpoline-external-thunk -disable-red-zone -no-implicit-float -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/usr/src/sys/arch/amd64/compile/GENERIC.MP/obj -nostdsysteminc -nobuiltininc -resource-dir /usr/local/llvm16/lib/clang/16 -I /usr/src/sys -I /usr/src/sys/arch/amd64/compile/GENERIC.MP/obj -I /usr/src/sys/arch -I /usr/src/sys/dev/pci/drm/include -I /usr/src/sys/dev/pci/drm/include/uapi -I /usr/src/sys/dev/pci/drm/amd/include/asic_reg -I /usr/src/sys/dev/pci/drm/amd/include -I /usr/src/sys/dev/pci/drm/amd/amdgpu -I /usr/src/sys/dev/pci/drm/amd/display -I /usr/src/sys/dev/pci/drm/amd/display/include -I /usr/src/sys/dev/pci/drm/amd/display/dc -I /usr/src/sys/dev/pci/drm/amd/display/amdgpu_dm -I /usr/src/sys/dev/pci/drm/amd/pm/inc -I /usr/src/sys/dev/pci/drm/amd/pm/legacy-dpm -I /usr/src/sys/dev/pci/drm/amd/pm/swsmu -I /usr/src/sys/dev/pci/drm/amd/pm/swsmu/inc -I /usr/src/sys/dev/pci/drm/amd/pm/swsmu/smu11 -I /usr/src/sys/dev/pci/drm/amd/pm/swsmu/smu12 -I /usr/src/sys/dev/pci/drm/amd/pm/swsmu/smu13 -I /usr/src/sys/dev/pci/drm/amd/pm/powerplay/inc -I /usr/src/sys/dev/pci/drm/amd/pm/powerplay/hwmgr -I /usr/src/sys/dev/pci/drm/amd/pm/powerplay/smumgr -I /usr/src/sys/dev/pci/drm/amd/pm/swsmu/inc -I /usr/src/sys/dev/pci/drm/amd/pm/swsmu/inc/pmfw_if -I /usr/src/sys/dev/pci/drm/amd/display/dc/inc -I /usr/src/sys/dev/pci/drm/amd/display/dc/inc/hw -I /usr/src/sys/dev/pci/drm/amd/display/dc/clk_mgr -I /usr/src/sys/dev/pci/drm/amd/display/modules/inc -I /usr/src/sys/dev/pci/drm/amd/display/modules/hdcp -I /usr/src/sys/dev/pci/drm/amd/display/dmub/inc -I /usr/src/sys/dev/pci/drm/i915 -D DDB -D DIAGNOSTIC -D KTRACE -D ACCOUNTING -D KMEMSTATS -D PTRACE -D POOL_DEBUG -D CRYPTO -D SYSVMSG -D SYSVSEM -D SYSVSHM -D UVM_SWAP_ENCRYPT -D FFS -D FFS2 -D FFS_SOFTUPDATES -D UFS_DIRHASH -D QUOTA -D EXT2FS -D MFS -D NFSCLIENT -D NFSSERVER -D CD9660 -D UDF -D MSDOSFS -D FIFO -D FUSE -D SOCKET_SPLICE -D TCP_ECN -D TCP_SIGNATURE -D INET6 -D IPSEC -D PPP_BSDCOMP -D PPP_DEFLATE -D PIPEX -D MROUTING -D MPLS -D BOOT_CONFIG -D USER_PCICONF -D APERTURE -D MTRR -D NTFS -D SUSPEND -D HIBERNATE -D PCIVERBOSE -D USBVERBOSE -D WSDISPLAY_COMPAT_USL -D WSDISPLAY_COMPAT_RAWKBD -D WSDISPLAY_DEFAULTSCREENS=6 -D X86EMU -D ONEWIREVERBOSE -D MULTIPROCESSOR -D MAXUSERS=80 -D _KERNEL -O2 -Wno-pointer-sign -Wno-address-of-packed-member -Wno-constant-conversion -Wno-unused-but-set-variable -Wno-gnu-folding-constant -fdebug-compilation-dir=/usr/src/sys/arch/amd64/compile/GENERIC.MP/obj -ferror-limit 19 -fwrapv -D_RET_PROTECTOR -ret-protector -fcf-protection=branch -fgnuc-version=4.2.1 -vectorize-loops -vectorize-slp -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-valloc -fno-builtin-free -fno-builtin-strdup -fno-builtin-strndup -analyzer-output=html -faddrsig -o /home/ben/Projects/scan/2024-01-11-110808-61670-1 -x c /usr/src/sys/dev/ic/atw.c
1/* $OpenBSD: atw.c,v 1.100 2022/04/21 21:03:02 stsp Exp $ */
2/* $NetBSD: atw.c,v 1.69 2004/07/23 07:07:55 dyoung Exp $ */
3
4/*-
5 * Copyright (c) 1998, 1999, 2000, 2002, 2003, 2004 The NetBSD Foundation, Inc.
6 * All rights reserved.
7 *
8 * This code is derived from software contributed to The NetBSD Foundation
9 * by David Young, by Jason R. Thorpe, and by Charles M. Hannum.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 * 1. Redistributions of source code must retain the above copyright
15 * notice, this list of conditions and the following disclaimer.
16 * 2. Redistributions in binary form must reproduce the above copyright
17 * notice, this list of conditions and the following disclaimer in the
18 * documentation and/or other materials provided with the distribution.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
21 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
24 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 * POSSIBILITY OF SUCH DAMAGE.
31 */
32
33/*
34 * Device driver for the ADMtek ADM8211 802.11 MAC/BBP.
35 */
36
37#include "bpfilter.h"
38
39#include <sys/param.h>
40#include <sys/systm.h>
41#include <sys/mbuf.h>
42#include <sys/malloc.h>
43#include <sys/kernel.h>
44#include <sys/socket.h>
45#include <sys/ioctl.h>
46#include <sys/errno.h>
47#include <sys/device.h>
48#include <sys/time.h>
49#include <sys/endian.h>
50
51#include <net/if.h>
52#include <net/if_media.h>
53
54#if NBPFILTER1 > 0
55#include <net/bpf.h>
56#endif
57
58#include <netinet/in.h>
59#include <netinet/if_ether.h>
60
61#include <net80211/ieee80211_var.h>
62#include <net80211/ieee80211_radiotap.h>
63
64#include <machine/bus.h>
65#include <machine/intr.h>
66
67#include <dev/ic/atwreg.h>
68#include <dev/ic/rf3000reg.h>
69#include <dev/ic/si4136reg.h>
70#include <dev/ic/atwvar.h>
71#include <dev/ic/smc93cx6var.h>
72
73/* XXX TBD open questions
74 *
75 *
76 * When should I set DSSS PAD in reg 0x15 of RF3000? In 1-2Mbps
77 * modes only, or all modes (5.5-11 Mbps CCK modes, too?) Does the MAC
78 * handle this for me?
79 *
80 */
81/* device attachment
82 *
83 * print TOFS[012]
84 *
85 * device initialization
86 *
87 * clear ATW_FRCTL_MAXPSP to disable max power saving
88 * set ATW_TXBR_ALCUPDATE to enable ALC
89 * set TOFS[012]? (hope not)
90 * disable rx/tx
91 * set ATW_PAR_SWR (software reset)
92 * wait for ATW_PAR_SWR clear
93 * disable interrupts
94 * ack status register
95 * enable interrupts
96 *
97 * rx/tx initialization
98 *
99 * disable rx/tx w/ ATW_NAR_SR, ATW_NAR_ST
100 * allocate and init descriptor rings
101 * write ATW_PAR_DSL (descriptor skip length)
102 * write descriptor base addrs: ATW_TDBD, ATW_TDBP, write ATW_RDB
103 * write ATW_NAR_SQ for one/both transmit descriptor rings
104 * write ATW_NAR_SQ for one/both transmit descriptor rings
105 * enable rx/tx w/ ATW_NAR_SR, ATW_NAR_ST
106 *
107 * rx/tx end
108 *
109 * stop DMA
110 * disable rx/tx w/ ATW_NAR_SR, ATW_NAR_ST
111 * flush tx w/ ATW_NAR_HF
112 *
113 * scan
114 *
115 * initialize rx/tx
116 *
117 * BSS join: (re)association response
118 *
119 * set ATW_FRCTL_AID
120 *
121 * optimizations ???
122 *
123 */
124
125#define ATW_REFSLAVE /* slavishly do what the reference driver does */
126
127int atw_bbp_io_enable_delay = 20 * 1000;
128int atw_bbp_io_disable_delay = 2 * 1000;
129int atw_writewep_delay = 1000;
130int atw_beacon_len_adjust = 4;
131int atw_dwelltime = 200;
132int atw_xindiv2 = 0;
133
134#ifdef ATW_DEBUG
135int atw_debug = 0;
136
137#define ATW_DPRINTF(x) if (atw_debug > 0) printf x
138#define ATW_DPRINTF2(x) if (atw_debug > 1) printf x
139#define ATW_DPRINTF3(x) if (atw_debug > 2) printf x
140#define DPRINTF(sc, x) if ((sc)->sc_ic.ic_ific_ac.ac_if.if_flags & IFF_DEBUG0x4) printf x
141#define DPRINTF2(sc, x) if ((sc)->sc_ic.ic_ific_ac.ac_if.if_flags & IFF_DEBUG0x4) ATW_DPRINTF2(x)
142#define DPRINTF3(sc, x) if ((sc)->sc_ic.ic_ific_ac.ac_if.if_flags & IFF_DEBUG0x4) ATW_DPRINTF3(x)
143void atw_print_regs(struct atw_softc *, const char *);
144void atw_dump_pkt(struct ifnet *, struct mbuf *);
145
146/* Note well: I never got atw_rf3000_read or atw_si4126_read to work. */
147# ifdef ATW_BBPDEBUG
148int atw_rf3000_read(struct atw_softc *sc, u_int, u_int *);
149void atw_rf3000_print(struct atw_softc *);
150# endif /* ATW_BBPDEBUG */
151
152# ifdef ATW_SYNDEBUG
153int atw_si4126_read(struct atw_softc *, u_int, u_int *);
154void atw_si4126_print(struct atw_softc *);
155# endif /* ATW_SYNDEBUG */
156
157#else
158#define ATW_DPRINTF(x)
159#define ATW_DPRINTF2(x)
160#define ATW_DPRINTF3(x)
161#define DPRINTF(sc, x) /* nothing */
162#define DPRINTF2(sc, x) /* nothing */
163#define DPRINTF3(sc, x) /* nothing */
164#endif
165
166#ifdef ATW_STATS
167void atw_print_stats(struct atw_softc *);
168#endif
169
170const char *atw_printmac(u_int8_t);
171
172/* ifnet methods */
173void atw_start(struct ifnet *);
174void atw_watchdog(struct ifnet *);
175int atw_ioctl(struct ifnet *, u_long, caddr_t);
176int atw_init(struct ifnet *);
177void atw_stop(struct ifnet *, int);
178
179/* Rx/Tx process */
180void atw_rxdrain(struct atw_softc *);
181void atw_txdrain(struct atw_softc *);
182int atw_add_rxbuf(struct atw_softc *, int);
183void atw_idle(struct atw_softc *, u_int32_t);
184
185/* Device (de)activation and power state */
186void atw_disable(struct atw_softc *);
187void atw_reset(struct atw_softc *);
188
189/* Interrupt handlers */
190void atw_rxintr(struct atw_softc *);
191void atw_txintr(struct atw_softc *);
192void atw_linkintr(struct atw_softc *, u_int32_t);
193
194/* 802.11 state machine */
195int atw_newstate(struct ieee80211com *, enum ieee80211_state, int);
196int atw_tune(struct atw_softc *);
197#ifndef IEEE80211_STA_ONLY
198void atw_recv_mgmt(struct ieee80211com *, struct mbuf *,
199 struct ieee80211_node *, struct ieee80211_rxinfo *, int);
200#endif
201void atw_next_scan(void *);
202
203/* Device initialization */
204void atw_wcsr_init(struct atw_softc *);
205void atw_cmdr_init(struct atw_softc *);
206void atw_tofs2_init(struct atw_softc *);
207void atw_txlmt_init(struct atw_softc *);
208void atw_test1_init(struct atw_softc *);
209void atw_rf_reset(struct atw_softc *);
210void atw_cfp_init(struct atw_softc *);
211void atw_tofs0_init(struct atw_softc *);
212void atw_ifs_init(struct atw_softc *);
213void atw_response_times_init(struct atw_softc *);
214void atw_bbp_io_init(struct atw_softc *);
215void atw_nar_init(struct atw_softc *);
216
217/* RAM/ROM utilities */
218void atw_clear_sram(struct atw_softc *);
219void atw_write_sram(struct atw_softc *, u_int, u_int8_t *, u_int);
220int atw_read_srom(struct atw_softc *);
221
222/* BSS setup */
223void atw_predict_beacon(struct atw_softc *sc);
224void atw_start_beacon(struct atw_softc *, int);
225void atw_write_bssid(struct atw_softc *);
226void atw_write_ssid(struct atw_softc *);
227void atw_write_sup_rates(struct atw_softc *);
228void atw_write_wep(struct atw_softc *);
229
230/* Media */
231int atw_media_change(struct ifnet *);
232void atw_media_status(struct ifnet *, struct ifmediareq *);
233
234void atw_filter_setup(struct atw_softc *);
235
236/* 802.11 utilities */
237struct ieee80211_node *atw_node_alloc(struct ieee80211com *);
238void atw_node_free(struct ieee80211com *, struct ieee80211_node *);
239static __inline uint32_t atw_last_even_tsft(uint32_t, uint32_t, uint32_t);
240uint64_t atw_get_tsft(struct atw_softc *sc);
241void atw_change_ibss(struct atw_softc *);
242int atw_compute_duration1(int, int, uint32_t, int, struct atw_duration *);
243int atw_compute_duration(struct ieee80211_frame *, int, uint32_t, int,
244 int, struct atw_duration *, struct atw_duration *, int *, int);
245
246/*
247 * Tuner/transceiver/modem
248 */
249void atw_bbp_io_enable(struct atw_softc *, int);
250
251/* RFMD RF3000 Baseband Processor */
252int atw_rf3000_init(struct atw_softc *);
253int atw_rf3000_tune(struct atw_softc *, u_int);
254int atw_rf3000_write(struct atw_softc *, u_int, u_int);
255
256/* Silicon Laboratories Si4126 RF/IF Synthesizer */
257void atw_si4126_tune(struct atw_softc *, u_int);
258void atw_si4126_write(struct atw_softc *, u_int, u_int);
259void atw_si4126_init(struct atw_softc *);
260
261const struct atw_txthresh_tab atw_txthresh_tab_lo[] = {
262 { ATW_NAR_TR_L64((0x0) << ((((u_long)((((((0xc000)) - 1) & ((0xc000
))) ^ ((0xc000)))) >> (16)) != 0) ? 16 + ((((u_long)(((
((((0xc000) >> 16)) - 1) & (((0xc000) >> 16))
) ^ (((0xc000) >> 16)))) >> (8)) != 0) ? 8 + ((((
u_long)((((((((0xc000) >> 16) >> 8)) - 1) & (
(((0xc000) >> 16) >> 8))) ^ ((((0xc000) >> 16
) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((
((0xc000) >> 16) >> 8) >> 4)) - 1) & ((
(((0xc000) >> 16) >> 8) >> 4))) ^ (((((0xc000
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xc000) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xc000) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xc000) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xc000) >> 16) >> 8) >>
4))) - 1) & ((((((0xc000) >> 16) >> 8) >>
4)))) ^ ((((((0xc000) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xc000
) >> 16) >> 8))) - 1) & (((((0xc000) >>
16) >> 8)))) ^ (((((0xc000) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xc000) >>
16) >> 8)) >> 2)) - 1) & ((((((0xc000) >>
16) >> 8)) >> 2))) ^ ((((((0xc000) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xc000) >> 16) >> 8)))) - 1) & (((
(((0xc000) >> 16) >> 8))))) ^ ((((((0xc000) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xc000) >> 16))) - 1) & ((((0xc000) >>
16)))) ^ ((((0xc000) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xc000) >> 16)) >> 4)) - 1
) & (((((0xc000) >> 16)) >> 4))) ^ (((((0xc000
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xc000) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xc000) >> 16)) >> 4) >>
2))) ^ ((((((0xc000) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)
>> 16)) >> 4))) - 1) & ((((((0xc000) >>
16)) >> 4)))) ^ ((((((0xc000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xc000
) >> 16)))) - 1) & (((((0xc000) >> 16))))) ^ (
((((0xc000) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xc000) >> 16))) >> 2)) - 1) & (((
(((0xc000) >> 16))) >> 2))) ^ ((((((0xc000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xc000) >> 16))))) - 1) & ((((((0xc000) >>
16)))))) ^ ((((((0xc000) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xc000))) - 1) & (((0xc000
)))) ^ (((0xc000))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xc000)) >> 8)) - 1) & ((((0xc000)) >> 8
))) ^ ((((0xc000)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xc000)) >> 8) >> 4)) - 1) &
(((((0xc000)) >> 8) >> 4))) ^ (((((0xc000)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xc000)) >> 8) >> 4) >> 2)) - 1) &
((((((0xc000)) >> 8) >> 4) >> 2))) ^ (((((
(0xc000)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)) >> 8) >>
4))) - 1) & ((((((0xc000)) >> 8) >> 4)))) ^ (
(((((0xc000)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xc000)) >> 8))) - 1) &
(((((0xc000)) >> 8)))) ^ (((((0xc000)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xc000)) >>
8)) >> 2)) - 1) & ((((((0xc000)) >> 8)) >>
2))) ^ ((((((0xc000)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)) >> 8
)))) - 1) & ((((((0xc000)) >> 8))))) ^ ((((((0xc000
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xc000)))) - 1) & ((((0xc000))))) ^ ((((0xc000))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xc000))) >>
4)) - 1) & (((((0xc000))) >> 4))) ^ (((((0xc000)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xc000))) >> 4) >> 2)) - 1) & ((((((0xc000)
)) >> 4) >> 2))) ^ ((((((0xc000))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000
))) >> 4))) - 1) & ((((((0xc000))) >> 4)))) ^
((((((0xc000))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xc000))))) - 1) & (((((0xc000)))
))) ^ (((((0xc000))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xc000)))) >> 2)) - 1) & ((((((0xc000)))
) >> 2))) ^ ((((((0xc000)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)))))) - 1) &
((((((0xc000))))))) ^ ((((((0xc000)))))))) >> (1)) != 0
) ? 1 : 0))))))
, "64 bytes" },
263 { ATW_NAR_TR_L160((0x2) << ((((u_long)((((((0xc000)) - 1) & ((0xc000
))) ^ ((0xc000)))) >> (16)) != 0) ? 16 + ((((u_long)(((
((((0xc000) >> 16)) - 1) & (((0xc000) >> 16))
) ^ (((0xc000) >> 16)))) >> (8)) != 0) ? 8 + ((((
u_long)((((((((0xc000) >> 16) >> 8)) - 1) & (
(((0xc000) >> 16) >> 8))) ^ ((((0xc000) >> 16
) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((
((0xc000) >> 16) >> 8) >> 4)) - 1) & ((
(((0xc000) >> 16) >> 8) >> 4))) ^ (((((0xc000
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xc000) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xc000) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xc000) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xc000) >> 16) >> 8) >>
4))) - 1) & ((((((0xc000) >> 16) >> 8) >>
4)))) ^ ((((((0xc000) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xc000
) >> 16) >> 8))) - 1) & (((((0xc000) >>
16) >> 8)))) ^ (((((0xc000) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xc000) >>
16) >> 8)) >> 2)) - 1) & ((((((0xc000) >>
16) >> 8)) >> 2))) ^ ((((((0xc000) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xc000) >> 16) >> 8)))) - 1) & (((
(((0xc000) >> 16) >> 8))))) ^ ((((((0xc000) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xc000) >> 16))) - 1) & ((((0xc000) >>
16)))) ^ ((((0xc000) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xc000) >> 16)) >> 4)) - 1
) & (((((0xc000) >> 16)) >> 4))) ^ (((((0xc000
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xc000) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xc000) >> 16)) >> 4) >>
2))) ^ ((((((0xc000) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)
>> 16)) >> 4))) - 1) & ((((((0xc000) >>
16)) >> 4)))) ^ ((((((0xc000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xc000
) >> 16)))) - 1) & (((((0xc000) >> 16))))) ^ (
((((0xc000) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xc000) >> 16))) >> 2)) - 1) & (((
(((0xc000) >> 16))) >> 2))) ^ ((((((0xc000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xc000) >> 16))))) - 1) & ((((((0xc000) >>
16)))))) ^ ((((((0xc000) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xc000))) - 1) & (((0xc000
)))) ^ (((0xc000))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xc000)) >> 8)) - 1) & ((((0xc000)) >> 8
))) ^ ((((0xc000)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xc000)) >> 8) >> 4)) - 1) &
(((((0xc000)) >> 8) >> 4))) ^ (((((0xc000)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xc000)) >> 8) >> 4) >> 2)) - 1) &
((((((0xc000)) >> 8) >> 4) >> 2))) ^ (((((
(0xc000)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)) >> 8) >>
4))) - 1) & ((((((0xc000)) >> 8) >> 4)))) ^ (
(((((0xc000)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xc000)) >> 8))) - 1) &
(((((0xc000)) >> 8)))) ^ (((((0xc000)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xc000)) >>
8)) >> 2)) - 1) & ((((((0xc000)) >> 8)) >>
2))) ^ ((((((0xc000)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)) >> 8
)))) - 1) & ((((((0xc000)) >> 8))))) ^ ((((((0xc000
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xc000)))) - 1) & ((((0xc000))))) ^ ((((0xc000))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xc000))) >>
4)) - 1) & (((((0xc000))) >> 4))) ^ (((((0xc000)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xc000))) >> 4) >> 2)) - 1) & ((((((0xc000)
)) >> 4) >> 2))) ^ ((((((0xc000))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000
))) >> 4))) - 1) & ((((((0xc000))) >> 4)))) ^
((((((0xc000))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xc000))))) - 1) & (((((0xc000)))
))) ^ (((((0xc000))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xc000)))) >> 2)) - 1) & ((((((0xc000)))
) >> 2))) ^ ((((((0xc000)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)))))) - 1) &
((((((0xc000))))))) ^ ((((((0xc000)))))))) >> (1)) != 0
) ? 1 : 0))))))
, "160 bytes" },
264 { ATW_NAR_TR_L192((0x3) << ((((u_long)((((((0xc000)) - 1) & ((0xc000
))) ^ ((0xc000)))) >> (16)) != 0) ? 16 + ((((u_long)(((
((((0xc000) >> 16)) - 1) & (((0xc000) >> 16))
) ^ (((0xc000) >> 16)))) >> (8)) != 0) ? 8 + ((((
u_long)((((((((0xc000) >> 16) >> 8)) - 1) & (
(((0xc000) >> 16) >> 8))) ^ ((((0xc000) >> 16
) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((
((0xc000) >> 16) >> 8) >> 4)) - 1) & ((
(((0xc000) >> 16) >> 8) >> 4))) ^ (((((0xc000
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xc000) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xc000) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xc000) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xc000) >> 16) >> 8) >>
4))) - 1) & ((((((0xc000) >> 16) >> 8) >>
4)))) ^ ((((((0xc000) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xc000
) >> 16) >> 8))) - 1) & (((((0xc000) >>
16) >> 8)))) ^ (((((0xc000) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xc000) >>
16) >> 8)) >> 2)) - 1) & ((((((0xc000) >>
16) >> 8)) >> 2))) ^ ((((((0xc000) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xc000) >> 16) >> 8)))) - 1) & (((
(((0xc000) >> 16) >> 8))))) ^ ((((((0xc000) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xc000) >> 16))) - 1) & ((((0xc000) >>
16)))) ^ ((((0xc000) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xc000) >> 16)) >> 4)) - 1
) & (((((0xc000) >> 16)) >> 4))) ^ (((((0xc000
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xc000) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xc000) >> 16)) >> 4) >>
2))) ^ ((((((0xc000) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)
>> 16)) >> 4))) - 1) & ((((((0xc000) >>
16)) >> 4)))) ^ ((((((0xc000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xc000
) >> 16)))) - 1) & (((((0xc000) >> 16))))) ^ (
((((0xc000) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xc000) >> 16))) >> 2)) - 1) & (((
(((0xc000) >> 16))) >> 2))) ^ ((((((0xc000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xc000) >> 16))))) - 1) & ((((((0xc000) >>
16)))))) ^ ((((((0xc000) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xc000))) - 1) & (((0xc000
)))) ^ (((0xc000))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xc000)) >> 8)) - 1) & ((((0xc000)) >> 8
))) ^ ((((0xc000)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xc000)) >> 8) >> 4)) - 1) &
(((((0xc000)) >> 8) >> 4))) ^ (((((0xc000)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xc000)) >> 8) >> 4) >> 2)) - 1) &
((((((0xc000)) >> 8) >> 4) >> 2))) ^ (((((
(0xc000)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)) >> 8) >>
4))) - 1) & ((((((0xc000)) >> 8) >> 4)))) ^ (
(((((0xc000)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xc000)) >> 8))) - 1) &
(((((0xc000)) >> 8)))) ^ (((((0xc000)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xc000)) >>
8)) >> 2)) - 1) & ((((((0xc000)) >> 8)) >>
2))) ^ ((((((0xc000)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)) >> 8
)))) - 1) & ((((((0xc000)) >> 8))))) ^ ((((((0xc000
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xc000)))) - 1) & ((((0xc000))))) ^ ((((0xc000))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xc000))) >>
4)) - 1) & (((((0xc000))) >> 4))) ^ (((((0xc000)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xc000))) >> 4) >> 2)) - 1) & ((((((0xc000)
)) >> 4) >> 2))) ^ ((((((0xc000))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000
))) >> 4))) - 1) & ((((((0xc000))) >> 4)))) ^
((((((0xc000))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xc000))))) - 1) & (((((0xc000)))
))) ^ (((((0xc000))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xc000)))) >> 2)) - 1) & ((((((0xc000)))
) >> 2))) ^ ((((((0xc000)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)))))) - 1) &
((((((0xc000))))))) ^ ((((((0xc000)))))))) >> (1)) != 0
) ? 1 : 0))))))
, "192 bytes" },
265 { ATW_NAR_SF(1<<21), "store and forward" },
266 { 0, NULL((void *)0) }
267};
268const struct atw_txthresh_tab atw_txthresh_tab_hi[] = {
269 { ATW_NAR_TR_H96((0x0) << ((((u_long)((((((0xc000)) - 1) & ((0xc000
))) ^ ((0xc000)))) >> (16)) != 0) ? 16 + ((((u_long)(((
((((0xc000) >> 16)) - 1) & (((0xc000) >> 16))
) ^ (((0xc000) >> 16)))) >> (8)) != 0) ? 8 + ((((
u_long)((((((((0xc000) >> 16) >> 8)) - 1) & (
(((0xc000) >> 16) >> 8))) ^ ((((0xc000) >> 16
) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((
((0xc000) >> 16) >> 8) >> 4)) - 1) & ((
(((0xc000) >> 16) >> 8) >> 4))) ^ (((((0xc000
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xc000) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xc000) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xc000) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xc000) >> 16) >> 8) >>
4))) - 1) & ((((((0xc000) >> 16) >> 8) >>
4)))) ^ ((((((0xc000) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xc000
) >> 16) >> 8))) - 1) & (((((0xc000) >>
16) >> 8)))) ^ (((((0xc000) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xc000) >>
16) >> 8)) >> 2)) - 1) & ((((((0xc000) >>
16) >> 8)) >> 2))) ^ ((((((0xc000) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xc000) >> 16) >> 8)))) - 1) & (((
(((0xc000) >> 16) >> 8))))) ^ ((((((0xc000) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xc000) >> 16))) - 1) & ((((0xc000) >>
16)))) ^ ((((0xc000) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xc000) >> 16)) >> 4)) - 1
) & (((((0xc000) >> 16)) >> 4))) ^ (((((0xc000
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xc000) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xc000) >> 16)) >> 4) >>
2))) ^ ((((((0xc000) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)
>> 16)) >> 4))) - 1) & ((((((0xc000) >>
16)) >> 4)))) ^ ((((((0xc000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xc000
) >> 16)))) - 1) & (((((0xc000) >> 16))))) ^ (
((((0xc000) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xc000) >> 16))) >> 2)) - 1) & (((
(((0xc000) >> 16))) >> 2))) ^ ((((((0xc000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xc000) >> 16))))) - 1) & ((((((0xc000) >>
16)))))) ^ ((((((0xc000) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xc000))) - 1) & (((0xc000
)))) ^ (((0xc000))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xc000)) >> 8)) - 1) & ((((0xc000)) >> 8
))) ^ ((((0xc000)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xc000)) >> 8) >> 4)) - 1) &
(((((0xc000)) >> 8) >> 4))) ^ (((((0xc000)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xc000)) >> 8) >> 4) >> 2)) - 1) &
((((((0xc000)) >> 8) >> 4) >> 2))) ^ (((((
(0xc000)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)) >> 8) >>
4))) - 1) & ((((((0xc000)) >> 8) >> 4)))) ^ (
(((((0xc000)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xc000)) >> 8))) - 1) &
(((((0xc000)) >> 8)))) ^ (((((0xc000)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xc000)) >>
8)) >> 2)) - 1) & ((((((0xc000)) >> 8)) >>
2))) ^ ((((((0xc000)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)) >> 8
)))) - 1) & ((((((0xc000)) >> 8))))) ^ ((((((0xc000
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xc000)))) - 1) & ((((0xc000))))) ^ ((((0xc000))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xc000))) >>
4)) - 1) & (((((0xc000))) >> 4))) ^ (((((0xc000)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xc000))) >> 4) >> 2)) - 1) & ((((((0xc000)
)) >> 4) >> 2))) ^ ((((((0xc000))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000
))) >> 4))) - 1) & ((((((0xc000))) >> 4)))) ^
((((((0xc000))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xc000))))) - 1) & (((((0xc000)))
))) ^ (((((0xc000))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xc000)))) >> 2)) - 1) & ((((((0xc000)))
) >> 2))) ^ ((((((0xc000)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)))))) - 1) &
((((((0xc000))))))) ^ ((((((0xc000)))))))) >> (1)) != 0
) ? 1 : 0))))))
, "96 bytes" },
270 { ATW_NAR_TR_H288((0x2) << ((((u_long)((((((0xc000)) - 1) & ((0xc000
))) ^ ((0xc000)))) >> (16)) != 0) ? 16 + ((((u_long)(((
((((0xc000) >> 16)) - 1) & (((0xc000) >> 16))
) ^ (((0xc000) >> 16)))) >> (8)) != 0) ? 8 + ((((
u_long)((((((((0xc000) >> 16) >> 8)) - 1) & (
(((0xc000) >> 16) >> 8))) ^ ((((0xc000) >> 16
) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((
((0xc000) >> 16) >> 8) >> 4)) - 1) & ((
(((0xc000) >> 16) >> 8) >> 4))) ^ (((((0xc000
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xc000) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xc000) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xc000) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xc000) >> 16) >> 8) >>
4))) - 1) & ((((((0xc000) >> 16) >> 8) >>
4)))) ^ ((((((0xc000) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xc000
) >> 16) >> 8))) - 1) & (((((0xc000) >>
16) >> 8)))) ^ (((((0xc000) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xc000) >>
16) >> 8)) >> 2)) - 1) & ((((((0xc000) >>
16) >> 8)) >> 2))) ^ ((((((0xc000) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xc000) >> 16) >> 8)))) - 1) & (((
(((0xc000) >> 16) >> 8))))) ^ ((((((0xc000) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xc000) >> 16))) - 1) & ((((0xc000) >>
16)))) ^ ((((0xc000) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xc000) >> 16)) >> 4)) - 1
) & (((((0xc000) >> 16)) >> 4))) ^ (((((0xc000
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xc000) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xc000) >> 16)) >> 4) >>
2))) ^ ((((((0xc000) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)
>> 16)) >> 4))) - 1) & ((((((0xc000) >>
16)) >> 4)))) ^ ((((((0xc000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xc000
) >> 16)))) - 1) & (((((0xc000) >> 16))))) ^ (
((((0xc000) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xc000) >> 16))) >> 2)) - 1) & (((
(((0xc000) >> 16))) >> 2))) ^ ((((((0xc000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xc000) >> 16))))) - 1) & ((((((0xc000) >>
16)))))) ^ ((((((0xc000) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xc000))) - 1) & (((0xc000
)))) ^ (((0xc000))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xc000)) >> 8)) - 1) & ((((0xc000)) >> 8
))) ^ ((((0xc000)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xc000)) >> 8) >> 4)) - 1) &
(((((0xc000)) >> 8) >> 4))) ^ (((((0xc000)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xc000)) >> 8) >> 4) >> 2)) - 1) &
((((((0xc000)) >> 8) >> 4) >> 2))) ^ (((((
(0xc000)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)) >> 8) >>
4))) - 1) & ((((((0xc000)) >> 8) >> 4)))) ^ (
(((((0xc000)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xc000)) >> 8))) - 1) &
(((((0xc000)) >> 8)))) ^ (((((0xc000)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xc000)) >>
8)) >> 2)) - 1) & ((((((0xc000)) >> 8)) >>
2))) ^ ((((((0xc000)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)) >> 8
)))) - 1) & ((((((0xc000)) >> 8))))) ^ ((((((0xc000
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xc000)))) - 1) & ((((0xc000))))) ^ ((((0xc000))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xc000))) >>
4)) - 1) & (((((0xc000))) >> 4))) ^ (((((0xc000)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xc000))) >> 4) >> 2)) - 1) & ((((((0xc000)
)) >> 4) >> 2))) ^ ((((((0xc000))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000
))) >> 4))) - 1) & ((((((0xc000))) >> 4)))) ^
((((((0xc000))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xc000))))) - 1) & (((((0xc000)))
))) ^ (((((0xc000))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xc000)))) >> 2)) - 1) & ((((((0xc000)))
) >> 2))) ^ ((((((0xc000)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)))))) - 1) &
((((((0xc000))))))) ^ ((((((0xc000)))))))) >> (1)) != 0
) ? 1 : 0))))))
, "288 bytes" },
271 { ATW_NAR_TR_H544((0x3) << ((((u_long)((((((0xc000)) - 1) & ((0xc000
))) ^ ((0xc000)))) >> (16)) != 0) ? 16 + ((((u_long)(((
((((0xc000) >> 16)) - 1) & (((0xc000) >> 16))
) ^ (((0xc000) >> 16)))) >> (8)) != 0) ? 8 + ((((
u_long)((((((((0xc000) >> 16) >> 8)) - 1) & (
(((0xc000) >> 16) >> 8))) ^ ((((0xc000) >> 16
) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((
((0xc000) >> 16) >> 8) >> 4)) - 1) & ((
(((0xc000) >> 16) >> 8) >> 4))) ^ (((((0xc000
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xc000) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xc000) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xc000) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xc000) >> 16) >> 8) >>
4))) - 1) & ((((((0xc000) >> 16) >> 8) >>
4)))) ^ ((((((0xc000) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xc000
) >> 16) >> 8))) - 1) & (((((0xc000) >>
16) >> 8)))) ^ (((((0xc000) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xc000) >>
16) >> 8)) >> 2)) - 1) & ((((((0xc000) >>
16) >> 8)) >> 2))) ^ ((((((0xc000) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xc000) >> 16) >> 8)))) - 1) & (((
(((0xc000) >> 16) >> 8))))) ^ ((((((0xc000) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xc000) >> 16))) - 1) & ((((0xc000) >>
16)))) ^ ((((0xc000) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xc000) >> 16)) >> 4)) - 1
) & (((((0xc000) >> 16)) >> 4))) ^ (((((0xc000
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xc000) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xc000) >> 16)) >> 4) >>
2))) ^ ((((((0xc000) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)
>> 16)) >> 4))) - 1) & ((((((0xc000) >>
16)) >> 4)))) ^ ((((((0xc000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xc000
) >> 16)))) - 1) & (((((0xc000) >> 16))))) ^ (
((((0xc000) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xc000) >> 16))) >> 2)) - 1) & (((
(((0xc000) >> 16))) >> 2))) ^ ((((((0xc000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xc000) >> 16))))) - 1) & ((((((0xc000) >>
16)))))) ^ ((((((0xc000) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xc000))) - 1) & (((0xc000
)))) ^ (((0xc000))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xc000)) >> 8)) - 1) & ((((0xc000)) >> 8
))) ^ ((((0xc000)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xc000)) >> 8) >> 4)) - 1) &
(((((0xc000)) >> 8) >> 4))) ^ (((((0xc000)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xc000)) >> 8) >> 4) >> 2)) - 1) &
((((((0xc000)) >> 8) >> 4) >> 2))) ^ (((((
(0xc000)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)) >> 8) >>
4))) - 1) & ((((((0xc000)) >> 8) >> 4)))) ^ (
(((((0xc000)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xc000)) >> 8))) - 1) &
(((((0xc000)) >> 8)))) ^ (((((0xc000)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xc000)) >>
8)) >> 2)) - 1) & ((((((0xc000)) >> 8)) >>
2))) ^ ((((((0xc000)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)) >> 8
)))) - 1) & ((((((0xc000)) >> 8))))) ^ ((((((0xc000
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xc000)))) - 1) & ((((0xc000))))) ^ ((((0xc000))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xc000))) >>
4)) - 1) & (((((0xc000))) >> 4))) ^ (((((0xc000)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xc000))) >> 4) >> 2)) - 1) & ((((((0xc000)
)) >> 4) >> 2))) ^ ((((((0xc000))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000
))) >> 4))) - 1) & ((((((0xc000))) >> 4)))) ^
((((((0xc000))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xc000))))) - 1) & (((((0xc000)))
))) ^ (((((0xc000))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xc000)))) >> 2)) - 1) & ((((((0xc000)))
) >> 2))) ^ ((((((0xc000)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc000)))))) - 1) &
((((((0xc000))))))) ^ ((((((0xc000)))))))) >> (1)) != 0
) ? 1 : 0))))))
, "544 bytes" },
272 { ATW_NAR_SF(1<<21), "store and forward" },
273 { 0, NULL((void *)0) }
274};
275
276struct cfdriver atw_cd = {
277 NULL((void *)0), "atw", DV_IFNET
278};
279
280static const u_int atw_rfmd2958_ifn[] = {
281 0x22bd, 0x22d2, 0x22e8, 0x22fe, 0x2314, 0x232a, 0x2340,
282 0x2355, 0x236b, 0x2381, 0x2397, 0x23ad, 0x23c2, 0x23f7
283};
284
285static const u_int atw_rfmd2958_rf1r[] = {
286 0x05d17, 0x3a2e8, 0x2e8ba, 0x22e8b, 0x1745d, 0x0ba2e, 0x00000,
287 0x345d1, 0x28ba2, 0x1d174, 0x11745, 0x05d17, 0x3a2e8, 0x11745
288};
289
290
291#ifdef ATW_DEBUG
292
293const char *atw_tx_state[] = {
294 "STOPPED",
295 "RUNNING - read descriptor",
296 "RUNNING - transmitting",
297 "RUNNING - filling fifo", /* XXX */
298 "SUSPENDED",
299 "RUNNING -- write descriptor",
300 "RUNNING -- write last descriptor",
301 "RUNNING - fifo full"
302};
303
304const char *atw_rx_state[] = {
305 "STOPPED",
306 "RUNNING - read descriptor",
307 "RUNNING - check this packet, pre-fetch next",
308 "RUNNING - wait for reception",
309 "SUSPENDED",
310 "RUNNING - write descriptor",
311 "RUNNING - flush fifo",
312 "RUNNING - fifo drain"
313};
314
315#endif
316
317/*
318 * atw_enable:
319 *
320 * Enable the ADM8211 chip.
321 */
322int
323atw_enable(struct atw_softc *sc)
324{
325
326 if (ATW_IS_ENABLED(sc)((sc)->sc_flags & 0x00001000) == 0) {
327 if (sc->sc_enable != NULL((void *)0) && (*sc->sc_enable)(sc) != 0) {
328 printf("%s: device enable failed\n",
329 sc->sc_dev.dv_xname);
330 return (EIO5);
331 }
332 sc->sc_flags |= ATWF_ENABLED0x00001000;
333 }
334 return (0);
335}
336
337/*
338 * atw_disable:
339 *
340 * Disable the ADM8211 chip.
341 */
342void
343atw_disable(struct atw_softc *sc)
344{
345 if (!ATW_IS_ENABLED(sc)((sc)->sc_flags & 0x00001000))
346 return;
347 if (sc->sc_disable != NULL((void *)0))
348 (*sc->sc_disable)(sc);
349 sc->sc_flags &= ~ATWF_ENABLED0x00001000;
350}
351
352/* Returns -1 on failure. */
353int
354atw_read_srom(struct atw_softc *sc)
355{
356 struct seeprom_descriptor sd;
357 u_int32_t test0, fail_bits;
358
359 (void)memset(&sd, 0, sizeof(sd))__builtin_memset((&sd), (0), (sizeof(sd)));
360
361 test0 = ATW_READ(sc, ATW_TEST0)(((sc)->sc_st)->read_4(((sc)->sc_sh), ((0x4C))));
362
363 switch (sc->sc_rev) {
364 case ATW_REVISION_BA:
365 case ATW_REVISION_CA:
366 fail_bits = ATW_TEST0_EPNE(1<<18);
367 break;
368 default:
369 fail_bits = ATW_TEST0_EPNE(1<<18)|ATW_TEST0_EPSNM(1<<17);
370 break;
371 }
372 if ((test0 & fail_bits) != 0) {
373 printf("%s: bad or missing/bad SROM\n", sc->sc_dev.dv_xname);
374 return -1;
375 }
376
377 switch (test0 & ATW_TEST0_EPTYP_MASK(1<<16)) {
378 case ATW_TEST0_EPTYP_93c66(1<<16):
379 ATW_DPRINTF(("%s: 93c66 SROM\n", sc->sc_dev.dv_xname));
380 sc->sc_sromsz = 512;
381 sd.sd_chip = C56_66;
382 break;
383 case ATW_TEST0_EPTYP_93c460:
384 ATW_DPRINTF(("%s: 93c46 SROM\n", sc->sc_dev.dv_xname));
385 sc->sc_sromsz = 128;
386 sd.sd_chip = C46;
387 break;
388 default:
389 printf("%s: unknown SROM type %d\n", sc->sc_dev.dv_xname,
390 MASK_AND_RSHIFT(test0, ATW_TEST0_EPTYP_MASK)(((test0) & ((1<<16))) >> ((((u_long)(((((((1
<<16))) - 1) & (((1<<16)))) ^ (((1<<16)
)))) >> (16)) != 0) ? 16 + ((((u_long)((((((((1<<
16)) >> 16)) - 1) & ((((1<<16)) >> 16))
) ^ ((((1<<16)) >> 16)))) >> (8)) != 0) ? 8
+ ((((u_long)(((((((((1<<16)) >> 16) >> 8)
) - 1) & (((((1<<16)) >> 16) >> 8))) ^ (
((((1<<16)) >> 16) >> 8)))) >> (4)) !=
0) ? 4 + ((((u_long)((((((((((1<<16)) >> 16) >>
8) >> 4)) - 1) & ((((((1<<16)) >> 16) >>
8) >> 4))) ^ ((((((1<<16)) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
((((((1<<16)) >> 16) >> 8) >> 4) >>
2)) - 1) & (((((((1<<16)) >> 16) >> 8)
>> 4) >> 2))) ^ (((((((1<<16)) >> 16
) >> 8) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)(((((((((((1<<16)) >> 16) >>
8) >> 4))) - 1) & (((((((1<<16)) >> 16
) >> 8) >> 4)))) ^ (((((((1<<16)) >> 16
) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)) :
((((u_long)((((((((((1<<16)) >> 16) >> 8))
) - 1) & ((((((1<<16)) >> 16) >> 8)))) ^
((((((1<<16)) >> 16) >> 8))))) >> (2
)) != 0) ? 2 + ((((u_long)(((((((((((1<<16)) >> 16
) >> 8)) >> 2)) - 1) & (((((((1<<16)) >>
16) >> 8)) >> 2))) ^ (((((((1<<16)) >>
16) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0)
: ((((u_long)(((((((((((1<<16)) >> 16) >> 8
)))) - 1) & (((((((1<<16)) >> 16) >> 8)
)))) ^ (((((((1<<16)) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)(((((((((1<<16)) >>
16))) - 1) & (((((1<<16)) >> 16)))) ^ (((((1
<<16)) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)((((((((((1<<16)) >> 16)) >> 4)) - 1) &
((((((1<<16)) >> 16)) >> 4))) ^ ((((((1<<
16)) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + (
(((u_long)(((((((((((1<<16)) >> 16)) >> 4) >>
2)) - 1) & (((((((1<<16)) >> 16)) >> 4
) >> 2))) ^ (((((((1<<16)) >> 16)) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
(((((((((((1<<16)) >> 16)) >> 4))) - 1) &
(((((((1<<16)) >> 16)) >> 4)))) ^ (((((((1
<<16)) >> 16)) >> 4))))) >> (1)) != 0
) ? 1 : 0)) : ((((u_long)((((((((((1<<16)) >> 16)
))) - 1) & ((((((1<<16)) >> 16))))) ^ ((((((1
<<16)) >> 16)))))) >> (2)) != 0) ? 2 + ((((
u_long)(((((((((((1<<16)) >> 16))) >> 2)) -
1) & (((((((1<<16)) >> 16))) >> 2))) ^
(((((((1<<16)) >> 16))) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)(((((((((((1<<16)) >>
16))))) - 1) & (((((((1<<16)) >> 16)))))) ^ (
((((((1<<16)) >> 16))))))) >> (1)) != 0) ? 1
: 0)))) : ((((u_long)((((((((1<<16)))) - 1) & ((((
1<<16))))) ^ ((((1<<16)))))) >> (8)) != 0) ?
8 + ((((u_long)(((((((((1<<16))) >> 8)) - 1) &
(((((1<<16))) >> 8))) ^ (((((1<<16))) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)((((((((((1<<
16))) >> 8) >> 4)) - 1) & ((((((1<<16))
) >> 8) >> 4))) ^ ((((((1<<16))) >> 8
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
((((1<<16))) >> 8) >> 4) >> 2)) - 1) &
(((((((1<<16))) >> 8) >> 4) >> 2))) ^
(((((((1<<16))) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)(((((((((((1<<
16))) >> 8) >> 4))) - 1) & (((((((1<<16
))) >> 8) >> 4)))) ^ (((((((1<<16))) >>
8) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)((((((((((1<<16))) >> 8))) - 1) & ((((((1<<
16))) >> 8)))) ^ ((((((1<<16))) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)(((((((((((1<<16))) >>
8)) >> 2)) - 1) & (((((((1<<16))) >> 8
)) >> 2))) ^ (((((((1<<16))) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((((((((((1
<<16))) >> 8)))) - 1) & (((((((1<<16)))
>> 8))))) ^ (((((((1<<16))) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)(((((((((1<<16)))))
- 1) & (((((1<<16)))))) ^ (((((1<<16))))))) >>
(4)) != 0) ? 4 + ((((u_long)((((((((((1<<16)))) >>
4)) - 1) & ((((((1<<16)))) >> 4))) ^ ((((((1
<<16)))) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)(((((((((((1<<16)))) >> 4) >> 2)) - 1) &
(((((((1<<16)))) >> 4) >> 2))) ^ (((((((1<<
16)))) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0
) : ((((u_long)(((((((((((1<<16)))) >> 4))) - 1) &
(((((((1<<16)))) >> 4)))) ^ (((((((1<<16))
)) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)((((((((((1<<16)))))) - 1) & ((((((1<<16))))
))) ^ ((((((1<<16)))))))) >> (2)) != 0) ? 2 + (((
(u_long)(((((((((((1<<16))))) >> 2)) - 1) & (
((((((1<<16))))) >> 2))) ^ (((((((1<<16))))
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
(((((((((1<<16))))))) - 1) & (((((((1<<16))))
)))) ^ (((((((1<<16))))))))) >> (1)) != 0) ? 1 : 0
))))))
);
391 return -1;
392 }
393
394 sc->sc_srom = malloc(sc->sc_sromsz, M_DEVBUF2, M_NOWAIT0x0002 | M_ZERO0x0008);
395 if (sc->sc_srom == NULL((void *)0)) {
396 printf("%s: unable to allocate SROM buffer\n",
397 sc->sc_dev.dv_xname);
398 return -1;
399 }
400
401 /*
402 * ADM8211 has a single 32-bit register for controlling the
403 * 93cx6 SROM. Bit SRS enables the serial port. There is no
404 * "ready" bit. The ADM8211 input/output sense is the reverse
405 * of read_seeprom's.
406 */
407 sd.sd_tag = sc->sc_st;
408 sd.sd_bsh = sc->sc_sh;
409 sd.sd_regsize = 4;
410 sd.sd_control_offset = ATW_SPR0x48;
411 sd.sd_status_offset = ATW_SPR0x48;
412 sd.sd_dataout_offset = ATW_SPR0x48;
413 sd.sd_CK = ATW_SPR_SCLK(1<<1);
414 sd.sd_CS = ATW_SPR_SCS(1<<0);
415 sd.sd_DI = ATW_SPR_SDO(1<<3);
416 sd.sd_DO = ATW_SPR_SDI(1<<2);
417 sd.sd_MS = ATW_SPR_SRS(1<<11);
418 sd.sd_RDY = 0;
419
420 if (!read_seeprom(&sd, sc->sc_srom, 0, sc->sc_sromsz/2)) {
421 printf("%s: could not read SROM\n", sc->sc_dev.dv_xname);
422 free(sc->sc_srom, M_DEVBUF2, sc->sc_sromsz);
423 return -1;
424 }
425#ifdef ATW_DEBUG
426 {
427 int i;
428 ATW_DPRINTF(("\nSerial EEPROM:\n\t"));
429 for (i = 0; i < sc->sc_sromsz/2; i = i + 1) {
430 if (((i % 8) == 0) && (i != 0)) {
431 ATW_DPRINTF(("\n\t"));
432 }
433 ATW_DPRINTF((" 0x%x", sc->sc_srom[i]));
434 }
435 ATW_DPRINTF(("\n"));
436 }
437#endif /* ATW_DEBUG */
438 return 0;
439}
440
441#ifdef ATW_DEBUG
442void
443atw_print_regs(struct atw_softc *sc, const char *where)
444{
445#define PRINTREG(sc, reg) \
446 ATW_DPRINTF2(("%s: reg[ " #reg " / %03x ] = %08x\n", \
447 sc->sc_dev.dv_xname, reg, ATW_READ(sc, reg)))
448
449 ATW_DPRINTF2(("%s: %s\n", sc->sc_dev.dv_xname, where));
450
451 PRINTREG(sc, ATW_PAR0x00);
452 PRINTREG(sc, ATW_FRCTL0x04);
453 PRINTREG(sc, ATW_TDR0x08);
454 PRINTREG(sc, ATW_WTDP0x0C);
455 PRINTREG(sc, ATW_RDR0x10);
456 PRINTREG(sc, ATW_WRDP0x14);
457 PRINTREG(sc, ATW_RDB0x18);
458 PRINTREG(sc, ATW_CSR3A0x1C);
459 PRINTREG(sc, ATW_TDBD0x20);
460 PRINTREG(sc, ATW_TDBP0x24);
461 PRINTREG(sc, ATW_STSR0x28);
462 PRINTREG(sc, ATW_CSR5A0x2C);
463 PRINTREG(sc, ATW_NAR0x30);
464 PRINTREG(sc, ATW_CSR6A0x34);
465 PRINTREG(sc, ATW_IER0x38);
466 PRINTREG(sc, ATW_CSR7A0x3C);
467 PRINTREG(sc, ATW_LPC0x40);
468 PRINTREG(sc, ATW_TEST10x44);
469 PRINTREG(sc, ATW_SPR0x48);
470 PRINTREG(sc, ATW_TEST00x4C);
471 PRINTREG(sc, ATW_WCSR0x50);
472 PRINTREG(sc, ATW_WPDR0x54);
473 PRINTREG(sc, ATW_GPTMR0x58);
474 PRINTREG(sc, ATW_GPIO0x5C);
475 PRINTREG(sc, ATW_BBPCTL0x60);
476 PRINTREG(sc, ATW_SYNCTL0x64);
477 PRINTREG(sc, ATW_PLCPHD0x68);
478 PRINTREG(sc, ATW_MMIWADDR0x6C);
479 PRINTREG(sc, ATW_MMIRADDR10x70);
480 PRINTREG(sc, ATW_MMIRADDR20x74);
481 PRINTREG(sc, ATW_TXBR0x78);
482 PRINTREG(sc, ATW_CSR15A0x7C);
483 PRINTREG(sc, ATW_ALCSTAT0x80);
484 PRINTREG(sc, ATW_TOFS20x84);
485 PRINTREG(sc, ATW_CMDR0x88);
486 PRINTREG(sc, ATW_PCIC0x8C);
487 PRINTREG(sc, ATW_PMCSR0x90);
488 PRINTREG(sc, ATW_PAR00x94);
489 PRINTREG(sc, ATW_PAR10x98);
490 PRINTREG(sc, ATW_MAR00x9C);
491 PRINTREG(sc, ATW_MAR10xA0);
492 PRINTREG(sc, ATW_ATIMDA00xA4);
493 PRINTREG(sc, ATW_ABDA10xA8);
494 PRINTREG(sc, ATW_BSSID00xAC);
495 PRINTREG(sc, ATW_TXLMT0xB0);
496 PRINTREG(sc, ATW_MIBCNT0xB4);
497 PRINTREG(sc, ATW_BCNT0xB8);
498 PRINTREG(sc, ATW_TSFTH0xBC);
499 PRINTREG(sc, ATW_TSC0xC0);
500 PRINTREG(sc, ATW_SYNRF0xC4);
501 PRINTREG(sc, ATW_BPLI0xC8);
502 PRINTREG(sc, ATW_CAP00xCC);
503 PRINTREG(sc, ATW_CAP10xD0);
504 PRINTREG(sc, ATW_RMD0xD4);
505 PRINTREG(sc, ATW_CFPP0xD8);
506 PRINTREG(sc, ATW_TOFS00xDC);
507 PRINTREG(sc, ATW_TOFS10xE0);
508 PRINTREG(sc, ATW_IFST0xE4);
509 PRINTREG(sc, ATW_RSPT0xE8);
510 PRINTREG(sc, ATW_TSFTL0xEC);
511 PRINTREG(sc, ATW_WEPCTL0xF0);
512 PRINTREG(sc, ATW_WESK0xF4);
513 PRINTREG(sc, ATW_WEPCNT0xF8);
514 PRINTREG(sc, ATW_MACTEST0xFC);
515 PRINTREG(sc, ATW_FER0x100);
516 PRINTREG(sc, ATW_FEMR0x104);
517 PRINTREG(sc, ATW_FPSR0x108);
518 PRINTREG(sc, ATW_FFER0x10C);
519#undef PRINTREG
520}
521#endif /* ATW_DEBUG */
522
523const char*
524atw_printmac(u_int8_t rev) {
525 switch (rev) {
526 case ATW_REVISION_AB:
527 return "ADM8211AB";
528 case ATW_REVISION_AF:
529 return "ADM8211AF";
530 case ATW_REVISION_BA:
531 return "ADM8211BA";
532 case ATW_REVISION_CA:
533 return "ADM8211CA";
534 default:
535 return "unknown";
536 }
537}
538
539/*
540 * Finish attaching an ADMtek ADM8211 MAC. Called by bus-specific front-end.
541 */
542void
543atw_attach(struct atw_softc *sc)
544{
545 static const u_int8_t empty_macaddr[IEEE80211_ADDR_LEN6] = {
546 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
547 };
548 struct ieee80211com *ic = &sc->sc_ic;
549 struct ifnet *ifp = &ic->ic_ific_ac.ac_if;
550 int country_code, error, i, srom_major;
551 u_int32_t reg;
552 static const char *type_strings[] = {"Intersil (not supported)",
553 "RFMD", "Marvel (not supported)"};
554
555 sc->sc_txth = atw_txthresh_tab_lo;
556
557 SIMPLEQ_INIT(&sc->sc_txfreeq)do { (&sc->sc_txfreeq)->sqh_first = ((void *)0); (&
sc->sc_txfreeq)->sqh_last = &(&sc->sc_txfreeq
)->sqh_first; } while (0)
;
558 SIMPLEQ_INIT(&sc->sc_txdirtyq)do { (&sc->sc_txdirtyq)->sqh_first = ((void *)0); (
&sc->sc_txdirtyq)->sqh_last = &(&sc->sc_txdirtyq
)->sqh_first; } while (0)
;
559
560#ifdef ATW_DEBUG
561 atw_print_regs(sc, "atw_attach");
562#endif /* ATW_DEBUG */
563
564 /*
565 * Allocate the control data structures, and create and load the
566 * DMA map for it.
567 */
568 if ((error = bus_dmamem_alloc(sc->sc_dmat,(*(sc->sc_dmat)->_dmamem_alloc)((sc->sc_dmat), (sizeof
(struct atw_control_data)), ((1 << 12)), (0), (&sc->
sc_cdseg), (1), (&sc->sc_cdnseg), (0))
569 sizeof(struct atw_control_data), PAGE_SIZE, 0, &sc->sc_cdseg,(*(sc->sc_dmat)->_dmamem_alloc)((sc->sc_dmat), (sizeof
(struct atw_control_data)), ((1 << 12)), (0), (&sc->
sc_cdseg), (1), (&sc->sc_cdnseg), (0))
570 1, &sc->sc_cdnseg, 0)(*(sc->sc_dmat)->_dmamem_alloc)((sc->sc_dmat), (sizeof
(struct atw_control_data)), ((1 << 12)), (0), (&sc->
sc_cdseg), (1), (&sc->sc_cdnseg), (0))
) != 0) {
571 printf("%s: unable to allocate control data, error = %d\n",
572 sc->sc_dev.dv_xname, error);
573 goto fail_0;
574 }
575
576 if ((error = bus_dmamem_map(sc->sc_dmat, &sc->sc_cdseg, sc->sc_cdnseg,(*(sc->sc_dmat)->_dmamem_map)((sc->sc_dmat), (&sc
->sc_cdseg), (sc->sc_cdnseg), (sizeof(struct atw_control_data
)), ((caddr_t *)&sc->sc_control_data), (0x0004))
577 sizeof(struct atw_control_data), (caddr_t *)&sc->sc_control_data,(*(sc->sc_dmat)->_dmamem_map)((sc->sc_dmat), (&sc
->sc_cdseg), (sc->sc_cdnseg), (sizeof(struct atw_control_data
)), ((caddr_t *)&sc->sc_control_data), (0x0004))
578 BUS_DMA_COHERENT)(*(sc->sc_dmat)->_dmamem_map)((sc->sc_dmat), (&sc
->sc_cdseg), (sc->sc_cdnseg), (sizeof(struct atw_control_data
)), ((caddr_t *)&sc->sc_control_data), (0x0004))
) != 0) {
579 printf("%s: unable to map control data, error = %d\n",
580 sc->sc_dev.dv_xname, error);
581 goto fail_1;
582 }
583
584 if ((error = bus_dmamap_create(sc->sc_dmat,(*(sc->sc_dmat)->_dmamap_create)((sc->sc_dmat), (sizeof
(struct atw_control_data)), (1), (sizeof(struct atw_control_data
)), (0), (0), (&sc->sc_cddmamap))
585 sizeof(struct atw_control_data), 1,(*(sc->sc_dmat)->_dmamap_create)((sc->sc_dmat), (sizeof
(struct atw_control_data)), (1), (sizeof(struct atw_control_data
)), (0), (0), (&sc->sc_cddmamap))
586 sizeof(struct atw_control_data), 0, 0, &sc->sc_cddmamap)(*(sc->sc_dmat)->_dmamap_create)((sc->sc_dmat), (sizeof
(struct atw_control_data)), (1), (sizeof(struct atw_control_data
)), (0), (0), (&sc->sc_cddmamap))
) != 0) {
587 printf("%s: unable to create control data DMA map, "
588 "error = %d\n", sc->sc_dev.dv_xname, error);
589 goto fail_2;
590 }
591
592 if ((error = bus_dmamap_load(sc->sc_dmat, sc->sc_cddmamap,(*(sc->sc_dmat)->_dmamap_load)((sc->sc_dmat), (sc->
sc_cddmamap), (sc->sc_control_data), (sizeof(struct atw_control_data
)), (((void *)0)), (0))
593 sc->sc_control_data, sizeof(struct atw_control_data), NULL,(*(sc->sc_dmat)->_dmamap_load)((sc->sc_dmat), (sc->
sc_cddmamap), (sc->sc_control_data), (sizeof(struct atw_control_data
)), (((void *)0)), (0))
594 0)(*(sc->sc_dmat)->_dmamap_load)((sc->sc_dmat), (sc->
sc_cddmamap), (sc->sc_control_data), (sizeof(struct atw_control_data
)), (((void *)0)), (0))
) != 0) {
595 printf("%s: unable to load control data DMA map, error = %d\n",
596 sc->sc_dev.dv_xname, error);
597 goto fail_3;
598 }
599
600 /*
601 * Create the transmit buffer DMA maps.
602 */
603 sc->sc_ntxsegs = ATW_NTXSEGS16;
604 for (i = 0; i < ATW_TXQUEUELEN64; i++) {
605 if ((error = bus_dmamap_create(sc->sc_dmat, MCLBYTES,(*(sc->sc_dmat)->_dmamap_create)((sc->sc_dmat), ((1 <<
11)), (sc->sc_ntxsegs), ((1 << 11)), (0), (0), (&
sc->sc_txsoft[i].txs_dmamap))
606 sc->sc_ntxsegs, MCLBYTES, 0, 0,(*(sc->sc_dmat)->_dmamap_create)((sc->sc_dmat), ((1 <<
11)), (sc->sc_ntxsegs), ((1 << 11)), (0), (0), (&
sc->sc_txsoft[i].txs_dmamap))
607 &sc->sc_txsoft[i].txs_dmamap)(*(sc->sc_dmat)->_dmamap_create)((sc->sc_dmat), ((1 <<
11)), (sc->sc_ntxsegs), ((1 << 11)), (0), (0), (&
sc->sc_txsoft[i].txs_dmamap))
) != 0) {
608 printf("%s: unable to create tx DMA map %d, "
609 "error = %d\n", sc->sc_dev.dv_xname, i, error);
610 goto fail_4;
611 }
612 }
613
614 /*
615 * Create the receive buffer DMA maps.
616 */
617 for (i = 0; i < ATW_NRXDESC64; i++) {
618 if ((error = bus_dmamap_create(sc->sc_dmat, MCLBYTES, 1,(*(sc->sc_dmat)->_dmamap_create)((sc->sc_dmat), ((1 <<
11)), (1), ((1 << 11)), (0), (0), (&sc->sc_rxsoft
[i].rxs_dmamap))
619 MCLBYTES, 0, 0, &sc->sc_rxsoft[i].rxs_dmamap)(*(sc->sc_dmat)->_dmamap_create)((sc->sc_dmat), ((1 <<
11)), (1), ((1 << 11)), (0), (0), (&sc->sc_rxsoft
[i].rxs_dmamap))
) != 0) {
620 printf("%s: unable to create rx DMA map %d, "
621 "error = %d\n", sc->sc_dev.dv_xname, i, error);
622 goto fail_5;
623 }
624 }
625 for (i = 0; i < ATW_NRXDESC64; i++) {
626 sc->sc_rxsoft[i].rxs_mbuf = NULL((void *)0);
627 }
628
629 switch (sc->sc_rev) {
630 case ATW_REVISION_AB:
631 case ATW_REVISION_AF:
632 sc->sc_sramlen = ATW_SRAM_A_SIZE(0x200 * 2);
633 break;
634 case ATW_REVISION_BA:
635 case ATW_REVISION_CA:
636 sc->sc_sramlen = ATW_SRAM_B_SIZE(0x1c0 * 2);
637 break;
638 }
639
640 /* Reset the chip to a known state. */
641 atw_reset(sc);
642
643 if (atw_read_srom(sc) == -1)
644 return;
645
646 sc->sc_rftype = MASK_AND_RSHIFT(sc->sc_srom[ATW_SR_CSR20],(((sc->sc_srom[(0x16/2)]) & (0x38)) >> ((((u_long
)((((((0x38)) - 1) & ((0x38))) ^ ((0x38)))) >> (16)
) != 0) ? 16 + ((((u_long)(((((((0x38) >> 16)) - 1) &
(((0x38) >> 16))) ^ (((0x38) >> 16)))) >> (
8)) != 0) ? 8 + ((((u_long)((((((((0x38) >> 16) >>
8)) - 1) & ((((0x38) >> 16) >> 8))) ^ ((((0x38
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0x38) >> 16) >> 8) >> 4)) - 1) &
(((((0x38) >> 16) >> 8) >> 4))) ^ (((((0x38
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0x38) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0x38) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0x38) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0x38) >> 16) >> 8) >>
4))) - 1) & ((((((0x38) >> 16) >> 8) >>
4)))) ^ ((((((0x38) >> 16) >> 8) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x38) >>
16) >> 8))) - 1) & (((((0x38) >> 16) >>
8)))) ^ (((((0x38) >> 16) >> 8))))) >> (2)
) != 0) ? 2 + ((((u_long)((((((((((0x38) >> 16) >>
8)) >> 2)) - 1) & ((((((0x38) >> 16) >>
8)) >> 2))) ^ ((((((0x38) >> 16) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x38
) >> 16) >> 8)))) - 1) & ((((((0x38) >>
16) >> 8))))) ^ ((((((0x38) >> 16) >> 8)))
))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x38)
>> 16))) - 1) & ((((0x38) >> 16)))) ^ ((((0x38
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0x38) >> 16)) >> 4)) - 1) & (((((0x38) >>
16)) >> 4))) ^ (((((0x38) >> 16)) >> 4))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0x38) >>
16)) >> 4) >> 2)) - 1) & ((((((0x38) >>
16)) >> 4) >> 2))) ^ ((((((0x38) >> 16)) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0x38) >> 16)) >> 4))) - 1) & ((((((
0x38) >> 16)) >> 4)))) ^ ((((((0x38) >> 16)
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0x38) >> 16)))) - 1) & (((((0x38) >>
16))))) ^ (((((0x38) >> 16)))))) >> (2)) != 0) ?
2 + ((((u_long)((((((((((0x38) >> 16))) >> 2)) -
1) & ((((((0x38) >> 16))) >> 2))) ^ ((((((0x38
) >> 16))) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0x38) >> 16))))) - 1) & (((((
(0x38) >> 16)))))) ^ ((((((0x38) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0x38))) - 1) &
(((0x38)))) ^ (((0x38))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0x38)) >> 8)) - 1) & ((((0x38)) >> 8
))) ^ ((((0x38)) >> 8)))) >> (4)) != 0) ? 4 + (((
(u_long)(((((((((0x38)) >> 8) >> 4)) - 1) & (
((((0x38)) >> 8) >> 4))) ^ (((((0x38)) >> 8
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0x38)) >> 8) >> 4) >> 2)) - 1) & (((
(((0x38)) >> 8) >> 4) >> 2))) ^ ((((((0x38)
) >> 8) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0x38)) >> 8) >> 4)
)) - 1) & ((((((0x38)) >> 8) >> 4)))) ^ (((((
(0x38)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0x38)) >> 8))) - 1) & ((
(((0x38)) >> 8)))) ^ (((((0x38)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x38)) >> 8)) >>
2)) - 1) & ((((((0x38)) >> 8)) >> 2))) ^ (((
(((0x38)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0x38)) >> 8)))) - 1) &
((((((0x38)) >> 8))))) ^ ((((((0x38)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x38))))
- 1) & ((((0x38))))) ^ ((((0x38)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0x38))) >> 4)) - 1) & (
((((0x38))) >> 4))) ^ (((((0x38))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x38))) >> 4) >>
2)) - 1) & ((((((0x38))) >> 4) >> 2))) ^ (((
(((0x38))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0x38))) >> 4))) - 1) &
((((((0x38))) >> 4)))) ^ ((((((0x38))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x38))))
) - 1) & (((((0x38)))))) ^ (((((0x38))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0x38)))) >> 2)) - 1) &
((((((0x38)))) >> 2))) ^ ((((((0x38)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x38))))
)) - 1) & ((((((0x38))))))) ^ ((((((0x38)))))))) >>
(1)) != 0) ? 1 : 0))))))
647 ATW_SR_RFTYPE_MASK)(((sc->sc_srom[(0x16/2)]) & (0x38)) >> ((((u_long
)((((((0x38)) - 1) & ((0x38))) ^ ((0x38)))) >> (16)
) != 0) ? 16 + ((((u_long)(((((((0x38) >> 16)) - 1) &
(((0x38) >> 16))) ^ (((0x38) >> 16)))) >> (
8)) != 0) ? 8 + ((((u_long)((((((((0x38) >> 16) >>
8)) - 1) & ((((0x38) >> 16) >> 8))) ^ ((((0x38
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0x38) >> 16) >> 8) >> 4)) - 1) &
(((((0x38) >> 16) >> 8) >> 4))) ^ (((((0x38
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0x38) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0x38) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0x38) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0x38) >> 16) >> 8) >>
4))) - 1) & ((((((0x38) >> 16) >> 8) >>
4)))) ^ ((((((0x38) >> 16) >> 8) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x38) >>
16) >> 8))) - 1) & (((((0x38) >> 16) >>
8)))) ^ (((((0x38) >> 16) >> 8))))) >> (2)
) != 0) ? 2 + ((((u_long)((((((((((0x38) >> 16) >>
8)) >> 2)) - 1) & ((((((0x38) >> 16) >>
8)) >> 2))) ^ ((((((0x38) >> 16) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x38
) >> 16) >> 8)))) - 1) & ((((((0x38) >>
16) >> 8))))) ^ ((((((0x38) >> 16) >> 8)))
))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x38)
>> 16))) - 1) & ((((0x38) >> 16)))) ^ ((((0x38
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0x38) >> 16)) >> 4)) - 1) & (((((0x38) >>
16)) >> 4))) ^ (((((0x38) >> 16)) >> 4))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0x38) >>
16)) >> 4) >> 2)) - 1) & ((((((0x38) >>
16)) >> 4) >> 2))) ^ ((((((0x38) >> 16)) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0x38) >> 16)) >> 4))) - 1) & ((((((
0x38) >> 16)) >> 4)))) ^ ((((((0x38) >> 16)
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0x38) >> 16)))) - 1) & (((((0x38) >>
16))))) ^ (((((0x38) >> 16)))))) >> (2)) != 0) ?
2 + ((((u_long)((((((((((0x38) >> 16))) >> 2)) -
1) & ((((((0x38) >> 16))) >> 2))) ^ ((((((0x38
) >> 16))) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0x38) >> 16))))) - 1) & (((((
(0x38) >> 16)))))) ^ ((((((0x38) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0x38))) - 1) &
(((0x38)))) ^ (((0x38))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0x38)) >> 8)) - 1) & ((((0x38)) >> 8
))) ^ ((((0x38)) >> 8)))) >> (4)) != 0) ? 4 + (((
(u_long)(((((((((0x38)) >> 8) >> 4)) - 1) & (
((((0x38)) >> 8) >> 4))) ^ (((((0x38)) >> 8
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0x38)) >> 8) >> 4) >> 2)) - 1) & (((
(((0x38)) >> 8) >> 4) >> 2))) ^ ((((((0x38)
) >> 8) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0x38)) >> 8) >> 4)
)) - 1) & ((((((0x38)) >> 8) >> 4)))) ^ (((((
(0x38)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0x38)) >> 8))) - 1) & ((
(((0x38)) >> 8)))) ^ (((((0x38)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x38)) >> 8)) >>
2)) - 1) & ((((((0x38)) >> 8)) >> 2))) ^ (((
(((0x38)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0x38)) >> 8)))) - 1) &
((((((0x38)) >> 8))))) ^ ((((((0x38)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x38))))
- 1) & ((((0x38))))) ^ ((((0x38)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0x38))) >> 4)) - 1) & (
((((0x38))) >> 4))) ^ (((((0x38))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x38))) >> 4) >>
2)) - 1) & ((((((0x38))) >> 4) >> 2))) ^ (((
(((0x38))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0x38))) >> 4))) - 1) &
((((((0x38))) >> 4)))) ^ ((((((0x38))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x38))))
) - 1) & (((((0x38)))))) ^ (((((0x38))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0x38)))) >> 2)) - 1) &
((((((0x38)))) >> 2))) ^ ((((((0x38)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x38))))
)) - 1) & ((((((0x38))))))) ^ ((((((0x38)))))))) >>
(1)) != 0) ? 1 : 0))))))
;
648
649 sc->sc_bbptype = MASK_AND_RSHIFT(sc->sc_srom[ATW_SR_CSR20],(((sc->sc_srom[(0x16/2)]) & (0x7)) >> ((((u_long
)((((((0x7)) - 1) & ((0x7))) ^ ((0x7)))) >> (16)) !=
0) ? 16 + ((((u_long)(((((((0x7) >> 16)) - 1) & ((
(0x7) >> 16))) ^ (((0x7) >> 16)))) >> (8)) !=
0) ? 8 + ((((u_long)((((((((0x7) >> 16) >> 8)) -
1) & ((((0x7) >> 16) >> 8))) ^ ((((0x7) >>
16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)((((
(((((0x7) >> 16) >> 8) >> 4)) - 1) & ((
(((0x7) >> 16) >> 8) >> 4))) ^ (((((0x7) >>
16) >> 8) >> 4)))) >> (2)) != 0) ? 2 + (((
(u_long)((((((((((0x7) >> 16) >> 8) >> 4) >>
2)) - 1) & ((((((0x7) >> 16) >> 8) >> 4
) >> 2))) ^ ((((((0x7) >> 16) >> 8) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0x7) >> 16) >> 8) >> 4))) - 1) &
((((((0x7) >> 16) >> 8) >> 4)))) ^ ((((((0x7
) >> 16) >> 8) >> 4))))) >> (1)) != 0
) ? 1 : 0)) : ((((u_long)(((((((((0x7) >> 16) >> 8
))) - 1) & (((((0x7) >> 16) >> 8)))) ^ (((((0x7
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x7) >> 16) >> 8)) >> 2)) -
1) & ((((((0x7) >> 16) >> 8)) >> 2))) ^
((((((0x7) >> 16) >> 8)) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7) >> 16)
>> 8)))) - 1) & ((((((0x7) >> 16) >> 8
))))) ^ ((((((0x7) >> 16) >> 8)))))) >> (1)
) != 0) ? 1 : 0))) : ((((u_long)((((((((0x7) >> 16))) -
1) & ((((0x7) >> 16)))) ^ ((((0x7) >> 16))))
) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0x7) >>
16)) >> 4)) - 1) & (((((0x7) >> 16)) >>
4))) ^ (((((0x7) >> 16)) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0x7) >> 16)) >> 4)
>> 2)) - 1) & ((((((0x7) >> 16)) >> 4)
>> 2))) ^ ((((((0x7) >> 16)) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7
) >> 16)) >> 4))) - 1) & ((((((0x7) >> 16
)) >> 4)))) ^ ((((((0x7) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x7) >> 16)
))) - 1) & (((((0x7) >> 16))))) ^ (((((0x7) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x7)
>> 16))) >> 2)) - 1) & ((((((0x7) >> 16
))) >> 2))) ^ ((((((0x7) >> 16))) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7) >> 16)
)))) - 1) & ((((((0x7) >> 16)))))) ^ ((((((0x7) >>
16))))))) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((
((0x7))) - 1) & (((0x7)))) ^ (((0x7))))) >> (8)) !=
0) ? 8 + ((((u_long)((((((((0x7)) >> 8)) - 1) & ((
((0x7)) >> 8))) ^ ((((0x7)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0x7)) >> 8) >> 4
)) - 1) & (((((0x7)) >> 8) >> 4))) ^ (((((0x7
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0x7)) >> 8) >> 4) >> 2)) - 1) &
((((((0x7)) >> 8) >> 4) >> 2))) ^ ((((((0x7
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0x7)) >> 8) >> 4
))) - 1) & ((((((0x7)) >> 8) >> 4)))) ^ (((((
(0x7)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0
)) : ((((u_long)(((((((((0x7)) >> 8))) - 1) & (((((
0x7)) >> 8)))) ^ (((((0x7)) >> 8))))) >> (2
)) != 0) ? 2 + ((((u_long)((((((((((0x7)) >> 8)) >>
2)) - 1) & ((((((0x7)) >> 8)) >> 2))) ^ ((((
((0x7)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 :
0) : ((((u_long)((((((((((0x7)) >> 8)))) - 1) & ((
((((0x7)) >> 8))))) ^ ((((((0x7)) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x7)))) - 1) &
((((0x7))))) ^ ((((0x7)))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0x7))) >> 4)) - 1) & (((((0x7))) >>
4))) ^ (((((0x7))) >> 4)))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0x7))) >> 4) >> 2)) - 1) &
((((((0x7))) >> 4) >> 2))) ^ ((((((0x7))) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0x7))) >> 4))) - 1) & ((((((0x7))) >>
4)))) ^ ((((((0x7))) >> 4))))) >> (1)) != 0) ? 1
: 0)) : ((((u_long)(((((((((0x7))))) - 1) & (((((0x7))))
)) ^ (((((0x7))))))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0x7)))) >> 2)) - 1) & ((((((0x7)))) >>
2))) ^ ((((((0x7)))) >> 2)))) >> (1)) != 0) ? 1 :
0) : ((((u_long)((((((((((0x7)))))) - 1) & ((((((0x7))))
))) ^ ((((((0x7)))))))) >> (1)) != 0) ? 1 : 0))))))
650 ATW_SR_BBPTYPE_MASK)(((sc->sc_srom[(0x16/2)]) & (0x7)) >> ((((u_long
)((((((0x7)) - 1) & ((0x7))) ^ ((0x7)))) >> (16)) !=
0) ? 16 + ((((u_long)(((((((0x7) >> 16)) - 1) & ((
(0x7) >> 16))) ^ (((0x7) >> 16)))) >> (8)) !=
0) ? 8 + ((((u_long)((((((((0x7) >> 16) >> 8)) -
1) & ((((0x7) >> 16) >> 8))) ^ ((((0x7) >>
16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)((((
(((((0x7) >> 16) >> 8) >> 4)) - 1) & ((
(((0x7) >> 16) >> 8) >> 4))) ^ (((((0x7) >>
16) >> 8) >> 4)))) >> (2)) != 0) ? 2 + (((
(u_long)((((((((((0x7) >> 16) >> 8) >> 4) >>
2)) - 1) & ((((((0x7) >> 16) >> 8) >> 4
) >> 2))) ^ ((((((0x7) >> 16) >> 8) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0x7) >> 16) >> 8) >> 4))) - 1) &
((((((0x7) >> 16) >> 8) >> 4)))) ^ ((((((0x7
) >> 16) >> 8) >> 4))))) >> (1)) != 0
) ? 1 : 0)) : ((((u_long)(((((((((0x7) >> 16) >> 8
))) - 1) & (((((0x7) >> 16) >> 8)))) ^ (((((0x7
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x7) >> 16) >> 8)) >> 2)) -
1) & ((((((0x7) >> 16) >> 8)) >> 2))) ^
((((((0x7) >> 16) >> 8)) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7) >> 16)
>> 8)))) - 1) & ((((((0x7) >> 16) >> 8
))))) ^ ((((((0x7) >> 16) >> 8)))))) >> (1)
) != 0) ? 1 : 0))) : ((((u_long)((((((((0x7) >> 16))) -
1) & ((((0x7) >> 16)))) ^ ((((0x7) >> 16))))
) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0x7) >>
16)) >> 4)) - 1) & (((((0x7) >> 16)) >>
4))) ^ (((((0x7) >> 16)) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0x7) >> 16)) >> 4)
>> 2)) - 1) & ((((((0x7) >> 16)) >> 4)
>> 2))) ^ ((((((0x7) >> 16)) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7
) >> 16)) >> 4))) - 1) & ((((((0x7) >> 16
)) >> 4)))) ^ ((((((0x7) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x7) >> 16)
))) - 1) & (((((0x7) >> 16))))) ^ (((((0x7) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x7)
>> 16))) >> 2)) - 1) & ((((((0x7) >> 16
))) >> 2))) ^ ((((((0x7) >> 16))) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7) >> 16)
)))) - 1) & ((((((0x7) >> 16)))))) ^ ((((((0x7) >>
16))))))) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((
((0x7))) - 1) & (((0x7)))) ^ (((0x7))))) >> (8)) !=
0) ? 8 + ((((u_long)((((((((0x7)) >> 8)) - 1) & ((
((0x7)) >> 8))) ^ ((((0x7)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0x7)) >> 8) >> 4
)) - 1) & (((((0x7)) >> 8) >> 4))) ^ (((((0x7
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0x7)) >> 8) >> 4) >> 2)) - 1) &
((((((0x7)) >> 8) >> 4) >> 2))) ^ ((((((0x7
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0x7)) >> 8) >> 4
))) - 1) & ((((((0x7)) >> 8) >> 4)))) ^ (((((
(0x7)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0
)) : ((((u_long)(((((((((0x7)) >> 8))) - 1) & (((((
0x7)) >> 8)))) ^ (((((0x7)) >> 8))))) >> (2
)) != 0) ? 2 + ((((u_long)((((((((((0x7)) >> 8)) >>
2)) - 1) & ((((((0x7)) >> 8)) >> 2))) ^ ((((
((0x7)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 :
0) : ((((u_long)((((((((((0x7)) >> 8)))) - 1) & ((
((((0x7)) >> 8))))) ^ ((((((0x7)) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x7)))) - 1) &
((((0x7))))) ^ ((((0x7)))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0x7))) >> 4)) - 1) & (((((0x7))) >>
4))) ^ (((((0x7))) >> 4)))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0x7))) >> 4) >> 2)) - 1) &
((((((0x7))) >> 4) >> 2))) ^ ((((((0x7))) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0x7))) >> 4))) - 1) & ((((((0x7))) >>
4)))) ^ ((((((0x7))) >> 4))))) >> (1)) != 0) ? 1
: 0)) : ((((u_long)(((((((((0x7))))) - 1) & (((((0x7))))
)) ^ (((((0x7))))))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0x7)))) >> 2)) - 1) & ((((((0x7)))) >>
2))) ^ ((((((0x7)))) >> 2)))) >> (1)) != 0) ? 1 :
0) : ((((u_long)((((((((((0x7)))))) - 1) & ((((((0x7))))
))) ^ ((((((0x7)))))))) >> (1)) != 0) ? 1 : 0))))))
;
651
652 if (sc->sc_rftype >= nitems(type_strings)(sizeof((type_strings)) / sizeof((type_strings)[0]))) {
653 printf("%s: unknown RF\n", sc->sc_dev.dv_xname);
654 return;
655 }
656 if (sc->sc_bbptype >= nitems(type_strings)(sizeof((type_strings)) / sizeof((type_strings)[0]))) {
657 printf("%s: unknown BBP\n", sc->sc_dev.dv_xname);
658 return;
659 }
660
661 printf("%s: MAC %s, BBP %s, RF %s", sc->sc_dev.dv_xname,
662 atw_printmac(sc->sc_rev), type_strings[sc->sc_bbptype],
663 type_strings[sc->sc_rftype]);
664
665 /* XXX There exists a Linux driver which seems to use RFType = 0 for
666 * MARVEL. My bug, or theirs?
667 */
668
669 reg = LSHIFT(sc->sc_rftype, ATW_SYNCTL_RFTYPE_MASK)((sc->sc_rftype) << ((((u_long)((((((0x1c00000)) - 1
) & ((0x1c00000))) ^ ((0x1c00000)))) >> (16)) != 0)
? 16 + ((((u_long)(((((((0x1c00000) >> 16)) - 1) &
(((0x1c00000) >> 16))) ^ (((0x1c00000) >> 16))))
>> (8)) != 0) ? 8 + ((((u_long)((((((((0x1c00000) >>
16) >> 8)) - 1) & ((((0x1c00000) >> 16) >>
8))) ^ ((((0x1c00000) >> 16) >> 8)))) >> (
4)) != 0) ? 4 + ((((u_long)(((((((((0x1c00000) >> 16) >>
8) >> 4)) - 1) & (((((0x1c00000) >> 16) >>
8) >> 4))) ^ (((((0x1c00000) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x1c00000
) >> 16) >> 8) >> 4) >> 2)) - 1) &
((((((0x1c00000) >> 16) >> 8) >> 4) >>
2))) ^ ((((((0x1c00000) >> 16) >> 8) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0x1c00000) >> 16) >> 8) >> 4))) - 1)
& ((((((0x1c00000) >> 16) >> 8) >> 4))
)) ^ ((((((0x1c00000) >> 16) >> 8) >> 4))))
) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x1c00000
) >> 16) >> 8))) - 1) & (((((0x1c00000) >>
16) >> 8)))) ^ (((((0x1c00000) >> 16) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x1c00000
) >> 16) >> 8)) >> 2)) - 1) & ((((((0x1c00000
) >> 16) >> 8)) >> 2))) ^ ((((((0x1c00000) >>
16) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0)
: ((((u_long)((((((((((0x1c00000) >> 16) >> 8)))
) - 1) & ((((((0x1c00000) >> 16) >> 8))))) ^ (
(((((0x1c00000) >> 16) >> 8)))))) >> (1)) !=
0) ? 1 : 0))) : ((((u_long)((((((((0x1c00000) >> 16)))
- 1) & ((((0x1c00000) >> 16)))) ^ ((((0x1c00000) >>
16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0x1c00000
) >> 16)) >> 4)) - 1) & (((((0x1c00000) >>
16)) >> 4))) ^ (((((0x1c00000) >> 16)) >> 4
)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x1c00000
) >> 16)) >> 4) >> 2)) - 1) & ((((((0x1c00000
) >> 16)) >> 4) >> 2))) ^ ((((((0x1c00000) >>
16)) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0)
: ((((u_long)((((((((((0x1c00000) >> 16)) >> 4))
) - 1) & ((((((0x1c00000) >> 16)) >> 4)))) ^ (
(((((0x1c00000) >> 16)) >> 4))))) >> (1)) !=
0) ? 1 : 0)) : ((((u_long)(((((((((0x1c00000) >> 16)))
) - 1) & (((((0x1c00000) >> 16))))) ^ (((((0x1c00000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0x1c00000) >> 16))) >> 2)) - 1) & (((((
(0x1c00000) >> 16))) >> 2))) ^ ((((((0x1c00000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0x1c00000) >> 16))))) - 1) & ((((((0x1c00000
) >> 16)))))) ^ ((((((0x1c00000) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0x1c00000))) - 1)
& (((0x1c00000)))) ^ (((0x1c00000))))) >> (8)) != 0
) ? 8 + ((((u_long)((((((((0x1c00000)) >> 8)) - 1) &
((((0x1c00000)) >> 8))) ^ ((((0x1c00000)) >> 8))
)) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0x1c00000)) >>
8) >> 4)) - 1) & (((((0x1c00000)) >> 8) >>
4))) ^ (((((0x1c00000)) >> 8) >> 4)))) >> (
2)) != 0) ? 2 + ((((u_long)((((((((((0x1c00000)) >> 8) >>
4) >> 2)) - 1) & ((((((0x1c00000)) >> 8) >>
4) >> 2))) ^ ((((((0x1c00000)) >> 8) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0x1c00000)) >> 8) >> 4))) - 1) & (((((
(0x1c00000)) >> 8) >> 4)))) ^ ((((((0x1c00000)) >>
8) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0x1c00000)) >> 8))) - 1) & (((((0x1c00000
)) >> 8)))) ^ (((((0x1c00000)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x1c00000)) >> 8
)) >> 2)) - 1) & ((((((0x1c00000)) >> 8)) >>
2))) ^ ((((((0x1c00000)) >> 8)) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x1c00000)) >>
8)))) - 1) & ((((((0x1c00000)) >> 8))))) ^ ((((((0x1c00000
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0x1c00000)))) - 1) & ((((0x1c00000))))) ^ ((((0x1c00000
)))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0x1c00000
))) >> 4)) - 1) & (((((0x1c00000))) >> 4))) ^
(((((0x1c00000))) >> 4)))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0x1c00000))) >> 4) >> 2)) - 1
) & ((((((0x1c00000))) >> 4) >> 2))) ^ ((((((
0x1c00000))) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0x1c00000))) >> 4))) - 1
) & ((((((0x1c00000))) >> 4)))) ^ ((((((0x1c00000))
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0x1c00000))))) - 1) & (((((0x1c00000)))))) ^ (((
((0x1c00000))))))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0x1c00000)))) >> 2)) - 1) & ((((((0x1c00000)))
) >> 2))) ^ ((((((0x1c00000)))) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x1c00000)))))) -
1) & ((((((0x1c00000))))))) ^ ((((((0x1c00000)))))))) >>
(1)) != 0) ? 1 : 0))))))
;
670
671 switch (sc->sc_rftype) {
672 case ATW_RFTYPE_INTERSIL:
673 reg |= ATW_SYNCTL_CS1(1<<28);
674 break;
675 case ATW_RFTYPE_RFMD:
676 reg |= ATW_SYNCTL_CS0(1<<29);
677 break;
678 case ATW_RFTYPE_MARVEL:
679 break;
680 }
681
682 sc->sc_synctl_rd = reg | ATW_SYNCTL_RD(1<<30);
683 sc->sc_synctl_wr = reg | ATW_SYNCTL_WR(1<<31);
684
685 reg = LSHIFT(sc->sc_bbptype, ATW_BBPCTL_TYPE_MASK)((sc->sc_bbptype) << ((((u_long)((((((0x1c0000)) - 1
) & ((0x1c0000))) ^ ((0x1c0000)))) >> (16)) != 0) ?
16 + ((((u_long)(((((((0x1c0000) >> 16)) - 1) & ((
(0x1c0000) >> 16))) ^ (((0x1c0000) >> 16)))) >>
(8)) != 0) ? 8 + ((((u_long)((((((((0x1c0000) >> 16) >>
8)) - 1) & ((((0x1c0000) >> 16) >> 8))) ^ ((
((0x1c0000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0x1c0000) >> 16) >> 8) >>
4)) - 1) & (((((0x1c0000) >> 16) >> 8) >>
4))) ^ (((((0x1c0000) >> 16) >> 8) >> 4)))
) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x1c0000) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0x1c0000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0x1c0000) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x1c0000
) >> 16) >> 8) >> 4))) - 1) & ((((((0x1c0000
) >> 16) >> 8) >> 4)))) ^ ((((((0x1c0000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0x1c0000) >> 16) >> 8))) -
1) & (((((0x1c0000) >> 16) >> 8)))) ^ (((((0x1c0000
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x1c0000) >> 16) >> 8)) >>
2)) - 1) & ((((((0x1c0000) >> 16) >> 8)) >>
2))) ^ ((((((0x1c0000) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x1c0000
) >> 16) >> 8)))) - 1) & ((((((0x1c0000) >>
16) >> 8))))) ^ ((((((0x1c0000) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x1c0000
) >> 16))) - 1) & ((((0x1c0000) >> 16)))) ^ (
(((0x1c0000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0x1c0000) >> 16)) >> 4)) - 1) & (((
((0x1c0000) >> 16)) >> 4))) ^ (((((0x1c0000) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0x1c0000) >> 16)) >> 4) >> 2)) - 1) &
((((((0x1c0000) >> 16)) >> 4) >> 2))) ^ ((
((((0x1c0000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x1c0000) >>
16)) >> 4))) - 1) & ((((((0x1c0000) >> 16)) >>
4)))) ^ ((((((0x1c0000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x1c0000) >>
16)))) - 1) & (((((0x1c0000) >> 16))))) ^ (((((0x1c0000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0x1c0000) >> 16))) >> 2)) - 1) & ((((((
0x1c0000) >> 16))) >> 2))) ^ ((((((0x1c0000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0x1c0000) >> 16))))) - 1) & ((((((0x1c0000
) >> 16)))))) ^ ((((((0x1c0000) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0x1c0000))) - 1) &
(((0x1c0000)))) ^ (((0x1c0000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0x1c0000)) >> 8)) - 1) & ((((0x1c0000
)) >> 8))) ^ ((((0x1c0000)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0x1c0000)) >> 8) >>
4)) - 1) & (((((0x1c0000)) >> 8) >> 4))) ^ (
((((0x1c0000)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0x1c0000)) >> 8) >> 4
) >> 2)) - 1) & ((((((0x1c0000)) >> 8) >>
4) >> 2))) ^ ((((((0x1c0000)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x1c0000
)) >> 8) >> 4))) - 1) & ((((((0x1c0000)) >>
8) >> 4)))) ^ ((((((0x1c0000)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x1c0000
)) >> 8))) - 1) & (((((0x1c0000)) >> 8)))) ^ (
((((0x1c0000)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x1c0000)) >> 8)) >> 2)) - 1) &
((((((0x1c0000)) >> 8)) >> 2))) ^ ((((((0x1c0000
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0x1c0000)) >> 8)))) - 1) & ((
((((0x1c0000)) >> 8))))) ^ ((((((0x1c0000)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x1c0000
)))) - 1) & ((((0x1c0000))))) ^ ((((0x1c0000)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0x1c0000))) >> 4)
) - 1) & (((((0x1c0000))) >> 4))) ^ (((((0x1c0000))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0x1c0000))) >> 4) >> 2)) - 1) & ((((((0x1c0000
))) >> 4) >> 2))) ^ ((((((0x1c0000))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0x1c0000))) >> 4))) - 1) & ((((((0x1c0000)))
>> 4)))) ^ ((((((0x1c0000))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x1c0000))))) - 1) &
(((((0x1c0000)))))) ^ (((((0x1c0000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0x1c0000)))) >> 2)) - 1) &
((((((0x1c0000)))) >> 2))) ^ ((((((0x1c0000)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x1c0000
)))))) - 1) & ((((((0x1c0000))))))) ^ ((((((0x1c0000)))))
))) >> (1)) != 0) ? 1 : 0))))))
;
686
687 switch (sc->sc_bbptype) {
688 case ATW_BBPTYPE_INTERSIL:
689 reg |= ATW_BBPCTL_TWI(1<<31);
690 break;
691 case ATW_BBPTYPE_RFMD:
692 reg |= ATW_BBPCTL_RF3KADDR_ADDR((0x20) << ((((u_long)((((((0x7f000000)) - 1) & ((0x7f000000
))) ^ ((0x7f000000)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0x7f000000) >> 16)) - 1) & (((0x7f000000) >>
16))) ^ (((0x7f000000) >> 16)))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0x7f000000) >> 16) >> 8))
- 1) & ((((0x7f000000) >> 16) >> 8))) ^ ((((
0x7f000000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0x7f000000) >> 16) >> 8)
>> 4)) - 1) & (((((0x7f000000) >> 16) >>
8) >> 4))) ^ (((((0x7f000000) >> 16) >> 8)
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0x7f000000) >> 16) >> 8) >> 4) >> 2
)) - 1) & ((((((0x7f000000) >> 16) >> 8) >>
4) >> 2))) ^ ((((((0x7f000000) >> 16) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0x7f000000) >> 16) >> 8) >>
4))) - 1) & ((((((0x7f000000) >> 16) >> 8) >>
4)))) ^ ((((((0x7f000000) >> 16) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x7f000000
) >> 16) >> 8))) - 1) & (((((0x7f000000) >>
16) >> 8)))) ^ (((((0x7f000000) >> 16) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x7f000000
) >> 16) >> 8)) >> 2)) - 1) & ((((((0x7f000000
) >> 16) >> 8)) >> 2))) ^ ((((((0x7f000000)
>> 16) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0x7f000000) >> 16) >>
8)))) - 1) & ((((((0x7f000000) >> 16) >> 8))
))) ^ ((((((0x7f000000) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x7f000000) >>
16))) - 1) & ((((0x7f000000) >> 16)))) ^ ((((0x7f000000
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0x7f000000) >> 16)) >> 4)) - 1) & (((((0x7f000000
) >> 16)) >> 4))) ^ (((((0x7f000000) >> 16)
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0x7f000000) >> 16)) >> 4) >> 2)) - 1) &
((((((0x7f000000) >> 16)) >> 4) >> 2))) ^ (
(((((0x7f000000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7f000000) >>
16)) >> 4))) - 1) & ((((((0x7f000000) >> 16)
) >> 4)))) ^ ((((((0x7f000000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x7f000000
) >> 16)))) - 1) & (((((0x7f000000) >> 16))))
) ^ (((((0x7f000000) >> 16)))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0x7f000000) >> 16))) >> 2
)) - 1) & ((((((0x7f000000) >> 16))) >> 2))) ^
((((((0x7f000000) >> 16))) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7f000000) >> 16
))))) - 1) & ((((((0x7f000000) >> 16)))))) ^ ((((((
0x7f000000) >> 16))))))) >> (1)) != 0) ? 1 : 0)))
) : ((((u_long)(((((((0x7f000000))) - 1) & (((0x7f000000)
))) ^ (((0x7f000000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0x7f000000)) >> 8)) - 1) & ((((0x7f000000)
) >> 8))) ^ ((((0x7f000000)) >> 8)))) >> (4
)) != 0) ? 4 + ((((u_long)(((((((((0x7f000000)) >> 8) >>
4)) - 1) & (((((0x7f000000)) >> 8) >> 4))) ^
(((((0x7f000000)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0x7f000000)) >> 8) >>
4) >> 2)) - 1) & ((((((0x7f000000)) >> 8) >>
4) >> 2))) ^ ((((((0x7f000000)) >> 8) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0x7f000000)) >> 8) >> 4))) - 1) & (((
(((0x7f000000)) >> 8) >> 4)))) ^ ((((((0x7f000000
)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)) :
((((u_long)(((((((((0x7f000000)) >> 8))) - 1) & ((
(((0x7f000000)) >> 8)))) ^ (((((0x7f000000)) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x7f000000
)) >> 8)) >> 2)) - 1) & ((((((0x7f000000)) >>
8)) >> 2))) ^ ((((((0x7f000000)) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7f000000
)) >> 8)))) - 1) & ((((((0x7f000000)) >> 8)))
)) ^ ((((((0x7f000000)) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0x7f000000)))) - 1) & ((((
0x7f000000))))) ^ ((((0x7f000000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0x7f000000))) >> 4)) - 1) & (
((((0x7f000000))) >> 4))) ^ (((((0x7f000000))) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x7f000000
))) >> 4) >> 2)) - 1) & ((((((0x7f000000))) >>
4) >> 2))) ^ ((((((0x7f000000))) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7f000000
))) >> 4))) - 1) & ((((((0x7f000000))) >> 4))
)) ^ ((((((0x7f000000))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0x7f000000))))) - 1) & (((
((0x7f000000)))))) ^ (((((0x7f000000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0x7f000000)))) >> 2)) - 1)
& ((((((0x7f000000)))) >> 2))) ^ ((((((0x7f000000)
))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0x7f000000)))))) - 1) & ((((((0x7f000000)))))))
^ ((((((0x7f000000)))))))) >> (1)) != 0) ? 1 : 0))))))
| ATW_BBPCTL_NEGEDGE_DO(1<<23) |
693 ATW_BBPCTL_CCA_ACTLO(1<<21);
694 break;
695 case ATW_BBPTYPE_MARVEL:
696 break;
697 case ATW_C_BBPTYPE_RFMD:
698 printf("%s: ADM8211C MAC/RFMD BBP not supported yet.\n",
699 sc->sc_dev.dv_xname);
700 break;
701 }
702
703 sc->sc_bbpctl_wr = reg | ATW_BBPCTL_WR(1<<17);
704 sc->sc_bbpctl_rd = reg | ATW_BBPCTL_RD(1<<16);
705
706 /*
707 * From this point forward, the attachment cannot fail. A failure
708 * before this point releases all resources that may have been
709 * allocated.
710 */
711 sc->sc_flags |= ATWF_ATTACHED0x00000800 /* | ATWF_RTSCTS */;
712
713 ATW_DPRINTF((" SROM MAC %04x%04x%04x",
714 htole16(sc->sc_srom[ATW_SR_MAC00]),
715 htole16(sc->sc_srom[ATW_SR_MAC01]),
716 htole16(sc->sc_srom[ATW_SR_MAC10])));
717
718 srom_major = MASK_AND_RSHIFT(sc->sc_srom[ATW_SR_FORMAT_VERSION],(((sc->sc_srom[(0x02/2)]) & (0xff)) >> ((((u_long
)((((((0xff)) - 1) & ((0xff))) ^ ((0xff)))) >> (16)
) != 0) ? 16 + ((((u_long)(((((((0xff) >> 16)) - 1) &
(((0xff) >> 16))) ^ (((0xff) >> 16)))) >> (
8)) != 0) ? 8 + ((((u_long)((((((((0xff) >> 16) >>
8)) - 1) & ((((0xff) >> 16) >> 8))) ^ ((((0xff
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff) >> 16) >> 8) >> 4)) - 1) &
(((((0xff) >> 16) >> 8) >> 4))) ^ (((((0xff
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xff) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xff) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff) >> 16) >> 8) >>
4))) - 1) & ((((((0xff) >> 16) >> 8) >>
4)))) ^ ((((((0xff) >> 16) >> 8) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff) >>
16) >> 8))) - 1) & (((((0xff) >> 16) >>
8)))) ^ (((((0xff) >> 16) >> 8))))) >> (2)
) != 0) ? 2 + ((((u_long)((((((((((0xff) >> 16) >>
8)) >> 2)) - 1) & ((((((0xff) >> 16) >>
8)) >> 2))) ^ ((((((0xff) >> 16) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
) >> 16) >> 8)))) - 1) & ((((((0xff) >>
16) >> 8))))) ^ ((((((0xff) >> 16) >> 8)))
))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff)
>> 16))) - 1) & ((((0xff) >> 16)))) ^ ((((0xff
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xff) >> 16)) >> 4)) - 1) & (((((0xff) >>
16)) >> 4))) ^ (((((0xff) >> 16)) >> 4))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff) >>
16)) >> 4) >> 2)) - 1) & ((((((0xff) >>
16)) >> 4) >> 2))) ^ ((((((0xff) >> 16)) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xff) >> 16)) >> 4))) - 1) & ((((((
0xff) >> 16)) >> 4)))) ^ ((((((0xff) >> 16)
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0xff) >> 16)))) - 1) & (((((0xff) >>
16))))) ^ (((((0xff) >> 16)))))) >> (2)) != 0) ?
2 + ((((u_long)((((((((((0xff) >> 16))) >> 2)) -
1) & ((((((0xff) >> 16))) >> 2))) ^ ((((((0xff
) >> 16))) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff) >> 16))))) - 1) & (((((
(0xff) >> 16)))))) ^ ((((((0xff) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff))) - 1) &
(((0xff)))) ^ (((0xff))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xff)) >> 8)) - 1) & ((((0xff)) >> 8
))) ^ ((((0xff)) >> 8)))) >> (4)) != 0) ? 4 + (((
(u_long)(((((((((0xff)) >> 8) >> 4)) - 1) & (
((((0xff)) >> 8) >> 4))) ^ (((((0xff)) >> 8
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff)) >> 8) >> 4) >> 2)) - 1) & (((
(((0xff)) >> 8) >> 4) >> 2))) ^ ((((((0xff)
) >> 8) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xff)) >> 8) >> 4)
)) - 1) & ((((((0xff)) >> 8) >> 4)))) ^ (((((
(0xff)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0xff)) >> 8))) - 1) & ((
(((0xff)) >> 8)))) ^ (((((0xff)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff)) >> 8)) >>
2)) - 1) & ((((((0xff)) >> 8)) >> 2))) ^ (((
(((0xff)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xff)) >> 8)))) - 1) &
((((((0xff)) >> 8))))) ^ ((((((0xff)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff))))
- 1) & ((((0xff))))) ^ ((((0xff)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xff))) >> 4)) - 1) & (
((((0xff))) >> 4))) ^ (((((0xff))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff))) >> 4) >>
2)) - 1) & ((((((0xff))) >> 4) >> 2))) ^ (((
(((0xff))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xff))) >> 4))) - 1) &
((((((0xff))) >> 4)))) ^ ((((((0xff))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff))))
) - 1) & (((((0xff)))))) ^ (((((0xff))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0xff)))) >> 2)) - 1) &
((((((0xff)))) >> 2))) ^ ((((((0xff)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff))))
)) - 1) & ((((((0xff))))))) ^ ((((((0xff)))))))) >>
(1)) != 0) ? 1 : 0))))))
719 ATW_SR_MAJOR_MASK)(((sc->sc_srom[(0x02/2)]) & (0xff)) >> ((((u_long
)((((((0xff)) - 1) & ((0xff))) ^ ((0xff)))) >> (16)
) != 0) ? 16 + ((((u_long)(((((((0xff) >> 16)) - 1) &
(((0xff) >> 16))) ^ (((0xff) >> 16)))) >> (
8)) != 0) ? 8 + ((((u_long)((((((((0xff) >> 16) >>
8)) - 1) & ((((0xff) >> 16) >> 8))) ^ ((((0xff
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff) >> 16) >> 8) >> 4)) - 1) &
(((((0xff) >> 16) >> 8) >> 4))) ^ (((((0xff
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xff) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xff) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff) >> 16) >> 8) >>
4))) - 1) & ((((((0xff) >> 16) >> 8) >>
4)))) ^ ((((((0xff) >> 16) >> 8) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff) >>
16) >> 8))) - 1) & (((((0xff) >> 16) >>
8)))) ^ (((((0xff) >> 16) >> 8))))) >> (2)
) != 0) ? 2 + ((((u_long)((((((((((0xff) >> 16) >>
8)) >> 2)) - 1) & ((((((0xff) >> 16) >>
8)) >> 2))) ^ ((((((0xff) >> 16) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
) >> 16) >> 8)))) - 1) & ((((((0xff) >>
16) >> 8))))) ^ ((((((0xff) >> 16) >> 8)))
))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff)
>> 16))) - 1) & ((((0xff) >> 16)))) ^ ((((0xff
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xff) >> 16)) >> 4)) - 1) & (((((0xff) >>
16)) >> 4))) ^ (((((0xff) >> 16)) >> 4))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff) >>
16)) >> 4) >> 2)) - 1) & ((((((0xff) >>
16)) >> 4) >> 2))) ^ ((((((0xff) >> 16)) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xff) >> 16)) >> 4))) - 1) & ((((((
0xff) >> 16)) >> 4)))) ^ ((((((0xff) >> 16)
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0xff) >> 16)))) - 1) & (((((0xff) >>
16))))) ^ (((((0xff) >> 16)))))) >> (2)) != 0) ?
2 + ((((u_long)((((((((((0xff) >> 16))) >> 2)) -
1) & ((((((0xff) >> 16))) >> 2))) ^ ((((((0xff
) >> 16))) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff) >> 16))))) - 1) & (((((
(0xff) >> 16)))))) ^ ((((((0xff) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff))) - 1) &
(((0xff)))) ^ (((0xff))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xff)) >> 8)) - 1) & ((((0xff)) >> 8
))) ^ ((((0xff)) >> 8)))) >> (4)) != 0) ? 4 + (((
(u_long)(((((((((0xff)) >> 8) >> 4)) - 1) & (
((((0xff)) >> 8) >> 4))) ^ (((((0xff)) >> 8
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff)) >> 8) >> 4) >> 2)) - 1) & (((
(((0xff)) >> 8) >> 4) >> 2))) ^ ((((((0xff)
) >> 8) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xff)) >> 8) >> 4)
)) - 1) & ((((((0xff)) >> 8) >> 4)))) ^ (((((
(0xff)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0xff)) >> 8))) - 1) & ((
(((0xff)) >> 8)))) ^ (((((0xff)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff)) >> 8)) >>
2)) - 1) & ((((((0xff)) >> 8)) >> 2))) ^ (((
(((0xff)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xff)) >> 8)))) - 1) &
((((((0xff)) >> 8))))) ^ ((((((0xff)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff))))
- 1) & ((((0xff))))) ^ ((((0xff)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xff))) >> 4)) - 1) & (
((((0xff))) >> 4))) ^ (((((0xff))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff))) >> 4) >>
2)) - 1) & ((((((0xff))) >> 4) >> 2))) ^ (((
(((0xff))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xff))) >> 4))) - 1) &
((((((0xff))) >> 4)))) ^ ((((((0xff))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff))))
) - 1) & (((((0xff)))))) ^ (((((0xff))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0xff)))) >> 2)) - 1) &
((((((0xff)))) >> 2))) ^ ((((((0xff)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff))))
)) - 1) & ((((((0xff))))))) ^ ((((((0xff)))))))) >>
(1)) != 0) ? 1 : 0))))))
;
720
721 if (srom_major < 2)
722 sc->sc_rf3000_options1 = 0;
723 else if (sc->sc_rev == ATW_REVISION_BA) {
724 sc->sc_rf3000_options1 =
725 MASK_AND_RSHIFT(sc->sc_srom[ATW_SR_CR28_CR03],(((sc->sc_srom[(0x18/2)]) & (0xff00)) >> ((((u_long
)((((((0xff00)) - 1) & ((0xff00))) ^ ((0xff00)))) >>
(16)) != 0) ? 16 + ((((u_long)(((((((0xff00) >> 16)) -
1) & (((0xff00) >> 16))) ^ (((0xff00) >> 16)
))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff00) >>
16) >> 8)) - 1) & ((((0xff00) >> 16) >>
8))) ^ ((((0xff00) >> 16) >> 8)))) >> (4))
!= 0) ? 4 + ((((u_long)(((((((((0xff00) >> 16) >>
8) >> 4)) - 1) & (((((0xff00) >> 16) >>
8) >> 4))) ^ (((((0xff00) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)
>> 16) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00) >> 16) >> 8) >> 4) >> 2
))) ^ ((((((0xff00) >> 16) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff00
) >> 16) >> 8) >> 4)))) ^ ((((((0xff00) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00) >> 16) >> 8))) - 1
) & (((((0xff00) >> 16) >> 8)))) ^ (((((0xff00
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff00) >> 16) >> 8)) >> 2
)) - 1) & ((((((0xff00) >> 16) >> 8)) >>
2))) ^ ((((((0xff00) >> 16) >> 8)) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)
>> 16) >> 8)))) - 1) & ((((((0xff00) >>
16) >> 8))))) ^ ((((((0xff00) >> 16) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff00
) >> 16))) - 1) & ((((0xff00) >> 16)))) ^ (((
(0xff00) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff00) >> 16)) >> 4)) - 1) & (((((
0xff00) >> 16)) >> 4))) ^ (((((0xff00) >> 16
)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((
((((0xff00) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff00) >> 16)) >> 4) >> 2))) ^ ((((
((0xff00) >> 16)) >> 4) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00) >> 16
)) >> 4))) - 1) & ((((((0xff00) >> 16)) >>
4)))) ^ ((((((0xff00) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00) >> 16
)))) - 1) & (((((0xff00) >> 16))))) ^ (((((0xff00) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00
) >> 16))) >> 2)) - 1) & ((((((0xff00) >>
16))) >> 2))) ^ ((((((0xff00) >> 16))) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
) >> 16))))) - 1) & ((((((0xff00) >> 16))))))
^ ((((((0xff00) >> 16))))))) >> (1)) != 0) ? 1 :
0)))) : ((((u_long)(((((((0xff00))) - 1) & (((0xff00))))
^ (((0xff00))))) >> (8)) != 0) ? 8 + ((((u_long)((((((
((0xff00)) >> 8)) - 1) & ((((0xff00)) >> 8)))
^ ((((0xff00)) >> 8)))) >> (4)) != 0) ? 4 + ((((
u_long)(((((((((0xff00)) >> 8) >> 4)) - 1) & (
((((0xff00)) >> 8) >> 4))) ^ (((((0xff00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff00)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00)) >> 8) >> 4) >> 2))) ^ (((((
(0xff00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8) >>
4))) - 1) & ((((((0xff00)) >> 8) >> 4)))) ^ (
(((((0xff00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff00)) >> 8))) - 1) &
(((((0xff00)) >> 8)))) ^ (((((0xff00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)) >>
8)) >> 2)) - 1) & ((((((0xff00)) >> 8)) >>
2))) ^ ((((((0xff00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8
)))) - 1) & ((((((0xff00)) >> 8))))) ^ ((((((0xff00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00)))) - 1) & ((((0xff00))))) ^ ((((0xff00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff00))) >>
4)) - 1) & (((((0xff00))) >> 4))) ^ (((((0xff00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff00))) >> 4) >> 2)) - 1) & ((((((0xff00)
)) >> 4) >> 2))) ^ ((((((0xff00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
))) >> 4))) - 1) & ((((((0xff00))) >> 4)))) ^
((((((0xff00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00))))) - 1) & (((((0xff00)))
))) ^ (((((0xff00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00)))) >> 2)) - 1) & ((((((0xff00)))
) >> 2))) ^ ((((((0xff00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)))))) - 1) &
((((((0xff00))))))) ^ ((((((0xff00)))))))) >> (1)) != 0
) ? 1 : 0))))))
726 ATW_SR_CR28_MASK)(((sc->sc_srom[(0x18/2)]) & (0xff00)) >> ((((u_long
)((((((0xff00)) - 1) & ((0xff00))) ^ ((0xff00)))) >>
(16)) != 0) ? 16 + ((((u_long)(((((((0xff00) >> 16)) -
1) & (((0xff00) >> 16))) ^ (((0xff00) >> 16)
))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff00) >>
16) >> 8)) - 1) & ((((0xff00) >> 16) >>
8))) ^ ((((0xff00) >> 16) >> 8)))) >> (4))
!= 0) ? 4 + ((((u_long)(((((((((0xff00) >> 16) >>
8) >> 4)) - 1) & (((((0xff00) >> 16) >>
8) >> 4))) ^ (((((0xff00) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)
>> 16) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00) >> 16) >> 8) >> 4) >> 2
))) ^ ((((((0xff00) >> 16) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff00
) >> 16) >> 8) >> 4)))) ^ ((((((0xff00) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00) >> 16) >> 8))) - 1
) & (((((0xff00) >> 16) >> 8)))) ^ (((((0xff00
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff00) >> 16) >> 8)) >> 2
)) - 1) & ((((((0xff00) >> 16) >> 8)) >>
2))) ^ ((((((0xff00) >> 16) >> 8)) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)
>> 16) >> 8)))) - 1) & ((((((0xff00) >>
16) >> 8))))) ^ ((((((0xff00) >> 16) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff00
) >> 16))) - 1) & ((((0xff00) >> 16)))) ^ (((
(0xff00) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff00) >> 16)) >> 4)) - 1) & (((((
0xff00) >> 16)) >> 4))) ^ (((((0xff00) >> 16
)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((
((((0xff00) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff00) >> 16)) >> 4) >> 2))) ^ ((((
((0xff00) >> 16)) >> 4) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00) >> 16
)) >> 4))) - 1) & ((((((0xff00) >> 16)) >>
4)))) ^ ((((((0xff00) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00) >> 16
)))) - 1) & (((((0xff00) >> 16))))) ^ (((((0xff00) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00
) >> 16))) >> 2)) - 1) & ((((((0xff00) >>
16))) >> 2))) ^ ((((((0xff00) >> 16))) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
) >> 16))))) - 1) & ((((((0xff00) >> 16))))))
^ ((((((0xff00) >> 16))))))) >> (1)) != 0) ? 1 :
0)))) : ((((u_long)(((((((0xff00))) - 1) & (((0xff00))))
^ (((0xff00))))) >> (8)) != 0) ? 8 + ((((u_long)((((((
((0xff00)) >> 8)) - 1) & ((((0xff00)) >> 8)))
^ ((((0xff00)) >> 8)))) >> (4)) != 0) ? 4 + ((((
u_long)(((((((((0xff00)) >> 8) >> 4)) - 1) & (
((((0xff00)) >> 8) >> 4))) ^ (((((0xff00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff00)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00)) >> 8) >> 4) >> 2))) ^ (((((
(0xff00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8) >>
4))) - 1) & ((((((0xff00)) >> 8) >> 4)))) ^ (
(((((0xff00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff00)) >> 8))) - 1) &
(((((0xff00)) >> 8)))) ^ (((((0xff00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)) >>
8)) >> 2)) - 1) & ((((((0xff00)) >> 8)) >>
2))) ^ ((((((0xff00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8
)))) - 1) & ((((((0xff00)) >> 8))))) ^ ((((((0xff00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00)))) - 1) & ((((0xff00))))) ^ ((((0xff00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff00))) >>
4)) - 1) & (((((0xff00))) >> 4))) ^ (((((0xff00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff00))) >> 4) >> 2)) - 1) & ((((((0xff00)
)) >> 4) >> 2))) ^ ((((((0xff00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
))) >> 4))) - 1) & ((((((0xff00))) >> 4)))) ^
((((((0xff00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00))))) - 1) & (((((0xff00)))
))) ^ (((((0xff00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00)))) >> 2)) - 1) & ((((((0xff00)))
) >> 2))) ^ ((((((0xff00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)))))) - 1) &
((((((0xff00))))))) ^ ((((((0xff00)))))))) >> (1)) != 0
) ? 1 : 0))))))
;
727 } else
728 sc->sc_rf3000_options1 = 0;
729
730 sc->sc_rf3000_options2 = MASK_AND_RSHIFT(sc->sc_srom[ATW_SR_CTRY_CR29],(((sc->sc_srom[(0x1A/2)]) & (0xff)) >> ((((u_long
)((((((0xff)) - 1) & ((0xff))) ^ ((0xff)))) >> (16)
) != 0) ? 16 + ((((u_long)(((((((0xff) >> 16)) - 1) &
(((0xff) >> 16))) ^ (((0xff) >> 16)))) >> (
8)) != 0) ? 8 + ((((u_long)((((((((0xff) >> 16) >>
8)) - 1) & ((((0xff) >> 16) >> 8))) ^ ((((0xff
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff) >> 16) >> 8) >> 4)) - 1) &
(((((0xff) >> 16) >> 8) >> 4))) ^ (((((0xff
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xff) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xff) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff) >> 16) >> 8) >>
4))) - 1) & ((((((0xff) >> 16) >> 8) >>
4)))) ^ ((((((0xff) >> 16) >> 8) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff) >>
16) >> 8))) - 1) & (((((0xff) >> 16) >>
8)))) ^ (((((0xff) >> 16) >> 8))))) >> (2)
) != 0) ? 2 + ((((u_long)((((((((((0xff) >> 16) >>
8)) >> 2)) - 1) & ((((((0xff) >> 16) >>
8)) >> 2))) ^ ((((((0xff) >> 16) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
) >> 16) >> 8)))) - 1) & ((((((0xff) >>
16) >> 8))))) ^ ((((((0xff) >> 16) >> 8)))
))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff)
>> 16))) - 1) & ((((0xff) >> 16)))) ^ ((((0xff
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xff) >> 16)) >> 4)) - 1) & (((((0xff) >>
16)) >> 4))) ^ (((((0xff) >> 16)) >> 4))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff) >>
16)) >> 4) >> 2)) - 1) & ((((((0xff) >>
16)) >> 4) >> 2))) ^ ((((((0xff) >> 16)) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xff) >> 16)) >> 4))) - 1) & ((((((
0xff) >> 16)) >> 4)))) ^ ((((((0xff) >> 16)
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0xff) >> 16)))) - 1) & (((((0xff) >>
16))))) ^ (((((0xff) >> 16)))))) >> (2)) != 0) ?
2 + ((((u_long)((((((((((0xff) >> 16))) >> 2)) -
1) & ((((((0xff) >> 16))) >> 2))) ^ ((((((0xff
) >> 16))) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff) >> 16))))) - 1) & (((((
(0xff) >> 16)))))) ^ ((((((0xff) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff))) - 1) &
(((0xff)))) ^ (((0xff))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xff)) >> 8)) - 1) & ((((0xff)) >> 8
))) ^ ((((0xff)) >> 8)))) >> (4)) != 0) ? 4 + (((
(u_long)(((((((((0xff)) >> 8) >> 4)) - 1) & (
((((0xff)) >> 8) >> 4))) ^ (((((0xff)) >> 8
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff)) >> 8) >> 4) >> 2)) - 1) & (((
(((0xff)) >> 8) >> 4) >> 2))) ^ ((((((0xff)
) >> 8) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xff)) >> 8) >> 4)
)) - 1) & ((((((0xff)) >> 8) >> 4)))) ^ (((((
(0xff)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0xff)) >> 8))) - 1) & ((
(((0xff)) >> 8)))) ^ (((((0xff)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff)) >> 8)) >>
2)) - 1) & ((((((0xff)) >> 8)) >> 2))) ^ (((
(((0xff)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xff)) >> 8)))) - 1) &
((((((0xff)) >> 8))))) ^ ((((((0xff)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff))))
- 1) & ((((0xff))))) ^ ((((0xff)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xff))) >> 4)) - 1) & (
((((0xff))) >> 4))) ^ (((((0xff))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff))) >> 4) >>
2)) - 1) & ((((((0xff))) >> 4) >> 2))) ^ (((
(((0xff))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xff))) >> 4))) - 1) &
((((((0xff))) >> 4)))) ^ ((((((0xff))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff))))
) - 1) & (((((0xff)))))) ^ (((((0xff))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0xff)))) >> 2)) - 1) &
((((((0xff)))) >> 2))) ^ ((((((0xff)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff))))
)) - 1) & ((((((0xff))))))) ^ ((((((0xff)))))))) >>
(1)) != 0) ? 1 : 0))))))
731 ATW_SR_CR29_MASK)(((sc->sc_srom[(0x1A/2)]) & (0xff)) >> ((((u_long
)((((((0xff)) - 1) & ((0xff))) ^ ((0xff)))) >> (16)
) != 0) ? 16 + ((((u_long)(((((((0xff) >> 16)) - 1) &
(((0xff) >> 16))) ^ (((0xff) >> 16)))) >> (
8)) != 0) ? 8 + ((((u_long)((((((((0xff) >> 16) >>
8)) - 1) & ((((0xff) >> 16) >> 8))) ^ ((((0xff
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff) >> 16) >> 8) >> 4)) - 1) &
(((((0xff) >> 16) >> 8) >> 4))) ^ (((((0xff
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xff) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xff) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff) >> 16) >> 8) >>
4))) - 1) & ((((((0xff) >> 16) >> 8) >>
4)))) ^ ((((((0xff) >> 16) >> 8) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff) >>
16) >> 8))) - 1) & (((((0xff) >> 16) >>
8)))) ^ (((((0xff) >> 16) >> 8))))) >> (2)
) != 0) ? 2 + ((((u_long)((((((((((0xff) >> 16) >>
8)) >> 2)) - 1) & ((((((0xff) >> 16) >>
8)) >> 2))) ^ ((((((0xff) >> 16) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
) >> 16) >> 8)))) - 1) & ((((((0xff) >>
16) >> 8))))) ^ ((((((0xff) >> 16) >> 8)))
))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff)
>> 16))) - 1) & ((((0xff) >> 16)))) ^ ((((0xff
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xff) >> 16)) >> 4)) - 1) & (((((0xff) >>
16)) >> 4))) ^ (((((0xff) >> 16)) >> 4))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff) >>
16)) >> 4) >> 2)) - 1) & ((((((0xff) >>
16)) >> 4) >> 2))) ^ ((((((0xff) >> 16)) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xff) >> 16)) >> 4))) - 1) & ((((((
0xff) >> 16)) >> 4)))) ^ ((((((0xff) >> 16)
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0xff) >> 16)))) - 1) & (((((0xff) >>
16))))) ^ (((((0xff) >> 16)))))) >> (2)) != 0) ?
2 + ((((u_long)((((((((((0xff) >> 16))) >> 2)) -
1) & ((((((0xff) >> 16))) >> 2))) ^ ((((((0xff
) >> 16))) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff) >> 16))))) - 1) & (((((
(0xff) >> 16)))))) ^ ((((((0xff) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff))) - 1) &
(((0xff)))) ^ (((0xff))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xff)) >> 8)) - 1) & ((((0xff)) >> 8
))) ^ ((((0xff)) >> 8)))) >> (4)) != 0) ? 4 + (((
(u_long)(((((((((0xff)) >> 8) >> 4)) - 1) & (
((((0xff)) >> 8) >> 4))) ^ (((((0xff)) >> 8
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff)) >> 8) >> 4) >> 2)) - 1) & (((
(((0xff)) >> 8) >> 4) >> 2))) ^ ((((((0xff)
) >> 8) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xff)) >> 8) >> 4)
)) - 1) & ((((((0xff)) >> 8) >> 4)))) ^ (((((
(0xff)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0xff)) >> 8))) - 1) & ((
(((0xff)) >> 8)))) ^ (((((0xff)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff)) >> 8)) >>
2)) - 1) & ((((((0xff)) >> 8)) >> 2))) ^ (((
(((0xff)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xff)) >> 8)))) - 1) &
((((((0xff)) >> 8))))) ^ ((((((0xff)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff))))
- 1) & ((((0xff))))) ^ ((((0xff)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xff))) >> 4)) - 1) & (
((((0xff))) >> 4))) ^ (((((0xff))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff))) >> 4) >>
2)) - 1) & ((((((0xff))) >> 4) >> 2))) ^ (((
(((0xff))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xff))) >> 4))) - 1) &
((((((0xff))) >> 4)))) ^ ((((((0xff))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff))))
) - 1) & (((((0xff)))))) ^ (((((0xff))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0xff)))) >> 2)) - 1) &
((((((0xff)))) >> 2))) ^ ((((((0xff)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff))))
)) - 1) & ((((((0xff))))))) ^ ((((((0xff)))))))) >>
(1)) != 0) ? 1 : 0))))))
;
732
733 country_code = MASK_AND_RSHIFT(sc->sc_srom[ATW_SR_CTRY_CR29],(((sc->sc_srom[(0x1A/2)]) & (0xff00)) >> ((((u_long
)((((((0xff00)) - 1) & ((0xff00))) ^ ((0xff00)))) >>
(16)) != 0) ? 16 + ((((u_long)(((((((0xff00) >> 16)) -
1) & (((0xff00) >> 16))) ^ (((0xff00) >> 16)
))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff00) >>
16) >> 8)) - 1) & ((((0xff00) >> 16) >>
8))) ^ ((((0xff00) >> 16) >> 8)))) >> (4))
!= 0) ? 4 + ((((u_long)(((((((((0xff00) >> 16) >>
8) >> 4)) - 1) & (((((0xff00) >> 16) >>
8) >> 4))) ^ (((((0xff00) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)
>> 16) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00) >> 16) >> 8) >> 4) >> 2
))) ^ ((((((0xff00) >> 16) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff00
) >> 16) >> 8) >> 4)))) ^ ((((((0xff00) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00) >> 16) >> 8))) - 1
) & (((((0xff00) >> 16) >> 8)))) ^ (((((0xff00
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff00) >> 16) >> 8)) >> 2
)) - 1) & ((((((0xff00) >> 16) >> 8)) >>
2))) ^ ((((((0xff00) >> 16) >> 8)) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)
>> 16) >> 8)))) - 1) & ((((((0xff00) >>
16) >> 8))))) ^ ((((((0xff00) >> 16) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff00
) >> 16))) - 1) & ((((0xff00) >> 16)))) ^ (((
(0xff00) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff00) >> 16)) >> 4)) - 1) & (((((
0xff00) >> 16)) >> 4))) ^ (((((0xff00) >> 16
)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((
((((0xff00) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff00) >> 16)) >> 4) >> 2))) ^ ((((
((0xff00) >> 16)) >> 4) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00) >> 16
)) >> 4))) - 1) & ((((((0xff00) >> 16)) >>
4)))) ^ ((((((0xff00) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00) >> 16
)))) - 1) & (((((0xff00) >> 16))))) ^ (((((0xff00) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00
) >> 16))) >> 2)) - 1) & ((((((0xff00) >>
16))) >> 2))) ^ ((((((0xff00) >> 16))) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
) >> 16))))) - 1) & ((((((0xff00) >> 16))))))
^ ((((((0xff00) >> 16))))))) >> (1)) != 0) ? 1 :
0)))) : ((((u_long)(((((((0xff00))) - 1) & (((0xff00))))
^ (((0xff00))))) >> (8)) != 0) ? 8 + ((((u_long)((((((
((0xff00)) >> 8)) - 1) & ((((0xff00)) >> 8)))
^ ((((0xff00)) >> 8)))) >> (4)) != 0) ? 4 + ((((
u_long)(((((((((0xff00)) >> 8) >> 4)) - 1) & (
((((0xff00)) >> 8) >> 4))) ^ (((((0xff00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff00)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00)) >> 8) >> 4) >> 2))) ^ (((((
(0xff00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8) >>
4))) - 1) & ((((((0xff00)) >> 8) >> 4)))) ^ (
(((((0xff00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff00)) >> 8))) - 1) &
(((((0xff00)) >> 8)))) ^ (((((0xff00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)) >>
8)) >> 2)) - 1) & ((((((0xff00)) >> 8)) >>
2))) ^ ((((((0xff00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8
)))) - 1) & ((((((0xff00)) >> 8))))) ^ ((((((0xff00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00)))) - 1) & ((((0xff00))))) ^ ((((0xff00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff00))) >>
4)) - 1) & (((((0xff00))) >> 4))) ^ (((((0xff00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff00))) >> 4) >> 2)) - 1) & ((((((0xff00)
)) >> 4) >> 2))) ^ ((((((0xff00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
))) >> 4))) - 1) & ((((((0xff00))) >> 4)))) ^
((((((0xff00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00))))) - 1) & (((((0xff00)))
))) ^ (((((0xff00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00)))) >> 2)) - 1) & ((((((0xff00)))
) >> 2))) ^ ((((((0xff00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)))))) - 1) &
((((((0xff00))))))) ^ ((((((0xff00)))))))) >> (1)) != 0
) ? 1 : 0))))))
734 ATW_SR_CTRY_MASK)(((sc->sc_srom[(0x1A/2)]) & (0xff00)) >> ((((u_long
)((((((0xff00)) - 1) & ((0xff00))) ^ ((0xff00)))) >>
(16)) != 0) ? 16 + ((((u_long)(((((((0xff00) >> 16)) -
1) & (((0xff00) >> 16))) ^ (((0xff00) >> 16)
))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff00) >>
16) >> 8)) - 1) & ((((0xff00) >> 16) >>
8))) ^ ((((0xff00) >> 16) >> 8)))) >> (4))
!= 0) ? 4 + ((((u_long)(((((((((0xff00) >> 16) >>
8) >> 4)) - 1) & (((((0xff00) >> 16) >>
8) >> 4))) ^ (((((0xff00) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)
>> 16) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00) >> 16) >> 8) >> 4) >> 2
))) ^ ((((((0xff00) >> 16) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff00
) >> 16) >> 8) >> 4)))) ^ ((((((0xff00) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00) >> 16) >> 8))) - 1
) & (((((0xff00) >> 16) >> 8)))) ^ (((((0xff00
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff00) >> 16) >> 8)) >> 2
)) - 1) & ((((((0xff00) >> 16) >> 8)) >>
2))) ^ ((((((0xff00) >> 16) >> 8)) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)
>> 16) >> 8)))) - 1) & ((((((0xff00) >>
16) >> 8))))) ^ ((((((0xff00) >> 16) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff00
) >> 16))) - 1) & ((((0xff00) >> 16)))) ^ (((
(0xff00) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff00) >> 16)) >> 4)) - 1) & (((((
0xff00) >> 16)) >> 4))) ^ (((((0xff00) >> 16
)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((
((((0xff00) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff00) >> 16)) >> 4) >> 2))) ^ ((((
((0xff00) >> 16)) >> 4) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00) >> 16
)) >> 4))) - 1) & ((((((0xff00) >> 16)) >>
4)))) ^ ((((((0xff00) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00) >> 16
)))) - 1) & (((((0xff00) >> 16))))) ^ (((((0xff00) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00
) >> 16))) >> 2)) - 1) & ((((((0xff00) >>
16))) >> 2))) ^ ((((((0xff00) >> 16))) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
) >> 16))))) - 1) & ((((((0xff00) >> 16))))))
^ ((((((0xff00) >> 16))))))) >> (1)) != 0) ? 1 :
0)))) : ((((u_long)(((((((0xff00))) - 1) & (((0xff00))))
^ (((0xff00))))) >> (8)) != 0) ? 8 + ((((u_long)((((((
((0xff00)) >> 8)) - 1) & ((((0xff00)) >> 8)))
^ ((((0xff00)) >> 8)))) >> (4)) != 0) ? 4 + ((((
u_long)(((((((((0xff00)) >> 8) >> 4)) - 1) & (
((((0xff00)) >> 8) >> 4))) ^ (((((0xff00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff00)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00)) >> 8) >> 4) >> 2))) ^ (((((
(0xff00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8) >>
4))) - 1) & ((((((0xff00)) >> 8) >> 4)))) ^ (
(((((0xff00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff00)) >> 8))) - 1) &
(((((0xff00)) >> 8)))) ^ (((((0xff00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)) >>
8)) >> 2)) - 1) & ((((((0xff00)) >> 8)) >>
2))) ^ ((((((0xff00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8
)))) - 1) & ((((((0xff00)) >> 8))))) ^ ((((((0xff00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00)))) - 1) & ((((0xff00))))) ^ ((((0xff00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff00))) >>
4)) - 1) & (((((0xff00))) >> 4))) ^ (((((0xff00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff00))) >> 4) >> 2)) - 1) & ((((((0xff00)
)) >> 4) >> 2))) ^ ((((((0xff00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
))) >> 4))) - 1) & ((((((0xff00))) >> 4)))) ^
((((((0xff00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00))))) - 1) & (((((0xff00)))
))) ^ (((((0xff00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00)))) >> 2)) - 1) & ((((((0xff00)))
) >> 2))) ^ ((((((0xff00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)))))) - 1) &
((((((0xff00))))))) ^ ((((((0xff00)))))))) >> (1)) != 0
) ? 1 : 0))))))
;
735
736#define ADD_CHANNEL(_ic, _chan)do { _ic->ic_channels[_chan].ic_flags = (0x0080 | 0x0020);
_ic->ic_channels[_chan].ic_freq = ieee80211_ieee2mhz(_chan
, _ic->ic_channels[_chan].ic_flags);} while (0)
do { \
737 _ic->ic_channels[_chan].ic_flags = IEEE80211_CHAN_B(0x0080 | 0x0020); \
738 _ic->ic_channels[_chan].ic_freq = \
739 ieee80211_ieee2mhz(_chan, _ic->ic_channels[_chan].ic_flags);\
740} while (0)
741
742 /* Find available channels */
743 switch (country_code) {
744 case COUNTRY_MMK26: /* 1-14 */
745 ADD_CHANNEL(ic, 14)do { ic->ic_channels[14].ic_flags = (0x0080 | 0x0020); ic->
ic_channels[14].ic_freq = ieee80211_ieee2mhz(14, ic->ic_channels
[14].ic_flags);} while (0)
;
746 /*FALLTHROUGH*/
747 case COUNTRY_ETSI2: /* 1-13 */
748 for (i = 1; i <= 13; i++)
749 ADD_CHANNEL(ic, i)do { ic->ic_channels[i].ic_flags = (0x0080 | 0x0020); ic->
ic_channels[i].ic_freq = ieee80211_ieee2mhz(i, ic->ic_channels
[i].ic_flags);} while (0)
;
750 break;
751 case COUNTRY_FCC0: /* 1-11 */
752 case COUNTRY_IC1: /* 1-11 */
753 for (i = 1; i <= 11; i++)
754 ADD_CHANNEL(ic, i)do { ic->ic_channels[i].ic_flags = (0x0080 | 0x0020); ic->
ic_channels[i].ic_freq = ieee80211_ieee2mhz(i, ic->ic_channels
[i].ic_flags);} while (0)
;
755 break;
756 case COUNTRY_MMK5: /* 14 */
757 ADD_CHANNEL(ic, 14)do { ic->ic_channels[14].ic_flags = (0x0080 | 0x0020); ic->
ic_channels[14].ic_freq = ieee80211_ieee2mhz(14, ic->ic_channels
[14].ic_flags);} while (0)
;
758 break;
759 case COUNTRY_FRANCE4: /* 10-13 */
760 for (i = 10; i <= 13; i++)
761 ADD_CHANNEL(ic, i)do { ic->ic_channels[i].ic_flags = (0x0080 | 0x0020); ic->
ic_channels[i].ic_freq = ieee80211_ieee2mhz(i, ic->ic_channels
[i].ic_flags);} while (0)
;
762 break;
763 default: /* assume channels 10-11 */
764 case COUNTRY_SPAIN3: /* 10-11 */
765 for (i = 10; i <= 11; i++)
766 ADD_CHANNEL(ic, i)do { ic->ic_channels[i].ic_flags = (0x0080 | 0x0020); ic->
ic_channels[i].ic_freq = ieee80211_ieee2mhz(i, ic->ic_channels
[i].ic_flags);} while (0)
;
767 break;
768 }
769
770 /* Read the MAC address. */
771 reg = ATW_READ(sc, ATW_PAR0)(((sc)->sc_st)->read_4(((sc)->sc_sh), ((0x94))));
772 ic->ic_myaddr[0] = MASK_AND_RSHIFT(reg, ATW_PAR0_PAB0_MASK)(((reg) & (0xff)) >> ((((u_long)((((((0xff)) - 1) &
((0xff))) ^ ((0xff)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0xff) >> 16)) - 1) & (((0xff) >> 16))
) ^ (((0xff) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xff) >> 16) >> 8)) - 1) & ((((0xff)
>> 16) >> 8))) ^ ((((0xff) >> 16) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >>
16) >> 8) >> 4)) - 1) & (((((0xff) >> 16
) >> 8) >> 4))) ^ (((((0xff) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff) >> 16) >> 8) >> 4) >> 2)) -
1) & ((((((0xff) >> 16) >> 8) >> 4) >>
2))) ^ ((((((0xff) >> 16) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff
) >> 16) >> 8) >> 4)))) ^ ((((((0xff) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff) >> 16) >> 8))) - 1)
& (((((0xff) >> 16) >> 8)))) ^ (((((0xff) >>
16) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff) >> 16) >> 8)) >> 2)) - 1) &
((((((0xff) >> 16) >> 8)) >> 2))) ^ ((((((
0xff) >> 16) >> 8)) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16) >>
8)))) - 1) & ((((((0xff) >> 16) >> 8))))) ^ (
(((((0xff) >> 16) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xff) >> 16))) - 1) &
((((0xff) >> 16)))) ^ ((((0xff) >> 16))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >> 16)) >>
4)) - 1) & (((((0xff) >> 16)) >> 4))) ^ ((((
(0xff) >> 16)) >> 4)))) >> (2)) != 0) ? 2 +
((((u_long)((((((((((0xff) >> 16)) >> 4) >>
2)) - 1) & ((((((0xff) >> 16)) >> 4) >>
2))) ^ ((((((0xff) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16
)) >> 4))) - 1) & ((((((0xff) >> 16)) >>
4)))) ^ ((((((0xff) >> 16)) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff) >> 16))
)) - 1) & (((((0xff) >> 16))))) ^ (((((0xff) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff
) >> 16))) >> 2)) - 1) & ((((((0xff) >>
16))) >> 2))) ^ ((((((0xff) >> 16))) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff)
>> 16))))) - 1) & ((((((0xff) >> 16)))))) ^ (
(((((0xff) >> 16))))))) >> (1)) != 0) ? 1 : 0))))
: ((((u_long)(((((((0xff))) - 1) & (((0xff)))) ^ (((0xff
))))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff)) >>
8)) - 1) & ((((0xff)) >> 8))) ^ ((((0xff)) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff)) >>
8) >> 4)) - 1) & (((((0xff)) >> 8) >> 4
))) ^ (((((0xff)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xff)) >> 8) >> 4)
>> 2)) - 1) & ((((((0xff)) >> 8) >> 4)
>> 2))) ^ ((((((0xff)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
)) >> 8) >> 4))) - 1) & ((((((0xff)) >>
8) >> 4)))) ^ ((((((0xff)) >> 8) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff)) >>
8))) - 1) & (((((0xff)) >> 8)))) ^ (((((0xff)) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff))
>> 8)) >> 2)) - 1) & ((((((0xff)) >> 8
)) >> 2))) ^ ((((((0xff)) >> 8)) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff)) >> 8
)))) - 1) & ((((((0xff)) >> 8))))) ^ ((((((0xff)) >>
8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((
0xff)))) - 1) & ((((0xff))))) ^ ((((0xff)))))) >> (
4)) != 0) ? 4 + ((((u_long)(((((((((0xff))) >> 4)) - 1)
& (((((0xff))) >> 4))) ^ (((((0xff))) >> 4))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff))) >>
4) >> 2)) - 1) & ((((((0xff))) >> 4) >>
2))) ^ ((((((0xff))) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff))) >> 4)))
- 1) & ((((((0xff))) >> 4)))) ^ ((((((0xff))) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff
))))) - 1) & (((((0xff)))))) ^ (((((0xff))))))) >> (
2)) != 0) ? 2 + ((((u_long)((((((((((0xff)))) >> 2)) - 1
) & ((((((0xff)))) >> 2))) ^ ((((((0xff)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
)))))) - 1) & ((((((0xff))))))) ^ ((((((0xff)))))))) >>
(1)) != 0) ? 1 : 0))))))
;
773 ic->ic_myaddr[1] = MASK_AND_RSHIFT(reg, ATW_PAR0_PAB1_MASK)(((reg) & (0xff00)) >> ((((u_long)((((((0xff00)) - 1
) & ((0xff00))) ^ ((0xff00)))) >> (16)) != 0) ? 16 +
((((u_long)(((((((0xff00) >> 16)) - 1) & (((0xff00
) >> 16))) ^ (((0xff00) >> 16)))) >> (8)) !=
0) ? 8 + ((((u_long)((((((((0xff00) >> 16) >> 8)
) - 1) & ((((0xff00) >> 16) >> 8))) ^ ((((0xff00
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff00) >> 16) >> 8) >> 4)) - 1) &
(((((0xff00) >> 16) >> 8) >> 4))) ^ (((((0xff00
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xff00) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xff00) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4))) - 1) & ((((((0xff00) >> 16) >> 8) >>
4)))) ^ ((((((0xff00) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16) >> 8))) - 1) & (((((0xff00) >>
16) >> 8)))) ^ (((((0xff00) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00) >>
16) >> 8)) >> 2)) - 1) & ((((((0xff00) >>
16) >> 8)) >> 2))) ^ ((((((0xff00) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16) >> 8)))) - 1) & (((
(((0xff00) >> 16) >> 8))))) ^ ((((((0xff00) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00) >> 16))) - 1) & ((((0xff00) >>
16)))) ^ ((((0xff00) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff00) >> 16)) >> 4)) - 1
) & (((((0xff00) >> 16)) >> 4))) ^ (((((0xff00
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff00) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xff00) >> 16)) >> 4) >>
2))) ^ ((((((0xff00) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)
>> 16)) >> 4))) - 1) & ((((((0xff00) >>
16)) >> 4)))) ^ ((((((0xff00) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16)))) - 1) & (((((0xff00) >> 16))))) ^ (
((((0xff00) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00) >> 16))) >> 2)) - 1) & (((
(((0xff00) >> 16))) >> 2))) ^ ((((((0xff00) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16))))) - 1) & ((((((0xff00) >>
16)))))) ^ ((((((0xff00) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xff00))) - 1) & (((0xff00
)))) ^ (((0xff00))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xff00)) >> 8)) - 1) & ((((0xff00)) >> 8
))) ^ ((((0xff00)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xff00)) >> 8) >> 4)) - 1) &
(((((0xff00)) >> 8) >> 4))) ^ (((((0xff00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff00)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00)) >> 8) >> 4) >> 2))) ^ (((((
(0xff00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8) >>
4))) - 1) & ((((((0xff00)) >> 8) >> 4)))) ^ (
(((((0xff00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff00)) >> 8))) - 1) &
(((((0xff00)) >> 8)))) ^ (((((0xff00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)) >>
8)) >> 2)) - 1) & ((((((0xff00)) >> 8)) >>
2))) ^ ((((((0xff00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8
)))) - 1) & ((((((0xff00)) >> 8))))) ^ ((((((0xff00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00)))) - 1) & ((((0xff00))))) ^ ((((0xff00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff00))) >>
4)) - 1) & (((((0xff00))) >> 4))) ^ (((((0xff00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff00))) >> 4) >> 2)) - 1) & ((((((0xff00)
)) >> 4) >> 2))) ^ ((((((0xff00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
))) >> 4))) - 1) & ((((((0xff00))) >> 4)))) ^
((((((0xff00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00))))) - 1) & (((((0xff00)))
))) ^ (((((0xff00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00)))) >> 2)) - 1) & ((((((0xff00)))
) >> 2))) ^ ((((((0xff00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)))))) - 1) &
((((((0xff00))))))) ^ ((((((0xff00)))))))) >> (1)) != 0
) ? 1 : 0))))))
;
774 ic->ic_myaddr[2] = MASK_AND_RSHIFT(reg, ATW_PAR0_PAB2_MASK)(((reg) & (0xff0000)) >> ((((u_long)((((((0xff0000)
) - 1) & ((0xff0000))) ^ ((0xff0000)))) >> (16)) !=
0) ? 16 + ((((u_long)(((((((0xff0000) >> 16)) - 1) &
(((0xff0000) >> 16))) ^ (((0xff0000) >> 16)))) >>
(8)) != 0) ? 8 + ((((u_long)((((((((0xff0000) >> 16) >>
8)) - 1) & ((((0xff0000) >> 16) >> 8))) ^ ((
((0xff0000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0xff0000) >> 16) >> 8) >>
4)) - 1) & (((((0xff0000) >> 16) >> 8) >>
4))) ^ (((((0xff0000) >> 16) >> 8) >> 4)))
) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff0000) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xff0000) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4)))) ^ ((((((0xff0000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff0000) >> 16) >> 8))) -
1) & (((((0xff0000) >> 16) >> 8)))) ^ (((((0xff0000
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000) >> 16) >> 8)) >>
2)) - 1) & ((((((0xff0000) >> 16) >> 8)) >>
2))) ^ ((((((0xff0000) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8)))) - 1) & ((((((0xff0000) >>
16) >> 8))))) ^ ((((((0xff0000) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
) >> 16))) - 1) & ((((0xff0000) >> 16)))) ^ (
(((0xff0000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff0000) >> 16)) >> 4)) - 1) & (((
((0xff0000) >> 16)) >> 4))) ^ (((((0xff0000) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff0000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff0000) >> 16)) >> 4) >> 2))) ^ ((
((((0xff0000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000) >>
16)) >> 4))) - 1) & ((((((0xff0000) >> 16)) >>
4)))) ^ ((((((0xff0000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000) >>
16)))) - 1) & (((((0xff0000) >> 16))))) ^ (((((0xff0000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0xff0000) >> 16))) >> 2)) - 1) & ((((((
0xff0000) >> 16))) >> 2))) ^ ((((((0xff0000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff0000) >> 16))))) - 1) & ((((((0xff0000
) >> 16)))))) ^ ((((((0xff0000) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff0000))) - 1) &
(((0xff0000)))) ^ (((0xff0000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0xff0000)) >> 8)) - 1) & ((((0xff0000
)) >> 8))) ^ ((((0xff0000)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xff0000)) >> 8) >>
4)) - 1) & (((((0xff0000)) >> 8) >> 4))) ^ (
((((0xff0000)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff0000)) >> 8) >> 4
) >> 2)) - 1) & ((((((0xff0000)) >> 8) >>
4) >> 2))) ^ ((((((0xff0000)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
)) >> 8) >> 4))) - 1) & ((((((0xff0000)) >>
8) >> 4)))) ^ ((((((0xff0000)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000
)) >> 8))) - 1) & (((((0xff0000)) >> 8)))) ^ (
((((0xff0000)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000)) >> 8)) >> 2)) - 1) &
((((((0xff0000)) >> 8)) >> 2))) ^ ((((((0xff0000
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff0000)) >> 8)))) - 1) & ((
((((0xff0000)) >> 8))))) ^ ((((((0xff0000)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
)))) - 1) & ((((0xff0000))))) ^ ((((0xff0000)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff0000))) >> 4)
) - 1) & (((((0xff0000))) >> 4))) ^ (((((0xff0000))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff0000))) >> 4) >> 2)) - 1) & ((((((0xff0000
))) >> 4) >> 2))) ^ ((((((0xff0000))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0xff0000))) >> 4))) - 1) & ((((((0xff0000)))
>> 4)))) ^ ((((((0xff0000))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000))))) - 1) &
(((((0xff0000)))))) ^ (((((0xff0000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xff0000)))) >> 2)) - 1) &
((((((0xff0000)))) >> 2))) ^ ((((((0xff0000)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
)))))) - 1) & ((((((0xff0000))))))) ^ ((((((0xff0000)))))
))) >> (1)) != 0) ? 1 : 0))))))
;
775 ic->ic_myaddr[3] = MASK_AND_RSHIFT(reg, ATW_PAR0_PAB3_MASK)(((reg) & (0xff000000)) >> ((((u_long)((((((0xff000000
)) - 1) & ((0xff000000))) ^ ((0xff000000)))) >> (16
)) != 0) ? 16 + ((((u_long)(((((((0xff000000) >> 16)) -
1) & (((0xff000000) >> 16))) ^ (((0xff000000) >>
16)))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff000000
) >> 16) >> 8)) - 1) & ((((0xff000000) >>
16) >> 8))) ^ ((((0xff000000) >> 16) >> 8)
))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff000000)
>> 16) >> 8) >> 4)) - 1) & (((((0xff000000
) >> 16) >> 8) >> 4))) ^ (((((0xff000000) >>
16) >> 8) >> 4)))) >> (2)) != 0) ? 2 + (((
(u_long)((((((((((0xff000000) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xff000000) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xff000000) >> 16
) >> 8) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xff000000) >> 16) >>
8) >> 4))) - 1) & ((((((0xff000000) >> 16) >>
8) >> 4)))) ^ ((((((0xff000000) >> 16) >> 8
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0xff000000) >> 16) >> 8))) - 1) & ((
(((0xff000000) >> 16) >> 8)))) ^ (((((0xff000000)
>> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff000000) >> 16) >> 8)) >> 2))
- 1) & ((((((0xff000000) >> 16) >> 8)) >>
2))) ^ ((((((0xff000000) >> 16) >> 8)) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000
) >> 16) >> 8)))) - 1) & ((((((0xff000000) >>
16) >> 8))))) ^ ((((((0xff000000) >> 16) >>
8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((
0xff000000) >> 16))) - 1) & ((((0xff000000) >>
16)))) ^ ((((0xff000000) >> 16))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xff000000) >> 16)) >>
4)) - 1) & (((((0xff000000) >> 16)) >> 4))) ^
(((((0xff000000) >> 16)) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xff000000) >> 16)) >>
4) >> 2)) - 1) & ((((((0xff000000) >> 16)) >>
4) >> 2))) ^ ((((((0xff000000) >> 16)) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0xff000000) >> 16)) >> 4))) - 1) & ((
((((0xff000000) >> 16)) >> 4)))) ^ ((((((0xff000000
) >> 16)) >> 4))))) >> (1)) != 0) ? 1 : 0))
: ((((u_long)(((((((((0xff000000) >> 16)))) - 1) &
(((((0xff000000) >> 16))))) ^ (((((0xff000000) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000
) >> 16))) >> 2)) - 1) & ((((((0xff000000) >>
16))) >> 2))) ^ ((((((0xff000000) >> 16))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000
) >> 16))))) - 1) & ((((((0xff000000) >> 16))
)))) ^ ((((((0xff000000) >> 16))))))) >> (1)) != 0
) ? 1 : 0)))) : ((((u_long)(((((((0xff000000))) - 1) & ((
(0xff000000)))) ^ (((0xff000000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0xff000000)) >> 8)) - 1) & ((((
0xff000000)) >> 8))) ^ ((((0xff000000)) >> 8)))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff000000)) >> 8
) >> 4)) - 1) & (((((0xff000000)) >> 8) >>
4))) ^ (((((0xff000000)) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000)) >> 8
) >> 4) >> 2)) - 1) & ((((((0xff000000)) >>
8) >> 4) >> 2))) ^ ((((((0xff000000)) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xff000000)) >> 8) >> 4))) - 1
) & ((((((0xff000000)) >> 8) >> 4)))) ^ (((((
(0xff000000)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff000000)) >> 8))) -
1) & (((((0xff000000)) >> 8)))) ^ (((((0xff000000)
) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((
((((0xff000000)) >> 8)) >> 2)) - 1) & ((((((0xff000000
)) >> 8)) >> 2))) ^ ((((((0xff000000)) >> 8
)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(
(((((((((0xff000000)) >> 8)))) - 1) & ((((((0xff000000
)) >> 8))))) ^ ((((((0xff000000)) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff000000)))) - 1
) & ((((0xff000000))))) ^ ((((0xff000000)))))) >> (
4)) != 0) ? 4 + ((((u_long)(((((((((0xff000000))) >> 4)
) - 1) & (((((0xff000000))) >> 4))) ^ (((((0xff000000
))) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff000000))) >> 4) >> 2)) - 1) & ((((((
0xff000000))) >> 4) >> 2))) ^ ((((((0xff000000)))
>> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((
((u_long)((((((((((0xff000000))) >> 4))) - 1) & (((
(((0xff000000))) >> 4)))) ^ ((((((0xff000000))) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff000000
))))) - 1) & (((((0xff000000)))))) ^ (((((0xff000000)))))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000)
))) >> 2)) - 1) & ((((((0xff000000)))) >> 2))
) ^ ((((((0xff000000)))) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xff000000)))))) - 1) & ((
((((0xff000000))))))) ^ ((((((0xff000000)))))))) >> (1)
) != 0) ? 1 : 0))))))
;
776 reg = ATW_READ(sc, ATW_PAR1)(((sc)->sc_st)->read_4(((sc)->sc_sh), ((0x98))));
777 ic->ic_myaddr[4] = MASK_AND_RSHIFT(reg, ATW_PAR1_PAB4_MASK)(((reg) & (0xff)) >> ((((u_long)((((((0xff)) - 1) &
((0xff))) ^ ((0xff)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0xff) >> 16)) - 1) & (((0xff) >> 16))
) ^ (((0xff) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xff) >> 16) >> 8)) - 1) & ((((0xff)
>> 16) >> 8))) ^ ((((0xff) >> 16) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >>
16) >> 8) >> 4)) - 1) & (((((0xff) >> 16
) >> 8) >> 4))) ^ (((((0xff) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff) >> 16) >> 8) >> 4) >> 2)) -
1) & ((((((0xff) >> 16) >> 8) >> 4) >>
2))) ^ ((((((0xff) >> 16) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff
) >> 16) >> 8) >> 4)))) ^ ((((((0xff) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff) >> 16) >> 8))) - 1)
& (((((0xff) >> 16) >> 8)))) ^ (((((0xff) >>
16) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff) >> 16) >> 8)) >> 2)) - 1) &
((((((0xff) >> 16) >> 8)) >> 2))) ^ ((((((
0xff) >> 16) >> 8)) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16) >>
8)))) - 1) & ((((((0xff) >> 16) >> 8))))) ^ (
(((((0xff) >> 16) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xff) >> 16))) - 1) &
((((0xff) >> 16)))) ^ ((((0xff) >> 16))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >> 16)) >>
4)) - 1) & (((((0xff) >> 16)) >> 4))) ^ ((((
(0xff) >> 16)) >> 4)))) >> (2)) != 0) ? 2 +
((((u_long)((((((((((0xff) >> 16)) >> 4) >>
2)) - 1) & ((((((0xff) >> 16)) >> 4) >>
2))) ^ ((((((0xff) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16
)) >> 4))) - 1) & ((((((0xff) >> 16)) >>
4)))) ^ ((((((0xff) >> 16)) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff) >> 16))
)) - 1) & (((((0xff) >> 16))))) ^ (((((0xff) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff
) >> 16))) >> 2)) - 1) & ((((((0xff) >>
16))) >> 2))) ^ ((((((0xff) >> 16))) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff)
>> 16))))) - 1) & ((((((0xff) >> 16)))))) ^ (
(((((0xff) >> 16))))))) >> (1)) != 0) ? 1 : 0))))
: ((((u_long)(((((((0xff))) - 1) & (((0xff)))) ^ (((0xff
))))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff)) >>
8)) - 1) & ((((0xff)) >> 8))) ^ ((((0xff)) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff)) >>
8) >> 4)) - 1) & (((((0xff)) >> 8) >> 4
))) ^ (((((0xff)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xff)) >> 8) >> 4)
>> 2)) - 1) & ((((((0xff)) >> 8) >> 4)
>> 2))) ^ ((((((0xff)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
)) >> 8) >> 4))) - 1) & ((((((0xff)) >>
8) >> 4)))) ^ ((((((0xff)) >> 8) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff)) >>
8))) - 1) & (((((0xff)) >> 8)))) ^ (((((0xff)) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff))
>> 8)) >> 2)) - 1) & ((((((0xff)) >> 8
)) >> 2))) ^ ((((((0xff)) >> 8)) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff)) >> 8
)))) - 1) & ((((((0xff)) >> 8))))) ^ ((((((0xff)) >>
8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((
0xff)))) - 1) & ((((0xff))))) ^ ((((0xff)))))) >> (
4)) != 0) ? 4 + ((((u_long)(((((((((0xff))) >> 4)) - 1)
& (((((0xff))) >> 4))) ^ (((((0xff))) >> 4))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff))) >>
4) >> 2)) - 1) & ((((((0xff))) >> 4) >>
2))) ^ ((((((0xff))) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff))) >> 4)))
- 1) & ((((((0xff))) >> 4)))) ^ ((((((0xff))) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff
))))) - 1) & (((((0xff)))))) ^ (((((0xff))))))) >> (
2)) != 0) ? 2 + ((((u_long)((((((((((0xff)))) >> 2)) - 1
) & ((((((0xff)))) >> 2))) ^ ((((((0xff)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
)))))) - 1) & ((((((0xff))))))) ^ ((((((0xff)))))))) >>
(1)) != 0) ? 1 : 0))))))
;
778 ic->ic_myaddr[5] = MASK_AND_RSHIFT(reg, ATW_PAR1_PAB5_MASK)(((reg) & (0xff00)) >> ((((u_long)((((((0xff00)) - 1
) & ((0xff00))) ^ ((0xff00)))) >> (16)) != 0) ? 16 +
((((u_long)(((((((0xff00) >> 16)) - 1) & (((0xff00
) >> 16))) ^ (((0xff00) >> 16)))) >> (8)) !=
0) ? 8 + ((((u_long)((((((((0xff00) >> 16) >> 8)
) - 1) & ((((0xff00) >> 16) >> 8))) ^ ((((0xff00
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff00) >> 16) >> 8) >> 4)) - 1) &
(((((0xff00) >> 16) >> 8) >> 4))) ^ (((((0xff00
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xff00) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xff00) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4))) - 1) & ((((((0xff00) >> 16) >> 8) >>
4)))) ^ ((((((0xff00) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16) >> 8))) - 1) & (((((0xff00) >>
16) >> 8)))) ^ (((((0xff00) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00) >>
16) >> 8)) >> 2)) - 1) & ((((((0xff00) >>
16) >> 8)) >> 2))) ^ ((((((0xff00) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16) >> 8)))) - 1) & (((
(((0xff00) >> 16) >> 8))))) ^ ((((((0xff00) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00) >> 16))) - 1) & ((((0xff00) >>
16)))) ^ ((((0xff00) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff00) >> 16)) >> 4)) - 1
) & (((((0xff00) >> 16)) >> 4))) ^ (((((0xff00
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff00) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xff00) >> 16)) >> 4) >>
2))) ^ ((((((0xff00) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)
>> 16)) >> 4))) - 1) & ((((((0xff00) >>
16)) >> 4)))) ^ ((((((0xff00) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16)))) - 1) & (((((0xff00) >> 16))))) ^ (
((((0xff00) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00) >> 16))) >> 2)) - 1) & (((
(((0xff00) >> 16))) >> 2))) ^ ((((((0xff00) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16))))) - 1) & ((((((0xff00) >>
16)))))) ^ ((((((0xff00) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xff00))) - 1) & (((0xff00
)))) ^ (((0xff00))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xff00)) >> 8)) - 1) & ((((0xff00)) >> 8
))) ^ ((((0xff00)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xff00)) >> 8) >> 4)) - 1) &
(((((0xff00)) >> 8) >> 4))) ^ (((((0xff00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff00)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00)) >> 8) >> 4) >> 2))) ^ (((((
(0xff00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8) >>
4))) - 1) & ((((((0xff00)) >> 8) >> 4)))) ^ (
(((((0xff00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff00)) >> 8))) - 1) &
(((((0xff00)) >> 8)))) ^ (((((0xff00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)) >>
8)) >> 2)) - 1) & ((((((0xff00)) >> 8)) >>
2))) ^ ((((((0xff00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8
)))) - 1) & ((((((0xff00)) >> 8))))) ^ ((((((0xff00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00)))) - 1) & ((((0xff00))))) ^ ((((0xff00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff00))) >>
4)) - 1) & (((((0xff00))) >> 4))) ^ (((((0xff00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff00))) >> 4) >> 2)) - 1) & ((((((0xff00)
)) >> 4) >> 2))) ^ ((((((0xff00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
))) >> 4))) - 1) & ((((((0xff00))) >> 4)))) ^
((((((0xff00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00))))) - 1) & (((((0xff00)))
))) ^ (((((0xff00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00)))) >> 2)) - 1) & ((((((0xff00)))
) >> 2))) ^ ((((((0xff00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)))))) - 1) &
((((((0xff00))))))) ^ ((((((0xff00)))))))) >> (1)) != 0
) ? 1 : 0))))))
;
779
780 if (IEEE80211_ADDR_EQ(ic->ic_myaddr, empty_macaddr)(__builtin_memcmp((ic->ic_myaddr), (empty_macaddr), (6)) ==
0)
) {
781 printf(" could not get mac address, attach failed\n");
782 return;
783 }
784
785 printf(", address %s\n", ether_sprintf(ic->ic_myaddr));
786
787 memcpy(ifp->if_xname, sc->sc_dev.dv_xname, IFNAMSIZ)__builtin_memcpy((ifp->if_xname), (sc->sc_dev.dv_xname)
, (16))
;
788 ifp->if_softc = sc;
789 ifp->if_flags = IFF_SIMPLEX0x800 | IFF_BROADCAST0x2 | IFF_MULTICAST0x8000;
790 ifp->if_ioctl = atw_ioctl;
791 ifp->if_start = atw_start;
792 ifp->if_watchdog = atw_watchdog;
793
794 ic->ic_phytype = IEEE80211_T_DS;
795 ic->ic_opmode = IEEE80211_M_STA;
796 ic->ic_caps = IEEE80211_C_PMGT0x00000004 | IEEE80211_C_MONITOR0x00000200 | IEEE80211_C_WEP0x00000001;
797#ifndef IEEE80211_STA_ONLY
798 ic->ic_caps |= IEEE80211_C_IBSS0x00000002;
799#endif
800 ic->ic_sup_rates[IEEE80211_MODE_11B] = ieee80211_std_rateset_11b;
801
802 /*
803 * Call MI attach routines.
804 */
805
806 if_attach(ifp);
807 ieee80211_ifattach(ifp);
808
809 sc->sc_newstate = ic->ic_newstate;
810 ic->ic_newstate = atw_newstate;
811
812#ifndef IEEE80211_STA_ONLY
813 sc->sc_recv_mgmt = ic->ic_recv_mgmt;
814 ic->ic_recv_mgmt = atw_recv_mgmt;
815#endif
816
817 sc->sc_node_free = ic->ic_node_free;
818 ic->ic_node_free = atw_node_free;
819
820 sc->sc_node_alloc = ic->ic_node_alloc;
821 ic->ic_node_alloc = atw_node_alloc;
822
823 /* possibly we should fill in our own sc_send_prresp, since
824 * the ADM8211 is probably sending probe responses in ad hoc
825 * mode.
826 */
827
828 /* complete initialization */
829 ieee80211_media_init(ifp, atw_media_change, atw_media_status);
830 timeout_set(&sc->sc_scan_to, atw_next_scan, sc);
831
832#if NBPFILTER1 > 0
833 bpfattach(&sc->sc_radiobpf, ifp, DLT_IEEE802_11_RADIO127,
834 sizeof(struct ieee80211_frame) + 64);
835#endif
836
837 memset(&sc->sc_rxtapu, 0, sizeof(sc->sc_rxtapu))__builtin_memset((&sc->sc_rxtapu), (0), (sizeof(sc->
sc_rxtapu)))
;
838 sc->sc_rxtapsc_rxtapu.tap.ar_ihdr.it_len = sizeof(sc->sc_rxtapu);
839 sc->sc_rxtapsc_rxtapu.tap.ar_ihdr.it_present = ATW_RX_RADIOTAP_PRESENT((1 << IEEE80211_RADIOTAP_FLAGS) | (1 << IEEE80211_RADIOTAP_RATE
) | (1 << IEEE80211_RADIOTAP_CHANNEL) | (1 << IEEE80211_RADIOTAP_DB_ANTSIGNAL
))
;
840
841 memset(&sc->sc_txtapu, 0, sizeof(sc->sc_txtapu))__builtin_memset((&sc->sc_txtapu), (0), (sizeof(sc->
sc_txtapu)))
;
842 sc->sc_txtapsc_txtapu.tap.at_ihdr.it_len = sizeof(sc->sc_txtapu);
843 sc->sc_txtapsc_txtapu.tap.at_ihdr.it_present = ATW_TX_RADIOTAP_PRESENT((1 << IEEE80211_RADIOTAP_FLAGS) | (1 << IEEE80211_RADIOTAP_RATE
) | (1 << IEEE80211_RADIOTAP_CHANNEL))
;
844
845 return;
846
847 /*
848 * Free any resources we've allocated during the failed attach
849 * attempt. Do this in reverse order and fall through.
850 */
851 fail_5:
852 for (i = 0; i < ATW_NRXDESC64; i++) {
853 if (sc->sc_rxsoft[i].rxs_dmamap == NULL((void *)0))
854 continue;
855 bus_dmamap_destroy(sc->sc_dmat, sc->sc_rxsoft[i].rxs_dmamap)(*(sc->sc_dmat)->_dmamap_destroy)((sc->sc_dmat), (sc
->sc_rxsoft[i].rxs_dmamap))
;
856 }
857 fail_4:
858 for (i = 0; i < ATW_TXQUEUELEN64; i++) {
859 if (sc->sc_txsoft[i].txs_dmamap == NULL((void *)0))
860 continue;
861 bus_dmamap_destroy(sc->sc_dmat, sc->sc_txsoft[i].txs_dmamap)(*(sc->sc_dmat)->_dmamap_destroy)((sc->sc_dmat), (sc
->sc_txsoft[i].txs_dmamap))
;
862 }
863 bus_dmamap_unload(sc->sc_dmat, sc->sc_cddmamap)(*(sc->sc_dmat)->_dmamap_unload)((sc->sc_dmat), (sc->
sc_cddmamap))
;
864 fail_3:
865 bus_dmamap_destroy(sc->sc_dmat, sc->sc_cddmamap)(*(sc->sc_dmat)->_dmamap_destroy)((sc->sc_dmat), (sc
->sc_cddmamap))
;
866 fail_2:
867 bus_dmamem_unmap(sc->sc_dmat, (caddr_t)sc->sc_control_data,(*(sc->sc_dmat)->_dmamem_unmap)((sc->sc_dmat), ((caddr_t
)sc->sc_control_data), (sizeof(struct atw_control_data)))
868 sizeof(struct atw_control_data))(*(sc->sc_dmat)->_dmamem_unmap)((sc->sc_dmat), ((caddr_t
)sc->sc_control_data), (sizeof(struct atw_control_data)))
;
869 fail_1:
870 bus_dmamem_free(sc->sc_dmat, &sc->sc_cdseg, sc->sc_cdnseg)(*(sc->sc_dmat)->_dmamem_free)((sc->sc_dmat), (&
sc->sc_cdseg), (sc->sc_cdnseg))
;
871 fail_0:
872 return;
873}
874
875struct ieee80211_node *
876atw_node_alloc(struct ieee80211com *ic)
877{
878 struct atw_softc *sc = (struct atw_softc *)ic->ic_ific_ac.ac_if.if_softc;
879 struct ieee80211_node *ni = (*sc->sc_node_alloc)(ic);
880
881 DPRINTF(sc, ("%s: alloc node %p\n", sc->sc_dev.dv_xname, ni));
882 return ni;
883}
884
885void
886atw_node_free(struct ieee80211com *ic, struct ieee80211_node *ni)
887{
888 struct atw_softc *sc = (struct atw_softc *)ic->ic_ific_ac.ac_if.if_softc;
889
890 DPRINTF(sc, ("%s: freeing node %p %s\n", sc->sc_dev.dv_xname, ni,
891 ether_sprintf(ni->ni_bssid)));
892 (*sc->sc_node_free)(ic, ni);
893}
894
895
896static void
897atw_test1_reset(struct atw_softc *sc)
898{
899 switch (sc->sc_rev) {
900 case ATW_REVISION_BA:
901 if (1 /* XXX condition on transceiver type */) {
902 ATW_SET(sc, ATW_TEST1, ATW_TEST1_TESTMODE_MONITOR)((((sc))->sc_st)->write_4((((sc))->sc_sh), (((0x44))
), ((((((sc))->sc_st)->read_4((((sc))->sc_sh), (((0x44
))))) | (((0x3) << ((((u_long)((((((0x30)) - 1) & (
(0x30))) ^ ((0x30)))) >> (16)) != 0) ? 16 + ((((u_long)
(((((((0x30) >> 16)) - 1) & (((0x30) >> 16)))
^ (((0x30) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0x30) >> 16) >> 8)) - 1) & ((((0x30)
>> 16) >> 8))) ^ ((((0x30) >> 16) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0x30) >>
16) >> 8) >> 4)) - 1) & (((((0x30) >> 16
) >> 8) >> 4))) ^ (((((0x30) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0x30) >> 16) >> 8) >> 4) >> 2)) -
1) & ((((((0x30) >> 16) >> 8) >> 4) >>
2))) ^ ((((((0x30) >> 16) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x30
) >> 16) >> 8) >> 4))) - 1) & ((((((0x30
) >> 16) >> 8) >> 4)))) ^ ((((((0x30) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0x30) >> 16) >> 8))) - 1)
& (((((0x30) >> 16) >> 8)))) ^ (((((0x30) >>
16) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0x30) >> 16) >> 8)) >> 2)) - 1) &
((((((0x30) >> 16) >> 8)) >> 2))) ^ ((((((
0x30) >> 16) >> 8)) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0x30) >> 16) >>
8)))) - 1) & ((((((0x30) >> 16) >> 8))))) ^ (
(((((0x30) >> 16) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0x30) >> 16))) - 1) &
((((0x30) >> 16)))) ^ ((((0x30) >> 16))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0x30) >> 16)) >>
4)) - 1) & (((((0x30) >> 16)) >> 4))) ^ ((((
(0x30) >> 16)) >> 4)))) >> (2)) != 0) ? 2 +
((((u_long)((((((((((0x30) >> 16)) >> 4) >>
2)) - 1) & ((((((0x30) >> 16)) >> 4) >>
2))) ^ ((((((0x30) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x30) >> 16
)) >> 4))) - 1) & ((((((0x30) >> 16)) >>
4)))) ^ ((((((0x30) >> 16)) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x30) >> 16))
)) - 1) & (((((0x30) >> 16))))) ^ (((((0x30) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x30
) >> 16))) >> 2)) - 1) & ((((((0x30) >>
16))) >> 2))) ^ ((((((0x30) >> 16))) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x30)
>> 16))))) - 1) & ((((((0x30) >> 16)))))) ^ (
(((((0x30) >> 16))))))) >> (1)) != 0) ? 1 : 0))))
: ((((u_long)(((((((0x30))) - 1) & (((0x30)))) ^ (((0x30
))))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0x30)) >>
8)) - 1) & ((((0x30)) >> 8))) ^ ((((0x30)) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0x30)) >>
8) >> 4)) - 1) & (((((0x30)) >> 8) >> 4
))) ^ (((((0x30)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0x30)) >> 8) >> 4)
>> 2)) - 1) & ((((((0x30)) >> 8) >> 4)
>> 2))) ^ ((((((0x30)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x30
)) >> 8) >> 4))) - 1) & ((((((0x30)) >>
8) >> 4)))) ^ ((((((0x30)) >> 8) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x30)) >>
8))) - 1) & (((((0x30)) >> 8)))) ^ (((((0x30)) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x30))
>> 8)) >> 2)) - 1) & ((((((0x30)) >> 8
)) >> 2))) ^ ((((((0x30)) >> 8)) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x30)) >> 8
)))) - 1) & ((((((0x30)) >> 8))))) ^ ((((((0x30)) >>
8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((
0x30)))) - 1) & ((((0x30))))) ^ ((((0x30)))))) >> (
4)) != 0) ? 4 + ((((u_long)(((((((((0x30))) >> 4)) - 1)
& (((((0x30))) >> 4))) ^ (((((0x30))) >> 4))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x30))) >>
4) >> 2)) - 1) & ((((((0x30))) >> 4) >>
2))) ^ ((((((0x30))) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0x30))) >> 4)))
- 1) & ((((((0x30))) >> 4)))) ^ ((((((0x30))) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x30
))))) - 1) & (((((0x30)))))) ^ (((((0x30))))))) >> (
2)) != 0) ? 2 + ((((u_long)((((((((((0x30)))) >> 2)) - 1
) & ((((((0x30)))) >> 2))) ^ ((((((0x30)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x30
)))))) - 1) & ((((((0x30))))))) ^ ((((((0x30)))))))) >>
(1)) != 0) ? 1 : 0)))))))))))
;
903 }
904 break;
905 case ATW_REVISION_CA:
906 ATW_CLR(sc, ATW_TEST1, ATW_TEST1_TESTMODE_MASK)((((sc))->sc_st)->write_4((((sc))->sc_sh), (((0x44))
), ((((((sc))->sc_st)->read_4((((sc))->sc_sh), (((0x44
))))) & ~(0x30)))))
;
907 break;
908 default:
909 break;
910 }
911}
912
913/*
914 * atw_reset:
915 *
916 * Perform a soft reset on the ADM8211.
917 */
918void
919atw_reset(struct atw_softc *sc)
920{
921 int i;
922 uint32_t lpc;
923
924 ATW_WRITE(sc, ATW_NAR, 0x0)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x30)), ((0x0
))))
;
925 DELAY(20 * 1000)(*delay_func)(20 * 1000);
926
927 /* Reference driver has a cryptic remark indicating that this might
928 * power-on the chip. I know that it turns off power-saving....
929 */
930 ATW_WRITE(sc, ATW_FRCTL, 0x0)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x04)), ((0x0
))))
;
931
932 ATW_WRITE(sc, ATW_PAR, ATW_PAR_SWR)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x00)), (((
1<<0)))))
;
933
934 for (i = 0; i < 50; i++) {
935 if (ATW_READ(sc, ATW_PAR)(((sc)->sc_st)->read_4(((sc)->sc_sh), ((0x00)))) == 0)
936 break;
937 DELAY(1000)(*delay_func)(1000);
938 }
939
940 /* ... and then pause 100ms longer for good measure. */
941 DELAY(100 * 1000)(*delay_func)(100 * 1000);
942
943 DPRINTF2(sc, ("%s: atw_reset %d iterations\n", sc->sc_dev.dv_xname, i));
944
945 if (ATW_ISSET(sc, ATW_PAR, ATW_PAR_SWR)(((((sc))->sc_st)->read_4((((sc))->sc_sh), (((0x00))
))) & ((1<<0)))
)
946 printf("%s: reset failed to complete\n", sc->sc_dev.dv_xname);
947
948 atw_test1_reset(sc);
949 /*
950 * Initialize the PCI Access Register.
951 */
952 sc->sc_busmode = ATW_PAR_PBL_8DW((0x8) << ((((u_long)((((((0x3f00)) - 1) & ((0x3f00
))) ^ ((0x3f00)))) >> (16)) != 0) ? 16 + ((((u_long)(((
((((0x3f00) >> 16)) - 1) & (((0x3f00) >> 16))
) ^ (((0x3f00) >> 16)))) >> (8)) != 0) ? 8 + ((((
u_long)((((((((0x3f00) >> 16) >> 8)) - 1) & (
(((0x3f00) >> 16) >> 8))) ^ ((((0x3f00) >> 16
) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((
((0x3f00) >> 16) >> 8) >> 4)) - 1) & ((
(((0x3f00) >> 16) >> 8) >> 4))) ^ (((((0x3f00
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0x3f00) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0x3f00) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0x3f00) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0x3f00) >> 16) >> 8) >>
4))) - 1) & ((((((0x3f00) >> 16) >> 8) >>
4)))) ^ ((((((0x3f00) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3f00
) >> 16) >> 8))) - 1) & (((((0x3f00) >>
16) >> 8)))) ^ (((((0x3f00) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3f00) >>
16) >> 8)) >> 2)) - 1) & ((((((0x3f00) >>
16) >> 8)) >> 2))) ^ ((((((0x3f00) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0x3f00) >> 16) >> 8)))) - 1) & (((
(((0x3f00) >> 16) >> 8))))) ^ ((((((0x3f00) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0x3f00) >> 16))) - 1) & ((((0x3f00) >>
16)))) ^ ((((0x3f00) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0x3f00) >> 16)) >> 4)) - 1
) & (((((0x3f00) >> 16)) >> 4))) ^ (((((0x3f00
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x3f00) >> 16)) >> 4) >> 2
)) - 1) & ((((((0x3f00) >> 16)) >> 4) >>
2))) ^ ((((((0x3f00) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f00)
>> 16)) >> 4))) - 1) & ((((((0x3f00) >>
16)) >> 4)))) ^ ((((((0x3f00) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3f00
) >> 16)))) - 1) & (((((0x3f00) >> 16))))) ^ (
((((0x3f00) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0x3f00) >> 16))) >> 2)) - 1) & (((
(((0x3f00) >> 16))) >> 2))) ^ ((((((0x3f00) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0x3f00) >> 16))))) - 1) & ((((((0x3f00) >>
16)))))) ^ ((((((0x3f00) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0x3f00))) - 1) & (((0x3f00
)))) ^ (((0x3f00))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0x3f00)) >> 8)) - 1) & ((((0x3f00)) >> 8
))) ^ ((((0x3f00)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0x3f00)) >> 8) >> 4)) - 1) &
(((((0x3f00)) >> 8) >> 4))) ^ (((((0x3f00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0x3f00)) >> 8) >> 4) >> 2)) - 1) &
((((((0x3f00)) >> 8) >> 4) >> 2))) ^ (((((
(0x3f00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f00)) >> 8) >>
4))) - 1) & ((((((0x3f00)) >> 8) >> 4)))) ^ (
(((((0x3f00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0x3f00)) >> 8))) - 1) &
(((((0x3f00)) >> 8)))) ^ (((((0x3f00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3f00)) >>
8)) >> 2)) - 1) & ((((((0x3f00)) >> 8)) >>
2))) ^ ((((((0x3f00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f00)) >> 8
)))) - 1) & ((((((0x3f00)) >> 8))))) ^ ((((((0x3f00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0x3f00)))) - 1) & ((((0x3f00))))) ^ ((((0x3f00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0x3f00))) >>
4)) - 1) & (((((0x3f00))) >> 4))) ^ (((((0x3f00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0x3f00))) >> 4) >> 2)) - 1) & ((((((0x3f00)
)) >> 4) >> 2))) ^ ((((((0x3f00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f00
))) >> 4))) - 1) & ((((((0x3f00))) >> 4)))) ^
((((((0x3f00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0x3f00))))) - 1) & (((((0x3f00)))
))) ^ (((((0x3f00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0x3f00)))) >> 2)) - 1) & ((((((0x3f00)))
) >> 2))) ^ ((((((0x3f00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f00)))))) - 1) &
((((((0x3f00))))))) ^ ((((((0x3f00)))))))) >> (1)) != 0
) ? 1 : 0))))))
;
953
954 ATW_WRITE(sc, ATW_PAR, sc->sc_busmode)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x00)), ((sc
->sc_busmode))))
;
955 DPRINTF(sc, ("%s: ATW_PAR %08x busmode %08x\n", sc->sc_dev.dv_xname,
956 ATW_READ(sc, ATW_PAR), sc->sc_busmode));
957
958 /* Turn off maximum power saving, etc.
959 *
960 * XXX Following example of reference driver, should I set
961 * an AID of 1? It didn't seem to help....
962 */
963 ATW_WRITE(sc, ATW_FRCTL, 0x0)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x04)), ((0x0
))))
;
964
965 DELAY(100 * 1000)(*delay_func)(100 * 1000);
966
967 /* Recall EEPROM. */
968 ATW_SET(sc, ATW_TEST0, ATW_TEST0_EPRLD)((((sc))->sc_st)->write_4((((sc))->sc_sh), (((0x4C))
), ((((((sc))->sc_st)->read_4((((sc))->sc_sh), (((0x4C
))))) | ((1<<15))))))
;
969
970 DELAY(10 * 1000)(*delay_func)(10 * 1000);
971
972 lpc = ATW_READ(sc, ATW_LPC)(((sc)->sc_st)->read_4(((sc)->sc_sh), ((0x40))));
973
974 DPRINTF(sc, ("%s: ATW_LPC %#08x\n", __func__, lpc));
975
976 /* A reset seems to affect the SRAM contents, so put them into
977 * a known state.
978 */
979 atw_clear_sram(sc);
980
981 memset(sc->sc_bssid, 0xff, sizeof(sc->sc_bssid))__builtin_memset((sc->sc_bssid), (0xff), (sizeof(sc->sc_bssid
)))
;
982}
983
984void
985atw_clear_sram(struct atw_softc *sc)
986{
987 memset(sc->sc_sram, 0, sizeof(sc->sc_sram))__builtin_memset((sc->sc_sram), (0), (sizeof(sc->sc_sram
)))
;
988 /* XXX not for revision 0x20. */
989 atw_write_sram(sc, 0, sc->sc_sram, sc->sc_sramlen);
990}
991
992/* TBD atw_init
993 *
994 * set MAC based on ic->ic_bss->myaddr
995 * write WEP keys
996 * set TX rate
997 */
998
999/* Tell the ADM8211 to raise ATW_INTR_LINKOFF if 7 beacon intervals pass
1000 * without receiving a beacon with the preferred BSSID & SSID.
1001 * atw_write_bssid & atw_write_ssid set the BSSID & SSID.
1002 */
1003void
1004atw_wcsr_init(struct atw_softc *sc)
1005{
1006 uint32_t wcsr;
1007
1008 wcsr = ATW_READ(sc, ATW_WCSR)(((sc)->sc_st)->read_4(((sc)->sc_sh), ((0x50))));
1009 wcsr &= ~(ATW_WCSR_BLN_MASK0xe00000|ATW_WCSR_LSOE(1<<8)|ATW_WCSR_MPRE(1<<9)|ATW_WCSR_LSOE(1<<8));
1010 wcsr |= LSHIFT(7, ATW_WCSR_BLN_MASK)((7) << ((((u_long)((((((0xe00000)) - 1) & ((0xe00000
))) ^ ((0xe00000)))) >> (16)) != 0) ? 16 + ((((u_long)(
((((((0xe00000) >> 16)) - 1) & (((0xe00000) >>
16))) ^ (((0xe00000) >> 16)))) >> (8)) != 0) ? 8
+ ((((u_long)((((((((0xe00000) >> 16) >> 8)) - 1
) & ((((0xe00000) >> 16) >> 8))) ^ ((((0xe00000
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xe00000) >> 16) >> 8) >> 4)) - 1
) & (((((0xe00000) >> 16) >> 8) >> 4)))
^ (((((0xe00000) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xe00000) >> 16)
>> 8) >> 4) >> 2)) - 1) & ((((((0xe00000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xe00000) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xe00000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xe00000
) >> 16) >> 8) >> 4)))) ^ ((((((0xe00000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xe00000) >> 16) >> 8))) -
1) & (((((0xe00000) >> 16) >> 8)))) ^ (((((0xe00000
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xe00000) >> 16) >> 8)) >>
2)) - 1) & ((((((0xe00000) >> 16) >> 8)) >>
2))) ^ ((((((0xe00000) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xe00000
) >> 16) >> 8)))) - 1) & ((((((0xe00000) >>
16) >> 8))))) ^ ((((((0xe00000) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xe00000
) >> 16))) - 1) & ((((0xe00000) >> 16)))) ^ (
(((0xe00000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xe00000) >> 16)) >> 4)) - 1) & (((
((0xe00000) >> 16)) >> 4))) ^ (((((0xe00000) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xe00000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xe00000) >> 16)) >> 4) >> 2))) ^ ((
((((0xe00000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xe00000) >>
16)) >> 4))) - 1) & ((((((0xe00000) >> 16)) >>
4)))) ^ ((((((0xe00000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xe00000) >>
16)))) - 1) & (((((0xe00000) >> 16))))) ^ (((((0xe00000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0xe00000) >> 16))) >> 2)) - 1) & ((((((
0xe00000) >> 16))) >> 2))) ^ ((((((0xe00000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xe00000) >> 16))))) - 1) & ((((((0xe00000
) >> 16)))))) ^ ((((((0xe00000) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xe00000))) - 1) &
(((0xe00000)))) ^ (((0xe00000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0xe00000)) >> 8)) - 1) & ((((0xe00000
)) >> 8))) ^ ((((0xe00000)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xe00000)) >> 8) >>
4)) - 1) & (((((0xe00000)) >> 8) >> 4))) ^ (
((((0xe00000)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xe00000)) >> 8) >> 4
) >> 2)) - 1) & ((((((0xe00000)) >> 8) >>
4) >> 2))) ^ ((((((0xe00000)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xe00000
)) >> 8) >> 4))) - 1) & ((((((0xe00000)) >>
8) >> 4)))) ^ ((((((0xe00000)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xe00000
)) >> 8))) - 1) & (((((0xe00000)) >> 8)))) ^ (
((((0xe00000)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xe00000)) >> 8)) >> 2)) - 1) &
((((((0xe00000)) >> 8)) >> 2))) ^ ((((((0xe00000
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xe00000)) >> 8)))) - 1) & ((
((((0xe00000)) >> 8))))) ^ ((((((0xe00000)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xe00000
)))) - 1) & ((((0xe00000))))) ^ ((((0xe00000)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xe00000))) >> 4)
) - 1) & (((((0xe00000))) >> 4))) ^ (((((0xe00000))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xe00000))) >> 4) >> 2)) - 1) & ((((((0xe00000
))) >> 4) >> 2))) ^ ((((((0xe00000))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0xe00000))) >> 4))) - 1) & ((((((0xe00000)))
>> 4)))) ^ ((((((0xe00000))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xe00000))))) - 1) &
(((((0xe00000)))))) ^ (((((0xe00000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xe00000)))) >> 2)) - 1) &
((((((0xe00000)))) >> 2))) ^ ((((((0xe00000)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xe00000
)))))) - 1) & ((((((0xe00000))))))) ^ ((((((0xe00000)))))
))) >> (1)) != 0) ? 1 : 0))))))
;
1011 ATW_WRITE(sc, ATW_WCSR, wcsr)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x50)), ((wcsr
))))
; /* XXX resets wake-up status bits */
1012
1013 DPRINTF(sc, ("%s: %s reg[WCSR] = %08x\n",
1014 sc->sc_dev.dv_xname, __func__, ATW_READ(sc, ATW_WCSR)));
1015}
1016
1017/* Turn off power management. Set Rx store-and-forward mode. */
1018void
1019atw_cmdr_init(struct atw_softc *sc)
1020{
1021 uint32_t cmdr;
1022 cmdr = ATW_READ(sc, ATW_CMDR)(((sc)->sc_st)->read_4(((sc)->sc_sh), ((0x88))));
1023 cmdr &= ~ATW_CMDR_APM(1<<18);
1024 cmdr |= ATW_CMDR_RTE(1<<4);
1025 cmdr &= ~ATW_CMDR_DRT_MASK0xc;
1026 cmdr |= ATW_CMDR_DRT_SF((0x2) << ((((u_long)((((((0xc)) - 1) & ((0xc))) ^ (
(0xc)))) >> (16)) != 0) ? 16 + ((((u_long)(((((((0xc) >>
16)) - 1) & (((0xc) >> 16))) ^ (((0xc) >> 16
)))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xc) >>
16) >> 8)) - 1) & ((((0xc) >> 16) >> 8
))) ^ ((((0xc) >> 16) >> 8)))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xc) >> 16) >> 8) >>
4)) - 1) & (((((0xc) >> 16) >> 8) >> 4
))) ^ (((((0xc) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xc) >> 16) >>
8) >> 4) >> 2)) - 1) & ((((((0xc) >> 16
) >> 8) >> 4) >> 2))) ^ ((((((0xc) >>
16) >> 8) >> 4) >> 2)))) >> (1)) != 0
) ? 1 : 0) : ((((u_long)((((((((((0xc) >> 16) >> 8
) >> 4))) - 1) & ((((((0xc) >> 16) >> 8
) >> 4)))) ^ ((((((0xc) >> 16) >> 8) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xc
) >> 16) >> 8))) - 1) & (((((0xc) >> 16
) >> 8)))) ^ (((((0xc) >> 16) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xc) >> 16) >>
8)) >> 2)) - 1) & ((((((0xc) >> 16) >>
8)) >> 2))) ^ ((((((0xc) >> 16) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc
) >> 16) >> 8)))) - 1) & ((((((0xc) >> 16
) >> 8))))) ^ ((((((0xc) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xc) >> 16)
)) - 1) & ((((0xc) >> 16)))) ^ ((((0xc) >> 16
))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xc) >>
16)) >> 4)) - 1) & (((((0xc) >> 16)) >>
4))) ^ (((((0xc) >> 16)) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xc) >> 16)) >> 4)
>> 2)) - 1) & ((((((0xc) >> 16)) >> 4)
>> 2))) ^ ((((((0xc) >> 16)) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc
) >> 16)) >> 4))) - 1) & ((((((0xc) >> 16
)) >> 4)))) ^ ((((((0xc) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xc) >> 16)
))) - 1) & (((((0xc) >> 16))))) ^ (((((0xc) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xc)
>> 16))) >> 2)) - 1) & ((((((0xc) >> 16
))) >> 2))) ^ ((((((0xc) >> 16))) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc) >> 16)
)))) - 1) & ((((((0xc) >> 16)))))) ^ ((((((0xc) >>
16))))))) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((
((0xc))) - 1) & (((0xc)))) ^ (((0xc))))) >> (8)) !=
0) ? 8 + ((((u_long)((((((((0xc)) >> 8)) - 1) & ((
((0xc)) >> 8))) ^ ((((0xc)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xc)) >> 8) >> 4
)) - 1) & (((((0xc)) >> 8) >> 4))) ^ (((((0xc
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xc)) >> 8) >> 4) >> 2)) - 1) &
((((((0xc)) >> 8) >> 4) >> 2))) ^ ((((((0xc
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xc)) >> 8) >> 4
))) - 1) & ((((((0xc)) >> 8) >> 4)))) ^ (((((
(0xc)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0
)) : ((((u_long)(((((((((0xc)) >> 8))) - 1) & (((((
0xc)) >> 8)))) ^ (((((0xc)) >> 8))))) >> (2
)) != 0) ? 2 + ((((u_long)((((((((((0xc)) >> 8)) >>
2)) - 1) & ((((((0xc)) >> 8)) >> 2))) ^ ((((
((0xc)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 :
0) : ((((u_long)((((((((((0xc)) >> 8)))) - 1) & ((
((((0xc)) >> 8))))) ^ ((((((0xc)) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xc)))) - 1) &
((((0xc))))) ^ ((((0xc)))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xc))) >> 4)) - 1) & (((((0xc))) >>
4))) ^ (((((0xc))) >> 4)))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xc))) >> 4) >> 2)) - 1) &
((((((0xc))) >> 4) >> 2))) ^ ((((((0xc))) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xc))) >> 4))) - 1) & ((((((0xc))) >>
4)))) ^ ((((((0xc))) >> 4))))) >> (1)) != 0) ? 1
: 0)) : ((((u_long)(((((((((0xc))))) - 1) & (((((0xc))))
)) ^ (((((0xc))))))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xc)))) >> 2)) - 1) & ((((((0xc)))) >>
2))) ^ ((((((0xc)))) >> 2)))) >> (1)) != 0) ? 1 :
0) : ((((u_long)((((((((((0xc)))))) - 1) & ((((((0xc))))
))) ^ ((((((0xc)))))))) >> (1)) != 0) ? 1 : 0))))))
;
1027
1028 ATW_WRITE(sc, ATW_CMDR, cmdr)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x88)), ((cmdr
))))
;
1029}
1030
1031void
1032atw_tofs2_init(struct atw_softc *sc)
1033{
1034 uint32_t tofs2;
1035 /* XXX this magic can probably be figured out from the RFMD docs */
1036#ifndef ATW_REFSLAVE
1037 tofs2 = LSHIFT(4, ATW_TOFS2_PWR1UP_MASK)((4) << ((((u_long)((((((0xf0000000)) - 1) & ((0xf0000000
))) ^ ((0xf0000000)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0xf0000000) >> 16)) - 1) & (((0xf0000000) >>
16))) ^ (((0xf0000000) >> 16)))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0xf0000000) >> 16) >> 8))
- 1) & ((((0xf0000000) >> 16) >> 8))) ^ ((((
0xf0000000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0xf0000000) >> 16) >> 8)
>> 4)) - 1) & (((((0xf0000000) >> 16) >>
8) >> 4))) ^ (((((0xf0000000) >> 16) >> 8)
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xf0000000) >> 16) >> 8) >> 4) >> 2
)) - 1) & ((((((0xf0000000) >> 16) >> 8) >>
4) >> 2))) ^ ((((((0xf0000000) >> 16) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xf0000000) >> 16) >> 8) >>
4))) - 1) & ((((((0xf0000000) >> 16) >> 8) >>
4)))) ^ ((((((0xf0000000) >> 16) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf0000000
) >> 16) >> 8))) - 1) & (((((0xf0000000) >>
16) >> 8)))) ^ (((((0xf0000000) >> 16) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf0000000
) >> 16) >> 8)) >> 2)) - 1) & ((((((0xf0000000
) >> 16) >> 8)) >> 2))) ^ ((((((0xf0000000)
>> 16) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xf0000000) >> 16) >>
8)))) - 1) & ((((((0xf0000000) >> 16) >> 8))
))) ^ ((((((0xf0000000) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf0000000) >>
16))) - 1) & ((((0xf0000000) >> 16)))) ^ ((((0xf0000000
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xf0000000) >> 16)) >> 4)) - 1) & (((((0xf0000000
) >> 16)) >> 4))) ^ (((((0xf0000000) >> 16)
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xf0000000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xf0000000) >> 16)) >> 4) >> 2))) ^ (
(((((0xf0000000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0000000) >>
16)) >> 4))) - 1) & ((((((0xf0000000) >> 16)
) >> 4)))) ^ ((((((0xf0000000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf0000000
) >> 16)))) - 1) & (((((0xf0000000) >> 16))))
) ^ (((((0xf0000000) >> 16)))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0xf0000000) >> 16))) >> 2
)) - 1) & ((((((0xf0000000) >> 16))) >> 2))) ^
((((((0xf0000000) >> 16))) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0000000) >> 16
))))) - 1) & ((((((0xf0000000) >> 16)))))) ^ ((((((
0xf0000000) >> 16))))))) >> (1)) != 0) ? 1 : 0)))
) : ((((u_long)(((((((0xf0000000))) - 1) & (((0xf0000000)
))) ^ (((0xf0000000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xf0000000)) >> 8)) - 1) & ((((0xf0000000)
) >> 8))) ^ ((((0xf0000000)) >> 8)))) >> (4
)) != 0) ? 4 + ((((u_long)(((((((((0xf0000000)) >> 8) >>
4)) - 1) & (((((0xf0000000)) >> 8) >> 4))) ^
(((((0xf0000000)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xf0000000)) >> 8) >>
4) >> 2)) - 1) & ((((((0xf0000000)) >> 8) >>
4) >> 2))) ^ ((((((0xf0000000)) >> 8) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0xf0000000)) >> 8) >> 4))) - 1) & (((
(((0xf0000000)) >> 8) >> 4)))) ^ ((((((0xf0000000
)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)) :
((((u_long)(((((((((0xf0000000)) >> 8))) - 1) & ((
(((0xf0000000)) >> 8)))) ^ (((((0xf0000000)) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf0000000
)) >> 8)) >> 2)) - 1) & ((((((0xf0000000)) >>
8)) >> 2))) ^ ((((((0xf0000000)) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0000000
)) >> 8)))) - 1) & ((((((0xf0000000)) >> 8)))
)) ^ ((((((0xf0000000)) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xf0000000)))) - 1) & ((((
0xf0000000))))) ^ ((((0xf0000000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xf0000000))) >> 4)) - 1) & (
((((0xf0000000))) >> 4))) ^ (((((0xf0000000))) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf0000000
))) >> 4) >> 2)) - 1) & ((((((0xf0000000))) >>
4) >> 2))) ^ ((((((0xf0000000))) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0000000
))) >> 4))) - 1) & ((((((0xf0000000))) >> 4))
)) ^ ((((((0xf0000000))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xf0000000))))) - 1) & (((
((0xf0000000)))))) ^ (((((0xf0000000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xf0000000)))) >> 2)) - 1)
& ((((((0xf0000000)))) >> 2))) ^ ((((((0xf0000000)
))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xf0000000)))))) - 1) & ((((((0xf0000000)))))))
^ ((((((0xf0000000)))))))) >> (1)) != 0) ? 1 : 0))))))
| /* 8 ms = 4 * 2 ms */
1038 LSHIFT(13, ATW_TOFS2_PWR0PAPE_MASK)((13) << ((((u_long)((((((0xf000000)) - 1) & ((0xf000000
))) ^ ((0xf000000)))) >> (16)) != 0) ? 16 + ((((u_long)
(((((((0xf000000) >> 16)) - 1) & (((0xf000000) >>
16))) ^ (((0xf000000) >> 16)))) >> (8)) != 0) ? 8
+ ((((u_long)((((((((0xf000000) >> 16) >> 8)) - 1
) & ((((0xf000000) >> 16) >> 8))) ^ ((((0xf000000
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xf000000) >> 16) >> 8) >> 4)) - 1
) & (((((0xf000000) >> 16) >> 8) >> 4))
) ^ (((((0xf000000) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf000000) >> 16
) >> 8) >> 4) >> 2)) - 1) & ((((((0xf000000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xf000000) >> 16) >> 8) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xf000000
) >> 16) >> 8) >> 4)))) ^ ((((((0xf000000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xf000000) >> 16) >> 8)))
- 1) & (((((0xf000000) >> 16) >> 8)))) ^ (((
((0xf000000) >> 16) >> 8))))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xf000000) >> 16) >> 8
)) >> 2)) - 1) & ((((((0xf000000) >> 16) >>
8)) >> 2))) ^ ((((((0xf000000) >> 16) >> 8
)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(
(((((((((0xf000000) >> 16) >> 8)))) - 1) & ((
((((0xf000000) >> 16) >> 8))))) ^ ((((((0xf000000
) >> 16) >> 8)))))) >> (1)) != 0) ? 1 : 0))
) : ((((u_long)((((((((0xf000000) >> 16))) - 1) & (
(((0xf000000) >> 16)))) ^ ((((0xf000000) >> 16)))
)) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf000000) >>
16)) >> 4)) - 1) & (((((0xf000000) >> 16)) >>
4))) ^ (((((0xf000000) >> 16)) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf000000) >> 16
)) >> 4) >> 2)) - 1) & ((((((0xf000000) >>
16)) >> 4) >> 2))) ^ ((((((0xf000000) >> 16
)) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xf000000) >> 16)) >> 4))) - 1
) & ((((((0xf000000) >> 16)) >> 4)))) ^ (((((
(0xf000000) >> 16)) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xf000000) >> 16)))) -
1) & (((((0xf000000) >> 16))))) ^ (((((0xf000000) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf000000
) >> 16))) >> 2)) - 1) & ((((((0xf000000) >>
16))) >> 2))) ^ ((((((0xf000000) >> 16))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000000
) >> 16))))) - 1) & ((((((0xf000000) >> 16)))
))) ^ ((((((0xf000000) >> 16))))))) >> (1)) != 0)
? 1 : 0)))) : ((((u_long)(((((((0xf000000))) - 1) & (((0xf000000
)))) ^ (((0xf000000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xf000000)) >> 8)) - 1) & ((((0xf000000)) >>
8))) ^ ((((0xf000000)) >> 8)))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xf000000)) >> 8) >> 4)) -
1) & (((((0xf000000)) >> 8) >> 4))) ^ (((((0xf000000
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xf000000)) >> 8) >> 4) >> 2)) -
1) & ((((((0xf000000)) >> 8) >> 4) >> 2
))) ^ ((((((0xf000000)) >> 8) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000000
)) >> 8) >> 4))) - 1) & ((((((0xf000000)) >>
8) >> 4)))) ^ ((((((0xf000000)) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf000000
)) >> 8))) - 1) & (((((0xf000000)) >> 8)))) ^
(((((0xf000000)) >> 8))))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xf000000)) >> 8)) >> 2)) - 1
) & ((((((0xf000000)) >> 8)) >> 2))) ^ ((((((
0xf000000)) >> 8)) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xf000000)) >> 8)))) - 1
) & ((((((0xf000000)) >> 8))))) ^ ((((((0xf000000))
>> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xf000000)))) - 1) & ((((0xf000000))))) ^ ((((0xf000000
)))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf000000
))) >> 4)) - 1) & (((((0xf000000))) >> 4))) ^
(((((0xf000000))) >> 4)))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xf000000))) >> 4) >> 2)) - 1
) & ((((((0xf000000))) >> 4) >> 2))) ^ ((((((
0xf000000))) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xf000000))) >> 4))) - 1
) & ((((((0xf000000))) >> 4)))) ^ ((((((0xf000000))
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0xf000000))))) - 1) & (((((0xf000000)))))) ^ (((
((0xf000000))))))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xf000000)))) >> 2)) - 1) & ((((((0xf000000)))
) >> 2))) ^ ((((((0xf000000)))) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000000)))))) -
1) & ((((((0xf000000))))))) ^ ((((((0xf000000)))))))) >>
(1)) != 0) ? 1 : 0))))))
| /* 13 us */
1039 LSHIFT(8, ATW_TOFS2_PWR1PAPE_MASK)((8) << ((((u_long)((((((0xf00000)) - 1) & ((0xf00000
))) ^ ((0xf00000)))) >> (16)) != 0) ? 16 + ((((u_long)(
((((((0xf00000) >> 16)) - 1) & (((0xf00000) >>
16))) ^ (((0xf00000) >> 16)))) >> (8)) != 0) ? 8
+ ((((u_long)((((((((0xf00000) >> 16) >> 8)) - 1
) & ((((0xf00000) >> 16) >> 8))) ^ ((((0xf00000
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xf00000) >> 16) >> 8) >> 4)) - 1
) & (((((0xf00000) >> 16) >> 8) >> 4)))
^ (((((0xf00000) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf00000) >> 16)
>> 8) >> 4) >> 2)) - 1) & ((((((0xf00000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xf00000) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf00000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xf00000
) >> 16) >> 8) >> 4)))) ^ ((((((0xf00000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xf00000) >> 16) >> 8))) -
1) & (((((0xf00000) >> 16) >> 8)))) ^ (((((0xf00000
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xf00000) >> 16) >> 8)) >>
2)) - 1) & ((((((0xf00000) >> 16) >> 8)) >>
2))) ^ ((((((0xf00000) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf00000
) >> 16) >> 8)))) - 1) & ((((((0xf00000) >>
16) >> 8))))) ^ ((((((0xf00000) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf00000
) >> 16))) - 1) & ((((0xf00000) >> 16)))) ^ (
(((0xf00000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xf00000) >> 16)) >> 4)) - 1) & (((
((0xf00000) >> 16)) >> 4))) ^ (((((0xf00000) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xf00000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xf00000) >> 16)) >> 4) >> 2))) ^ ((
((((0xf00000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf00000) >>
16)) >> 4))) - 1) & ((((((0xf00000) >> 16)) >>
4)))) ^ ((((((0xf00000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf00000) >>
16)))) - 1) & (((((0xf00000) >> 16))))) ^ (((((0xf00000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0xf00000) >> 16))) >> 2)) - 1) & ((((((
0xf00000) >> 16))) >> 2))) ^ ((((((0xf00000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xf00000) >> 16))))) - 1) & ((((((0xf00000
) >> 16)))))) ^ ((((((0xf00000) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xf00000))) - 1) &
(((0xf00000)))) ^ (((0xf00000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0xf00000)) >> 8)) - 1) & ((((0xf00000
)) >> 8))) ^ ((((0xf00000)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xf00000)) >> 8) >>
4)) - 1) & (((((0xf00000)) >> 8) >> 4))) ^ (
((((0xf00000)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xf00000)) >> 8) >> 4
) >> 2)) - 1) & ((((((0xf00000)) >> 8) >>
4) >> 2))) ^ ((((((0xf00000)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf00000
)) >> 8) >> 4))) - 1) & ((((((0xf00000)) >>
8) >> 4)))) ^ ((((((0xf00000)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf00000
)) >> 8))) - 1) & (((((0xf00000)) >> 8)))) ^ (
((((0xf00000)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xf00000)) >> 8)) >> 2)) - 1) &
((((((0xf00000)) >> 8)) >> 2))) ^ ((((((0xf00000
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xf00000)) >> 8)))) - 1) & ((
((((0xf00000)) >> 8))))) ^ ((((((0xf00000)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf00000
)))) - 1) & ((((0xf00000))))) ^ ((((0xf00000)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xf00000))) >> 4)
) - 1) & (((((0xf00000))) >> 4))) ^ (((((0xf00000))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xf00000))) >> 4) >> 2)) - 1) & ((((((0xf00000
))) >> 4) >> 2))) ^ ((((((0xf00000))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0xf00000))) >> 4))) - 1) & ((((((0xf00000)))
>> 4)))) ^ ((((((0xf00000))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf00000))))) - 1) &
(((((0xf00000)))))) ^ (((((0xf00000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xf00000)))) >> 2)) - 1) &
((((((0xf00000)))) >> 2))) ^ ((((((0xf00000)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf00000
)))))) - 1) & ((((((0xf00000))))))) ^ ((((((0xf00000)))))
))) >> (1)) != 0) ? 1 : 0))))))
| /* 8 us */
1040 LSHIFT(5, ATW_TOFS2_PWR0TRSW_MASK)((5) << ((((u_long)((((((0xf0000)) - 1) & ((0xf0000
))) ^ ((0xf0000)))) >> (16)) != 0) ? 16 + ((((u_long)((
(((((0xf0000) >> 16)) - 1) & (((0xf0000) >> 16
))) ^ (((0xf0000) >> 16)))) >> (8)) != 0) ? 8 + (
(((u_long)((((((((0xf0000) >> 16) >> 8)) - 1) &
((((0xf0000) >> 16) >> 8))) ^ ((((0xf0000) >>
16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)((((
(((((0xf0000) >> 16) >> 8) >> 4)) - 1) &
(((((0xf0000) >> 16) >> 8) >> 4))) ^ (((((
0xf0000) >> 16) >> 8) >> 4)))) >> (2)
) != 0) ? 2 + ((((u_long)((((((((((0xf0000) >> 16) >>
8) >> 4) >> 2)) - 1) & ((((((0xf0000) >>
16) >> 8) >> 4) >> 2))) ^ ((((((0xf0000) >>
16) >> 8) >> 4) >> 2)))) >> (1)) != 0
) ? 1 : 0) : ((((u_long)((((((((((0xf0000) >> 16) >>
8) >> 4))) - 1) & ((((((0xf0000) >> 16) >>
8) >> 4)))) ^ ((((((0xf0000) >> 16) >> 8) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf0000
) >> 16) >> 8))) - 1) & (((((0xf0000) >>
16) >> 8)))) ^ (((((0xf0000) >> 16) >> 8))
))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf0000) >>
16) >> 8)) >> 2)) - 1) & ((((((0xf0000) >>
16) >> 8)) >> 2))) ^ ((((((0xf0000) >> 16)
>> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xf0000) >> 16) >> 8)))) - 1)
& ((((((0xf0000) >> 16) >> 8))))) ^ ((((((0xf0000
) >> 16) >> 8)))))) >> (1)) != 0) ? 1 : 0))
) : ((((u_long)((((((((0xf0000) >> 16))) - 1) & (((
(0xf0000) >> 16)))) ^ ((((0xf0000) >> 16))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xf0000) >> 16)) >>
4)) - 1) & (((((0xf0000) >> 16)) >> 4))) ^ (
((((0xf0000) >> 16)) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xf0000) >> 16)) >> 4
) >> 2)) - 1) & ((((((0xf0000) >> 16)) >>
4) >> 2))) ^ ((((((0xf0000) >> 16)) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0000
) >> 16)) >> 4))) - 1) & ((((((0xf0000) >>
16)) >> 4)))) ^ ((((((0xf0000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf0000
) >> 16)))) - 1) & (((((0xf0000) >> 16))))) ^
(((((0xf0000) >> 16)))))) >> (2)) != 0) ? 2 + ((
((u_long)((((((((((0xf0000) >> 16))) >> 2)) - 1) &
((((((0xf0000) >> 16))) >> 2))) ^ ((((((0xf0000)
>> 16))) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xf0000) >> 16))))) - 1) & ((
((((0xf0000) >> 16)))))) ^ ((((((0xf0000) >> 16))
))))) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xf0000
))) - 1) & (((0xf0000)))) ^ (((0xf0000))))) >> (8))
!= 0) ? 8 + ((((u_long)((((((((0xf0000)) >> 8)) - 1) &
((((0xf0000)) >> 8))) ^ ((((0xf0000)) >> 8)))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xf0000)) >> 8) >>
4)) - 1) & (((((0xf0000)) >> 8) >> 4))) ^ ((
(((0xf0000)) >> 8) >> 4)))) >> (2)) != 0) ?
2 + ((((u_long)((((((((((0xf0000)) >> 8) >> 4) >>
2)) - 1) & ((((((0xf0000)) >> 8) >> 4) >>
2))) ^ ((((((0xf0000)) >> 8) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0000
)) >> 8) >> 4))) - 1) & ((((((0xf0000)) >>
8) >> 4)))) ^ ((((((0xf0000)) >> 8) >> 4))
))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf0000
)) >> 8))) - 1) & (((((0xf0000)) >> 8)))) ^ (
((((0xf0000)) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xf0000)) >> 8)) >> 2)) - 1) & (((
(((0xf0000)) >> 8)) >> 2))) ^ ((((((0xf0000)) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xf0000)) >> 8)))) - 1) & ((((((0xf0000)
) >> 8))))) ^ ((((((0xf0000)) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf0000)))) - 1) &
((((0xf0000))))) ^ ((((0xf0000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xf0000))) >> 4)) - 1) & (((
((0xf0000))) >> 4))) ^ (((((0xf0000))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf0000))) >> 4)
>> 2)) - 1) & ((((((0xf0000))) >> 4) >>
2))) ^ ((((((0xf0000))) >> 4) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0000))) >>
4))) - 1) & ((((((0xf0000))) >> 4)))) ^ ((((((0xf0000
))) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0xf0000))))) - 1) & (((((0xf0000)))))) ^ (((((0xf0000
))))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf0000
)))) >> 2)) - 1) & ((((((0xf0000)))) >> 2))) ^
((((((0xf0000)))) >> 2)))) >> (1)) != 0) ? 1 : 0
) : ((((u_long)((((((((((0xf0000)))))) - 1) & ((((((0xf0000
))))))) ^ ((((((0xf0000)))))))) >> (1)) != 0) ? 1 : 0))
))))
| /* 5 us */
1041 LSHIFT(12, ATW_TOFS2_PWR1TRSW_MASK)((12) << ((((u_long)((((((0xf000)) - 1) & ((0xf000)
)) ^ ((0xf000)))) >> (16)) != 0) ? 16 + ((((u_long)((((
(((0xf000) >> 16)) - 1) & (((0xf000) >> 16)))
^ (((0xf000) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xf000) >> 16) >> 8)) - 1) & ((((0xf000
) >> 16) >> 8))) ^ ((((0xf000) >> 16) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf000) >>
16) >> 8) >> 4)) - 1) & (((((0xf000) >>
16) >> 8) >> 4))) ^ (((((0xf000) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xf000) >> 16) >> 8) >> 4) >> 2)
) - 1) & ((((((0xf000) >> 16) >> 8) >> 4
) >> 2))) ^ ((((((0xf000) >> 16) >> 8) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xf000) >> 16) >> 8) >> 4))) - 1)
& ((((((0xf000) >> 16) >> 8) >> 4)))) ^
((((((0xf000) >> 16) >> 8) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf000) >> 16
) >> 8))) - 1) & (((((0xf000) >> 16) >>
8)))) ^ (((((0xf000) >> 16) >> 8))))) >> (
2)) != 0) ? 2 + ((((u_long)((((((((((0xf000) >> 16) >>
8)) >> 2)) - 1) & ((((((0xf000) >> 16) >>
8)) >> 2))) ^ ((((((0xf000) >> 16) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000
) >> 16) >> 8)))) - 1) & ((((((0xf000) >>
16) >> 8))))) ^ ((((((0xf000) >> 16) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf000
) >> 16))) - 1) & ((((0xf000) >> 16)))) ^ (((
(0xf000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xf000) >> 16)) >> 4)) - 1) & (((((
0xf000) >> 16)) >> 4))) ^ (((((0xf000) >> 16
)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((
((((0xf000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xf000) >> 16)) >> 4) >> 2))) ^ ((((
((0xf000) >> 16)) >> 4) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000) >> 16
)) >> 4))) - 1) & ((((((0xf000) >> 16)) >>
4)))) ^ ((((((0xf000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf000) >> 16
)))) - 1) & (((((0xf000) >> 16))))) ^ (((((0xf000) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf000
) >> 16))) >> 2)) - 1) & ((((((0xf000) >>
16))) >> 2))) ^ ((((((0xf000) >> 16))) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000
) >> 16))))) - 1) & ((((((0xf000) >> 16))))))
^ ((((((0xf000) >> 16))))))) >> (1)) != 0) ? 1 :
0)))) : ((((u_long)(((((((0xf000))) - 1) & (((0xf000))))
^ (((0xf000))))) >> (8)) != 0) ? 8 + ((((u_long)((((((
((0xf000)) >> 8)) - 1) & ((((0xf000)) >> 8)))
^ ((((0xf000)) >> 8)))) >> (4)) != 0) ? 4 + ((((
u_long)(((((((((0xf000)) >> 8) >> 4)) - 1) & (
((((0xf000)) >> 8) >> 4))) ^ (((((0xf000)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xf000)) >> 8) >> 4) >> 2)) - 1) &
((((((0xf000)) >> 8) >> 4) >> 2))) ^ (((((
(0xf000)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000)) >> 8) >>
4))) - 1) & ((((((0xf000)) >> 8) >> 4)))) ^ (
(((((0xf000)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xf000)) >> 8))) - 1) &
(((((0xf000)) >> 8)))) ^ (((((0xf000)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf000)) >>
8)) >> 2)) - 1) & ((((((0xf000)) >> 8)) >>
2))) ^ ((((((0xf000)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000)) >> 8
)))) - 1) & ((((((0xf000)) >> 8))))) ^ ((((((0xf000
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xf000)))) - 1) & ((((0xf000))))) ^ ((((0xf000))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf000))) >>
4)) - 1) & (((((0xf000))) >> 4))) ^ (((((0xf000)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xf000))) >> 4) >> 2)) - 1) & ((((((0xf000)
)) >> 4) >> 2))) ^ ((((((0xf000))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000
))) >> 4))) - 1) & ((((((0xf000))) >> 4)))) ^
((((((0xf000))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xf000))))) - 1) & (((((0xf000)))
))) ^ (((((0xf000))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xf000)))) >> 2)) - 1) & ((((((0xf000)))
) >> 2))) ^ ((((((0xf000)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000)))))) - 1) &
((((((0xf000))))))) ^ ((((((0xf000)))))))) >> (1)) != 0
) ? 1 : 0))))))
| /* 12 us */
1042 LSHIFT(13, ATW_TOFS2_PWR0PE2_MASK)((13) << ((((u_long)((((((0xf00)) - 1) & ((0xf00)))
^ ((0xf00)))) >> (16)) != 0) ? 16 + ((((u_long)(((((((
0xf00) >> 16)) - 1) & (((0xf00) >> 16))) ^ ((
(0xf00) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long)
((((((((0xf00) >> 16) >> 8)) - 1) & ((((0xf00
) >> 16) >> 8))) ^ ((((0xf00) >> 16) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf00) >>
16) >> 8) >> 4)) - 1) & (((((0xf00) >>
16) >> 8) >> 4))) ^ (((((0xf00) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xf00) >> 16) >> 8) >> 4) >> 2))
- 1) & ((((((0xf00) >> 16) >> 8) >> 4)
>> 2))) ^ ((((((0xf00) >> 16) >> 8) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xf00) >> 16) >> 8) >> 4))) - 1) &
((((((0xf00) >> 16) >> 8) >> 4)))) ^ (((((
(0xf00) >> 16) >> 8) >> 4))))) >> (1)
) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf00) >> 16) >>
8))) - 1) & (((((0xf00) >> 16) >> 8)))) ^ ((
(((0xf00) >> 16) >> 8))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0xf00) >> 16) >> 8)) >>
2)) - 1) & ((((((0xf00) >> 16) >> 8)) >>
2))) ^ ((((((0xf00) >> 16) >> 8)) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf00) >>
16) >> 8)))) - 1) & ((((((0xf00) >> 16) >>
8))))) ^ ((((((0xf00) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf00) >> 16
))) - 1) & ((((0xf00) >> 16)))) ^ ((((0xf00) >>
16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf00)
>> 16)) >> 4)) - 1) & (((((0xf00) >> 16
)) >> 4))) ^ (((((0xf00) >> 16)) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf00) >> 16)) >>
4) >> 2)) - 1) & ((((((0xf00) >> 16)) >>
4) >> 2))) ^ ((((((0xf00) >> 16)) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf00
) >> 16)) >> 4))) - 1) & ((((((0xf00) >>
16)) >> 4)))) ^ ((((((0xf00) >> 16)) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf00
) >> 16)))) - 1) & (((((0xf00) >> 16))))) ^ (
((((0xf00) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xf00) >> 16))) >> 2)) - 1) & ((((
((0xf00) >> 16))) >> 2))) ^ ((((((0xf00) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xf00) >> 16))))) - 1) & ((((((0xf00) >>
16)))))) ^ ((((((0xf00) >> 16))))))) >> (1)) != 0
) ? 1 : 0)))) : ((((u_long)(((((((0xf00))) - 1) & (((0xf00
)))) ^ (((0xf00))))) >> (8)) != 0) ? 8 + ((((u_long)(((
(((((0xf00)) >> 8)) - 1) & ((((0xf00)) >> 8))
) ^ ((((0xf00)) >> 8)))) >> (4)) != 0) ? 4 + ((((
u_long)(((((((((0xf00)) >> 8) >> 4)) - 1) & (
((((0xf00)) >> 8) >> 4))) ^ (((((0xf00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xf00)) >> 8) >> 4) >> 2)) - 1) & (
(((((0xf00)) >> 8) >> 4) >> 2))) ^ ((((((0xf00
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xf00)) >> 8) >>
4))) - 1) & ((((((0xf00)) >> 8) >> 4)))) ^ (
(((((0xf00)) >> 8) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xf00)) >> 8))) - 1) &
(((((0xf00)) >> 8)))) ^ (((((0xf00)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf00)) >> 8)) >>
2)) - 1) & ((((((0xf00)) >> 8)) >> 2))) ^ ((
((((0xf00)) >> 8)) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xf00)) >> 8)))) - 1) &
((((((0xf00)) >> 8))))) ^ ((((((0xf00)) >> 8))))
)) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf00)
))) - 1) & ((((0xf00))))) ^ ((((0xf00)))))) >> (4))
!= 0) ? 4 + ((((u_long)(((((((((0xf00))) >> 4)) - 1) &
(((((0xf00))) >> 4))) ^ (((((0xf00))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf00))) >> 4) >>
2)) - 1) & ((((((0xf00))) >> 4) >> 2))) ^ ((
((((0xf00))) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xf00))) >> 4))) - 1) &
((((((0xf00))) >> 4)))) ^ ((((((0xf00))) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf00)
)))) - 1) & (((((0xf00)))))) ^ (((((0xf00))))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf00)))) >> 2))
- 1) & ((((((0xf00)))) >> 2))) ^ ((((((0xf00)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf00
)))))) - 1) & ((((((0xf00))))))) ^ ((((((0xf00)))))))) >>
(1)) != 0) ? 1 : 0))))))
| /* 13 us */
1043 LSHIFT(4, ATW_TOFS2_PWR1PE2_MASK)((4) << ((((u_long)((((((0xf0)) - 1) & ((0xf0))) ^ (
(0xf0)))) >> (16)) != 0) ? 16 + ((((u_long)(((((((0xf0)
>> 16)) - 1) & (((0xf0) >> 16))) ^ (((0xf0) >>
16)))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xf0) >>
16) >> 8)) - 1) & ((((0xf0) >> 16) >> 8
))) ^ ((((0xf0) >> 16) >> 8)))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xf0) >> 16) >> 8) >>
4)) - 1) & (((((0xf0) >> 16) >> 8) >> 4
))) ^ (((((0xf0) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf0) >> 16) >>
8) >> 4) >> 2)) - 1) & ((((((0xf0) >> 16
) >> 8) >> 4) >> 2))) ^ ((((((0xf0) >>
16) >> 8) >> 4) >> 2)))) >> (1)) != 0
) ? 1 : 0) : ((((u_long)((((((((((0xf0) >> 16) >>
8) >> 4))) - 1) & ((((((0xf0) >> 16) >>
8) >> 4)))) ^ ((((((0xf0) >> 16) >> 8) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf0
) >> 16) >> 8))) - 1) & (((((0xf0) >> 16
) >> 8)))) ^ (((((0xf0) >> 16) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf0) >> 16) >>
8)) >> 2)) - 1) & ((((((0xf0) >> 16) >>
8)) >> 2))) ^ ((((((0xf0) >> 16) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0
) >> 16) >> 8)))) - 1) & ((((((0xf0) >>
16) >> 8))))) ^ ((((((0xf0) >> 16) >> 8)))
))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf0)
>> 16))) - 1) & ((((0xf0) >> 16)))) ^ ((((0xf0
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xf0) >> 16)) >> 4)) - 1) & (((((0xf0) >>
16)) >> 4))) ^ (((((0xf0) >> 16)) >> 4))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf0) >>
16)) >> 4) >> 2)) - 1) & ((((((0xf0) >>
16)) >> 4) >> 2))) ^ ((((((0xf0) >> 16)) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xf0) >> 16)) >> 4))) - 1) & ((((((
0xf0) >> 16)) >> 4)))) ^ ((((((0xf0) >> 16)
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0xf0) >> 16)))) - 1) & (((((0xf0) >>
16))))) ^ (((((0xf0) >> 16)))))) >> (2)) != 0) ?
2 + ((((u_long)((((((((((0xf0) >> 16))) >> 2)) -
1) & ((((((0xf0) >> 16))) >> 2))) ^ ((((((0xf0
) >> 16))) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xf0) >> 16))))) - 1) & (((((
(0xf0) >> 16)))))) ^ ((((((0xf0) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xf0))) - 1) &
(((0xf0)))) ^ (((0xf0))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xf0)) >> 8)) - 1) & ((((0xf0)) >> 8
))) ^ ((((0xf0)) >> 8)))) >> (4)) != 0) ? 4 + (((
(u_long)(((((((((0xf0)) >> 8) >> 4)) - 1) & (
((((0xf0)) >> 8) >> 4))) ^ (((((0xf0)) >> 8
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xf0)) >> 8) >> 4) >> 2)) - 1) & (((
(((0xf0)) >> 8) >> 4) >> 2))) ^ ((((((0xf0)
) >> 8) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xf0)) >> 8) >> 4)
)) - 1) & ((((((0xf0)) >> 8) >> 4)))) ^ (((((
(0xf0)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0xf0)) >> 8))) - 1) & ((
(((0xf0)) >> 8)))) ^ (((((0xf0)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf0)) >> 8)) >>
2)) - 1) & ((((((0xf0)) >> 8)) >> 2))) ^ (((
(((0xf0)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xf0)) >> 8)))) - 1) &
((((((0xf0)) >> 8))))) ^ ((((((0xf0)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf0))))
- 1) & ((((0xf0))))) ^ ((((0xf0)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xf0))) >> 4)) - 1) & (
((((0xf0))) >> 4))) ^ (((((0xf0))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf0))) >> 4) >>
2)) - 1) & ((((((0xf0))) >> 4) >> 2))) ^ (((
(((0xf0))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xf0))) >> 4))) - 1) &
((((((0xf0))) >> 4)))) ^ ((((((0xf0))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf0))))
) - 1) & (((((0xf0)))))) ^ (((((0xf0))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0xf0)))) >> 2)) - 1) &
((((((0xf0)))) >> 2))) ^ ((((((0xf0)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0))))
)) - 1) & ((((((0xf0))))))) ^ ((((((0xf0)))))))) >>
(1)) != 0) ? 1 : 0))))))
| /* 4 us */
1044 LSHIFT(5, ATW_TOFS2_PWR0TXPE_MASK)((5) << ((((u_long)((((((0xf)) - 1) & ((0xf))) ^ ((
0xf)))) >> (16)) != 0) ? 16 + ((((u_long)(((((((0xf) >>
16)) - 1) & (((0xf) >> 16))) ^ (((0xf) >> 16
)))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xf) >>
16) >> 8)) - 1) & ((((0xf) >> 16) >> 8
))) ^ ((((0xf) >> 16) >> 8)))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xf) >> 16) >> 8) >>
4)) - 1) & (((((0xf) >> 16) >> 8) >> 4
))) ^ (((((0xf) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf) >> 16) >>
8) >> 4) >> 2)) - 1) & ((((((0xf) >> 16
) >> 8) >> 4) >> 2))) ^ ((((((0xf) >>
16) >> 8) >> 4) >> 2)))) >> (1)) != 0
) ? 1 : 0) : ((((u_long)((((((((((0xf) >> 16) >> 8
) >> 4))) - 1) & ((((((0xf) >> 16) >> 8
) >> 4)))) ^ ((((((0xf) >> 16) >> 8) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf
) >> 16) >> 8))) - 1) & (((((0xf) >> 16
) >> 8)))) ^ (((((0xf) >> 16) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf) >> 16) >>
8)) >> 2)) - 1) & ((((((0xf) >> 16) >>
8)) >> 2))) ^ ((((((0xf) >> 16) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf
) >> 16) >> 8)))) - 1) & ((((((0xf) >> 16
) >> 8))))) ^ ((((((0xf) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf) >> 16)
)) - 1) & ((((0xf) >> 16)))) ^ ((((0xf) >> 16
))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf) >>
16)) >> 4)) - 1) & (((((0xf) >> 16)) >>
4))) ^ (((((0xf) >> 16)) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xf) >> 16)) >> 4)
>> 2)) - 1) & ((((((0xf) >> 16)) >> 4)
>> 2))) ^ ((((((0xf) >> 16)) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf
) >> 16)) >> 4))) - 1) & ((((((0xf) >> 16
)) >> 4)))) ^ ((((((0xf) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf) >> 16)
))) - 1) & (((((0xf) >> 16))))) ^ (((((0xf) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf)
>> 16))) >> 2)) - 1) & ((((((0xf) >> 16
))) >> 2))) ^ ((((((0xf) >> 16))) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf) >> 16)
)))) - 1) & ((((((0xf) >> 16)))))) ^ ((((((0xf) >>
16))))))) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((
((0xf))) - 1) & (((0xf)))) ^ (((0xf))))) >> (8)) !=
0) ? 8 + ((((u_long)((((((((0xf)) >> 8)) - 1) & ((
((0xf)) >> 8))) ^ ((((0xf)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xf)) >> 8) >> 4
)) - 1) & (((((0xf)) >> 8) >> 4))) ^ (((((0xf
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xf)) >> 8) >> 4) >> 2)) - 1) &
((((((0xf)) >> 8) >> 4) >> 2))) ^ ((((((0xf
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xf)) >> 8) >> 4
))) - 1) & ((((((0xf)) >> 8) >> 4)))) ^ (((((
(0xf)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0
)) : ((((u_long)(((((((((0xf)) >> 8))) - 1) & (((((
0xf)) >> 8)))) ^ (((((0xf)) >> 8))))) >> (2
)) != 0) ? 2 + ((((u_long)((((((((((0xf)) >> 8)) >>
2)) - 1) & ((((((0xf)) >> 8)) >> 2))) ^ ((((
((0xf)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 :
0) : ((((u_long)((((((((((0xf)) >> 8)))) - 1) & ((
((((0xf)) >> 8))))) ^ ((((((0xf)) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf)))) - 1) &
((((0xf))))) ^ ((((0xf)))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xf))) >> 4)) - 1) & (((((0xf))) >>
4))) ^ (((((0xf))) >> 4)))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xf))) >> 4) >> 2)) - 1) &
((((((0xf))) >> 4) >> 2))) ^ ((((((0xf))) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xf))) >> 4))) - 1) & ((((((0xf))) >>
4)))) ^ ((((((0xf))) >> 4))))) >> (1)) != 0) ? 1
: 0)) : ((((u_long)(((((((((0xf))))) - 1) & (((((0xf))))
)) ^ (((((0xf))))))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xf)))) >> 2)) - 1) & ((((((0xf)))) >>
2))) ^ ((((((0xf)))) >> 2)))) >> (1)) != 0) ? 1 :
0) : ((((u_long)((((((((((0xf)))))) - 1) & ((((((0xf))))
))) ^ ((((((0xf)))))))) >> (1)) != 0) ? 1 : 0))))))
; /* 5 us */
1045#else
1046 /* XXX new magic from reference driver source */
1047 tofs2 = LSHIFT(8, ATW_TOFS2_PWR1UP_MASK)((8) << ((((u_long)((((((0xf0000000)) - 1) & ((0xf0000000
))) ^ ((0xf0000000)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0xf0000000) >> 16)) - 1) & (((0xf0000000) >>
16))) ^ (((0xf0000000) >> 16)))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0xf0000000) >> 16) >> 8))
- 1) & ((((0xf0000000) >> 16) >> 8))) ^ ((((
0xf0000000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0xf0000000) >> 16) >> 8)
>> 4)) - 1) & (((((0xf0000000) >> 16) >>
8) >> 4))) ^ (((((0xf0000000) >> 16) >> 8)
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xf0000000) >> 16) >> 8) >> 4) >> 2
)) - 1) & ((((((0xf0000000) >> 16) >> 8) >>
4) >> 2))) ^ ((((((0xf0000000) >> 16) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xf0000000) >> 16) >> 8) >>
4))) - 1) & ((((((0xf0000000) >> 16) >> 8) >>
4)))) ^ ((((((0xf0000000) >> 16) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf0000000
) >> 16) >> 8))) - 1) & (((((0xf0000000) >>
16) >> 8)))) ^ (((((0xf0000000) >> 16) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf0000000
) >> 16) >> 8)) >> 2)) - 1) & ((((((0xf0000000
) >> 16) >> 8)) >> 2))) ^ ((((((0xf0000000)
>> 16) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xf0000000) >> 16) >>
8)))) - 1) & ((((((0xf0000000) >> 16) >> 8))
))) ^ ((((((0xf0000000) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf0000000) >>
16))) - 1) & ((((0xf0000000) >> 16)))) ^ ((((0xf0000000
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xf0000000) >> 16)) >> 4)) - 1) & (((((0xf0000000
) >> 16)) >> 4))) ^ (((((0xf0000000) >> 16)
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xf0000000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xf0000000) >> 16)) >> 4) >> 2))) ^ (
(((((0xf0000000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0000000) >>
16)) >> 4))) - 1) & ((((((0xf0000000) >> 16)
) >> 4)))) ^ ((((((0xf0000000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf0000000
) >> 16)))) - 1) & (((((0xf0000000) >> 16))))
) ^ (((((0xf0000000) >> 16)))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0xf0000000) >> 16))) >> 2
)) - 1) & ((((((0xf0000000) >> 16))) >> 2))) ^
((((((0xf0000000) >> 16))) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0000000) >> 16
))))) - 1) & ((((((0xf0000000) >> 16)))))) ^ ((((((
0xf0000000) >> 16))))))) >> (1)) != 0) ? 1 : 0)))
) : ((((u_long)(((((((0xf0000000))) - 1) & (((0xf0000000)
))) ^ (((0xf0000000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xf0000000)) >> 8)) - 1) & ((((0xf0000000)
) >> 8))) ^ ((((0xf0000000)) >> 8)))) >> (4
)) != 0) ? 4 + ((((u_long)(((((((((0xf0000000)) >> 8) >>
4)) - 1) & (((((0xf0000000)) >> 8) >> 4))) ^
(((((0xf0000000)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xf0000000)) >> 8) >>
4) >> 2)) - 1) & ((((((0xf0000000)) >> 8) >>
4) >> 2))) ^ ((((((0xf0000000)) >> 8) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0xf0000000)) >> 8) >> 4))) - 1) & (((
(((0xf0000000)) >> 8) >> 4)))) ^ ((((((0xf0000000
)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)) :
((((u_long)(((((((((0xf0000000)) >> 8))) - 1) & ((
(((0xf0000000)) >> 8)))) ^ (((((0xf0000000)) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf0000000
)) >> 8)) >> 2)) - 1) & ((((((0xf0000000)) >>
8)) >> 2))) ^ ((((((0xf0000000)) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0000000
)) >> 8)))) - 1) & ((((((0xf0000000)) >> 8)))
)) ^ ((((((0xf0000000)) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xf0000000)))) - 1) & ((((
0xf0000000))))) ^ ((((0xf0000000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xf0000000))) >> 4)) - 1) & (
((((0xf0000000))) >> 4))) ^ (((((0xf0000000))) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf0000000
))) >> 4) >> 2)) - 1) & ((((((0xf0000000))) >>
4) >> 2))) ^ ((((((0xf0000000))) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0000000
))) >> 4))) - 1) & ((((((0xf0000000))) >> 4))
)) ^ ((((((0xf0000000))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xf0000000))))) - 1) & (((
((0xf0000000)))))) ^ (((((0xf0000000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xf0000000)))) >> 2)) - 1)
& ((((((0xf0000000)))) >> 2))) ^ ((((((0xf0000000)
))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xf0000000)))))) - 1) & ((((((0xf0000000)))))))
^ ((((((0xf0000000)))))))) >> (1)) != 0) ? 1 : 0))))))
| /* 8 ms = 4 * 2 ms */
1048 LSHIFT(8, ATW_TOFS2_PWR0PAPE_MASK)((8) << ((((u_long)((((((0xf000000)) - 1) & ((0xf000000
))) ^ ((0xf000000)))) >> (16)) != 0) ? 16 + ((((u_long)
(((((((0xf000000) >> 16)) - 1) & (((0xf000000) >>
16))) ^ (((0xf000000) >> 16)))) >> (8)) != 0) ? 8
+ ((((u_long)((((((((0xf000000) >> 16) >> 8)) - 1
) & ((((0xf000000) >> 16) >> 8))) ^ ((((0xf000000
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xf000000) >> 16) >> 8) >> 4)) - 1
) & (((((0xf000000) >> 16) >> 8) >> 4))
) ^ (((((0xf000000) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf000000) >> 16
) >> 8) >> 4) >> 2)) - 1) & ((((((0xf000000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xf000000) >> 16) >> 8) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xf000000
) >> 16) >> 8) >> 4)))) ^ ((((((0xf000000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xf000000) >> 16) >> 8)))
- 1) & (((((0xf000000) >> 16) >> 8)))) ^ (((
((0xf000000) >> 16) >> 8))))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xf000000) >> 16) >> 8
)) >> 2)) - 1) & ((((((0xf000000) >> 16) >>
8)) >> 2))) ^ ((((((0xf000000) >> 16) >> 8
)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(
(((((((((0xf000000) >> 16) >> 8)))) - 1) & ((
((((0xf000000) >> 16) >> 8))))) ^ ((((((0xf000000
) >> 16) >> 8)))))) >> (1)) != 0) ? 1 : 0))
) : ((((u_long)((((((((0xf000000) >> 16))) - 1) & (
(((0xf000000) >> 16)))) ^ ((((0xf000000) >> 16)))
)) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf000000) >>
16)) >> 4)) - 1) & (((((0xf000000) >> 16)) >>
4))) ^ (((((0xf000000) >> 16)) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf000000) >> 16
)) >> 4) >> 2)) - 1) & ((((((0xf000000) >>
16)) >> 4) >> 2))) ^ ((((((0xf000000) >> 16
)) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xf000000) >> 16)) >> 4))) - 1
) & ((((((0xf000000) >> 16)) >> 4)))) ^ (((((
(0xf000000) >> 16)) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xf000000) >> 16)))) -
1) & (((((0xf000000) >> 16))))) ^ (((((0xf000000) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf000000
) >> 16))) >> 2)) - 1) & ((((((0xf000000) >>
16))) >> 2))) ^ ((((((0xf000000) >> 16))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000000
) >> 16))))) - 1) & ((((((0xf000000) >> 16)))
))) ^ ((((((0xf000000) >> 16))))))) >> (1)) != 0)
? 1 : 0)))) : ((((u_long)(((((((0xf000000))) - 1) & (((0xf000000
)))) ^ (((0xf000000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xf000000)) >> 8)) - 1) & ((((0xf000000)) >>
8))) ^ ((((0xf000000)) >> 8)))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xf000000)) >> 8) >> 4)) -
1) & (((((0xf000000)) >> 8) >> 4))) ^ (((((0xf000000
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xf000000)) >> 8) >> 4) >> 2)) -
1) & ((((((0xf000000)) >> 8) >> 4) >> 2
))) ^ ((((((0xf000000)) >> 8) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000000
)) >> 8) >> 4))) - 1) & ((((((0xf000000)) >>
8) >> 4)))) ^ ((((((0xf000000)) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf000000
)) >> 8))) - 1) & (((((0xf000000)) >> 8)))) ^
(((((0xf000000)) >> 8))))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xf000000)) >> 8)) >> 2)) - 1
) & ((((((0xf000000)) >> 8)) >> 2))) ^ ((((((
0xf000000)) >> 8)) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xf000000)) >> 8)))) - 1
) & ((((((0xf000000)) >> 8))))) ^ ((((((0xf000000))
>> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xf000000)))) - 1) & ((((0xf000000))))) ^ ((((0xf000000
)))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf000000
))) >> 4)) - 1) & (((((0xf000000))) >> 4))) ^
(((((0xf000000))) >> 4)))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xf000000))) >> 4) >> 2)) - 1
) & ((((((0xf000000))) >> 4) >> 2))) ^ ((((((
0xf000000))) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xf000000))) >> 4))) - 1
) & ((((((0xf000000))) >> 4)))) ^ ((((((0xf000000))
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0xf000000))))) - 1) & (((((0xf000000)))))) ^ (((
((0xf000000))))))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xf000000)))) >> 2)) - 1) & ((((((0xf000000)))
) >> 2))) ^ ((((((0xf000000)))) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000000)))))) -
1) & ((((((0xf000000))))))) ^ ((((((0xf000000)))))))) >>
(1)) != 0) ? 1 : 0))))))
| /* 13 us */
1049 LSHIFT(1, ATW_TOFS2_PWR1PAPE_MASK)((1) << ((((u_long)((((((0xf00000)) - 1) & ((0xf00000
))) ^ ((0xf00000)))) >> (16)) != 0) ? 16 + ((((u_long)(
((((((0xf00000) >> 16)) - 1) & (((0xf00000) >>
16))) ^ (((0xf00000) >> 16)))) >> (8)) != 0) ? 8
+ ((((u_long)((((((((0xf00000) >> 16) >> 8)) - 1
) & ((((0xf00000) >> 16) >> 8))) ^ ((((0xf00000
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xf00000) >> 16) >> 8) >> 4)) - 1
) & (((((0xf00000) >> 16) >> 8) >> 4)))
^ (((((0xf00000) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf00000) >> 16)
>> 8) >> 4) >> 2)) - 1) & ((((((0xf00000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xf00000) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf00000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xf00000
) >> 16) >> 8) >> 4)))) ^ ((((((0xf00000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xf00000) >> 16) >> 8))) -
1) & (((((0xf00000) >> 16) >> 8)))) ^ (((((0xf00000
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xf00000) >> 16) >> 8)) >>
2)) - 1) & ((((((0xf00000) >> 16) >> 8)) >>
2))) ^ ((((((0xf00000) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf00000
) >> 16) >> 8)))) - 1) & ((((((0xf00000) >>
16) >> 8))))) ^ ((((((0xf00000) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf00000
) >> 16))) - 1) & ((((0xf00000) >> 16)))) ^ (
(((0xf00000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xf00000) >> 16)) >> 4)) - 1) & (((
((0xf00000) >> 16)) >> 4))) ^ (((((0xf00000) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xf00000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xf00000) >> 16)) >> 4) >> 2))) ^ ((
((((0xf00000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf00000) >>
16)) >> 4))) - 1) & ((((((0xf00000) >> 16)) >>
4)))) ^ ((((((0xf00000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf00000) >>
16)))) - 1) & (((((0xf00000) >> 16))))) ^ (((((0xf00000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0xf00000) >> 16))) >> 2)) - 1) & ((((((
0xf00000) >> 16))) >> 2))) ^ ((((((0xf00000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xf00000) >> 16))))) - 1) & ((((((0xf00000
) >> 16)))))) ^ ((((((0xf00000) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xf00000))) - 1) &
(((0xf00000)))) ^ (((0xf00000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0xf00000)) >> 8)) - 1) & ((((0xf00000
)) >> 8))) ^ ((((0xf00000)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xf00000)) >> 8) >>
4)) - 1) & (((((0xf00000)) >> 8) >> 4))) ^ (
((((0xf00000)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xf00000)) >> 8) >> 4
) >> 2)) - 1) & ((((((0xf00000)) >> 8) >>
4) >> 2))) ^ ((((((0xf00000)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf00000
)) >> 8) >> 4))) - 1) & ((((((0xf00000)) >>
8) >> 4)))) ^ ((((((0xf00000)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf00000
)) >> 8))) - 1) & (((((0xf00000)) >> 8)))) ^ (
((((0xf00000)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xf00000)) >> 8)) >> 2)) - 1) &
((((((0xf00000)) >> 8)) >> 2))) ^ ((((((0xf00000
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xf00000)) >> 8)))) - 1) & ((
((((0xf00000)) >> 8))))) ^ ((((((0xf00000)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf00000
)))) - 1) & ((((0xf00000))))) ^ ((((0xf00000)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xf00000))) >> 4)
) - 1) & (((((0xf00000))) >> 4))) ^ (((((0xf00000))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xf00000))) >> 4) >> 2)) - 1) & ((((((0xf00000
))) >> 4) >> 2))) ^ ((((((0xf00000))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0xf00000))) >> 4))) - 1) & ((((((0xf00000)))
>> 4)))) ^ ((((((0xf00000))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf00000))))) - 1) &
(((((0xf00000)))))) ^ (((((0xf00000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xf00000)))) >> 2)) - 1) &
((((((0xf00000)))) >> 2))) ^ ((((((0xf00000)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf00000
)))))) - 1) & ((((((0xf00000))))))) ^ ((((((0xf00000)))))
))) >> (1)) != 0) ? 1 : 0))))))
| /* 8 us */
1050 LSHIFT(5, ATW_TOFS2_PWR0TRSW_MASK)((5) << ((((u_long)((((((0xf0000)) - 1) & ((0xf0000
))) ^ ((0xf0000)))) >> (16)) != 0) ? 16 + ((((u_long)((
(((((0xf0000) >> 16)) - 1) & (((0xf0000) >> 16
))) ^ (((0xf0000) >> 16)))) >> (8)) != 0) ? 8 + (
(((u_long)((((((((0xf0000) >> 16) >> 8)) - 1) &
((((0xf0000) >> 16) >> 8))) ^ ((((0xf0000) >>
16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)((((
(((((0xf0000) >> 16) >> 8) >> 4)) - 1) &
(((((0xf0000) >> 16) >> 8) >> 4))) ^ (((((
0xf0000) >> 16) >> 8) >> 4)))) >> (2)
) != 0) ? 2 + ((((u_long)((((((((((0xf0000) >> 16) >>
8) >> 4) >> 2)) - 1) & ((((((0xf0000) >>
16) >> 8) >> 4) >> 2))) ^ ((((((0xf0000) >>
16) >> 8) >> 4) >> 2)))) >> (1)) != 0
) ? 1 : 0) : ((((u_long)((((((((((0xf0000) >> 16) >>
8) >> 4))) - 1) & ((((((0xf0000) >> 16) >>
8) >> 4)))) ^ ((((((0xf0000) >> 16) >> 8) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf0000
) >> 16) >> 8))) - 1) & (((((0xf0000) >>
16) >> 8)))) ^ (((((0xf0000) >> 16) >> 8))
))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf0000) >>
16) >> 8)) >> 2)) - 1) & ((((((0xf0000) >>
16) >> 8)) >> 2))) ^ ((((((0xf0000) >> 16)
>> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xf0000) >> 16) >> 8)))) - 1)
& ((((((0xf0000) >> 16) >> 8))))) ^ ((((((0xf0000
) >> 16) >> 8)))))) >> (1)) != 0) ? 1 : 0))
) : ((((u_long)((((((((0xf0000) >> 16))) - 1) & (((
(0xf0000) >> 16)))) ^ ((((0xf0000) >> 16))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xf0000) >> 16)) >>
4)) - 1) & (((((0xf0000) >> 16)) >> 4))) ^ (
((((0xf0000) >> 16)) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xf0000) >> 16)) >> 4
) >> 2)) - 1) & ((((((0xf0000) >> 16)) >>
4) >> 2))) ^ ((((((0xf0000) >> 16)) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0000
) >> 16)) >> 4))) - 1) & ((((((0xf0000) >>
16)) >> 4)))) ^ ((((((0xf0000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf0000
) >> 16)))) - 1) & (((((0xf0000) >> 16))))) ^
(((((0xf0000) >> 16)))))) >> (2)) != 0) ? 2 + ((
((u_long)((((((((((0xf0000) >> 16))) >> 2)) - 1) &
((((((0xf0000) >> 16))) >> 2))) ^ ((((((0xf0000)
>> 16))) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xf0000) >> 16))))) - 1) & ((
((((0xf0000) >> 16)))))) ^ ((((((0xf0000) >> 16))
))))) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xf0000
))) - 1) & (((0xf0000)))) ^ (((0xf0000))))) >> (8))
!= 0) ? 8 + ((((u_long)((((((((0xf0000)) >> 8)) - 1) &
((((0xf0000)) >> 8))) ^ ((((0xf0000)) >> 8)))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xf0000)) >> 8) >>
4)) - 1) & (((((0xf0000)) >> 8) >> 4))) ^ ((
(((0xf0000)) >> 8) >> 4)))) >> (2)) != 0) ?
2 + ((((u_long)((((((((((0xf0000)) >> 8) >> 4) >>
2)) - 1) & ((((((0xf0000)) >> 8) >> 4) >>
2))) ^ ((((((0xf0000)) >> 8) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0000
)) >> 8) >> 4))) - 1) & ((((((0xf0000)) >>
8) >> 4)))) ^ ((((((0xf0000)) >> 8) >> 4))
))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf0000
)) >> 8))) - 1) & (((((0xf0000)) >> 8)))) ^ (
((((0xf0000)) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xf0000)) >> 8)) >> 2)) - 1) & (((
(((0xf0000)) >> 8)) >> 2))) ^ ((((((0xf0000)) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xf0000)) >> 8)))) - 1) & ((((((0xf0000)
) >> 8))))) ^ ((((((0xf0000)) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf0000)))) - 1) &
((((0xf0000))))) ^ ((((0xf0000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xf0000))) >> 4)) - 1) & (((
((0xf0000))) >> 4))) ^ (((((0xf0000))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf0000))) >> 4)
>> 2)) - 1) & ((((((0xf0000))) >> 4) >>
2))) ^ ((((((0xf0000))) >> 4) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0000))) >>
4))) - 1) & ((((((0xf0000))) >> 4)))) ^ ((((((0xf0000
))) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0xf0000))))) - 1) & (((((0xf0000)))))) ^ (((((0xf0000
))))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf0000
)))) >> 2)) - 1) & ((((((0xf0000)))) >> 2))) ^
((((((0xf0000)))) >> 2)))) >> (1)) != 0) ? 1 : 0
) : ((((u_long)((((((((((0xf0000)))))) - 1) & ((((((0xf0000
))))))) ^ ((((((0xf0000)))))))) >> (1)) != 0) ? 1 : 0))
))))
| /* 5 us */
1051 LSHIFT(12, ATW_TOFS2_PWR1TRSW_MASK)((12) << ((((u_long)((((((0xf000)) - 1) & ((0xf000)
)) ^ ((0xf000)))) >> (16)) != 0) ? 16 + ((((u_long)((((
(((0xf000) >> 16)) - 1) & (((0xf000) >> 16)))
^ (((0xf000) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xf000) >> 16) >> 8)) - 1) & ((((0xf000
) >> 16) >> 8))) ^ ((((0xf000) >> 16) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf000) >>
16) >> 8) >> 4)) - 1) & (((((0xf000) >>
16) >> 8) >> 4))) ^ (((((0xf000) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xf000) >> 16) >> 8) >> 4) >> 2)
) - 1) & ((((((0xf000) >> 16) >> 8) >> 4
) >> 2))) ^ ((((((0xf000) >> 16) >> 8) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xf000) >> 16) >> 8) >> 4))) - 1)
& ((((((0xf000) >> 16) >> 8) >> 4)))) ^
((((((0xf000) >> 16) >> 8) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf000) >> 16
) >> 8))) - 1) & (((((0xf000) >> 16) >>
8)))) ^ (((((0xf000) >> 16) >> 8))))) >> (
2)) != 0) ? 2 + ((((u_long)((((((((((0xf000) >> 16) >>
8)) >> 2)) - 1) & ((((((0xf000) >> 16) >>
8)) >> 2))) ^ ((((((0xf000) >> 16) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000
) >> 16) >> 8)))) - 1) & ((((((0xf000) >>
16) >> 8))))) ^ ((((((0xf000) >> 16) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf000
) >> 16))) - 1) & ((((0xf000) >> 16)))) ^ (((
(0xf000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xf000) >> 16)) >> 4)) - 1) & (((((
0xf000) >> 16)) >> 4))) ^ (((((0xf000) >> 16
)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((
((((0xf000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xf000) >> 16)) >> 4) >> 2))) ^ ((((
((0xf000) >> 16)) >> 4) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000) >> 16
)) >> 4))) - 1) & ((((((0xf000) >> 16)) >>
4)))) ^ ((((((0xf000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf000) >> 16
)))) - 1) & (((((0xf000) >> 16))))) ^ (((((0xf000) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf000
) >> 16))) >> 2)) - 1) & ((((((0xf000) >>
16))) >> 2))) ^ ((((((0xf000) >> 16))) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000
) >> 16))))) - 1) & ((((((0xf000) >> 16))))))
^ ((((((0xf000) >> 16))))))) >> (1)) != 0) ? 1 :
0)))) : ((((u_long)(((((((0xf000))) - 1) & (((0xf000))))
^ (((0xf000))))) >> (8)) != 0) ? 8 + ((((u_long)((((((
((0xf000)) >> 8)) - 1) & ((((0xf000)) >> 8)))
^ ((((0xf000)) >> 8)))) >> (4)) != 0) ? 4 + ((((
u_long)(((((((((0xf000)) >> 8) >> 4)) - 1) & (
((((0xf000)) >> 8) >> 4))) ^ (((((0xf000)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xf000)) >> 8) >> 4) >> 2)) - 1) &
((((((0xf000)) >> 8) >> 4) >> 2))) ^ (((((
(0xf000)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000)) >> 8) >>
4))) - 1) & ((((((0xf000)) >> 8) >> 4)))) ^ (
(((((0xf000)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xf000)) >> 8))) - 1) &
(((((0xf000)) >> 8)))) ^ (((((0xf000)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf000)) >>
8)) >> 2)) - 1) & ((((((0xf000)) >> 8)) >>
2))) ^ ((((((0xf000)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000)) >> 8
)))) - 1) & ((((((0xf000)) >> 8))))) ^ ((((((0xf000
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xf000)))) - 1) & ((((0xf000))))) ^ ((((0xf000))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf000))) >>
4)) - 1) & (((((0xf000))) >> 4))) ^ (((((0xf000)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xf000))) >> 4) >> 2)) - 1) & ((((((0xf000)
)) >> 4) >> 2))) ^ ((((((0xf000))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000
))) >> 4))) - 1) & ((((((0xf000))) >> 4)))) ^
((((((0xf000))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xf000))))) - 1) & (((((0xf000)))
))) ^ (((((0xf000))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xf000)))) >> 2)) - 1) & ((((((0xf000)))
) >> 2))) ^ ((((((0xf000)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf000)))))) - 1) &
((((((0xf000))))))) ^ ((((((0xf000)))))))) >> (1)) != 0
) ? 1 : 0))))))
| /* 12 us */
1052 LSHIFT(13, ATW_TOFS2_PWR0PE2_MASK)((13) << ((((u_long)((((((0xf00)) - 1) & ((0xf00)))
^ ((0xf00)))) >> (16)) != 0) ? 16 + ((((u_long)(((((((
0xf00) >> 16)) - 1) & (((0xf00) >> 16))) ^ ((
(0xf00) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long)
((((((((0xf00) >> 16) >> 8)) - 1) & ((((0xf00
) >> 16) >> 8))) ^ ((((0xf00) >> 16) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf00) >>
16) >> 8) >> 4)) - 1) & (((((0xf00) >>
16) >> 8) >> 4))) ^ (((((0xf00) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xf00) >> 16) >> 8) >> 4) >> 2))
- 1) & ((((((0xf00) >> 16) >> 8) >> 4)
>> 2))) ^ ((((((0xf00) >> 16) >> 8) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xf00) >> 16) >> 8) >> 4))) - 1) &
((((((0xf00) >> 16) >> 8) >> 4)))) ^ (((((
(0xf00) >> 16) >> 8) >> 4))))) >> (1)
) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf00) >> 16) >>
8))) - 1) & (((((0xf00) >> 16) >> 8)))) ^ ((
(((0xf00) >> 16) >> 8))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0xf00) >> 16) >> 8)) >>
2)) - 1) & ((((((0xf00) >> 16) >> 8)) >>
2))) ^ ((((((0xf00) >> 16) >> 8)) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf00) >>
16) >> 8)))) - 1) & ((((((0xf00) >> 16) >>
8))))) ^ ((((((0xf00) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf00) >> 16
))) - 1) & ((((0xf00) >> 16)))) ^ ((((0xf00) >>
16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf00)
>> 16)) >> 4)) - 1) & (((((0xf00) >> 16
)) >> 4))) ^ (((((0xf00) >> 16)) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf00) >> 16)) >>
4) >> 2)) - 1) & ((((((0xf00) >> 16)) >>
4) >> 2))) ^ ((((((0xf00) >> 16)) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf00
) >> 16)) >> 4))) - 1) & ((((((0xf00) >>
16)) >> 4)))) ^ ((((((0xf00) >> 16)) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf00
) >> 16)))) - 1) & (((((0xf00) >> 16))))) ^ (
((((0xf00) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xf00) >> 16))) >> 2)) - 1) & ((((
((0xf00) >> 16))) >> 2))) ^ ((((((0xf00) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xf00) >> 16))))) - 1) & ((((((0xf00) >>
16)))))) ^ ((((((0xf00) >> 16))))))) >> (1)) != 0
) ? 1 : 0)))) : ((((u_long)(((((((0xf00))) - 1) & (((0xf00
)))) ^ (((0xf00))))) >> (8)) != 0) ? 8 + ((((u_long)(((
(((((0xf00)) >> 8)) - 1) & ((((0xf00)) >> 8))
) ^ ((((0xf00)) >> 8)))) >> (4)) != 0) ? 4 + ((((
u_long)(((((((((0xf00)) >> 8) >> 4)) - 1) & (
((((0xf00)) >> 8) >> 4))) ^ (((((0xf00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xf00)) >> 8) >> 4) >> 2)) - 1) & (
(((((0xf00)) >> 8) >> 4) >> 2))) ^ ((((((0xf00
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xf00)) >> 8) >>
4))) - 1) & ((((((0xf00)) >> 8) >> 4)))) ^ (
(((((0xf00)) >> 8) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xf00)) >> 8))) - 1) &
(((((0xf00)) >> 8)))) ^ (((((0xf00)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf00)) >> 8)) >>
2)) - 1) & ((((((0xf00)) >> 8)) >> 2))) ^ ((
((((0xf00)) >> 8)) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xf00)) >> 8)))) - 1) &
((((((0xf00)) >> 8))))) ^ ((((((0xf00)) >> 8))))
)) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf00)
))) - 1) & ((((0xf00))))) ^ ((((0xf00)))))) >> (4))
!= 0) ? 4 + ((((u_long)(((((((((0xf00))) >> 4)) - 1) &
(((((0xf00))) >> 4))) ^ (((((0xf00))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf00))) >> 4) >>
2)) - 1) & ((((((0xf00))) >> 4) >> 2))) ^ ((
((((0xf00))) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xf00))) >> 4))) - 1) &
((((((0xf00))) >> 4)))) ^ ((((((0xf00))) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf00)
)))) - 1) & (((((0xf00)))))) ^ (((((0xf00))))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf00)))) >> 2))
- 1) & ((((((0xf00)))) >> 2))) ^ ((((((0xf00)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf00
)))))) - 1) & ((((((0xf00))))))) ^ ((((((0xf00)))))))) >>
(1)) != 0) ? 1 : 0))))))
| /* 13 us */
1053 LSHIFT(1, ATW_TOFS2_PWR1PE2_MASK)((1) << ((((u_long)((((((0xf0)) - 1) & ((0xf0))) ^ (
(0xf0)))) >> (16)) != 0) ? 16 + ((((u_long)(((((((0xf0)
>> 16)) - 1) & (((0xf0) >> 16))) ^ (((0xf0) >>
16)))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xf0) >>
16) >> 8)) - 1) & ((((0xf0) >> 16) >> 8
))) ^ ((((0xf0) >> 16) >> 8)))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xf0) >> 16) >> 8) >>
4)) - 1) & (((((0xf0) >> 16) >> 8) >> 4
))) ^ (((((0xf0) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf0) >> 16) >>
8) >> 4) >> 2)) - 1) & ((((((0xf0) >> 16
) >> 8) >> 4) >> 2))) ^ ((((((0xf0) >>
16) >> 8) >> 4) >> 2)))) >> (1)) != 0
) ? 1 : 0) : ((((u_long)((((((((((0xf0) >> 16) >>
8) >> 4))) - 1) & ((((((0xf0) >> 16) >>
8) >> 4)))) ^ ((((((0xf0) >> 16) >> 8) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf0
) >> 16) >> 8))) - 1) & (((((0xf0) >> 16
) >> 8)))) ^ (((((0xf0) >> 16) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf0) >> 16) >>
8)) >> 2)) - 1) & ((((((0xf0) >> 16) >>
8)) >> 2))) ^ ((((((0xf0) >> 16) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0
) >> 16) >> 8)))) - 1) & ((((((0xf0) >>
16) >> 8))))) ^ ((((((0xf0) >> 16) >> 8)))
))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf0)
>> 16))) - 1) & ((((0xf0) >> 16)))) ^ ((((0xf0
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xf0) >> 16)) >> 4)) - 1) & (((((0xf0) >>
16)) >> 4))) ^ (((((0xf0) >> 16)) >> 4))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf0) >>
16)) >> 4) >> 2)) - 1) & ((((((0xf0) >>
16)) >> 4) >> 2))) ^ ((((((0xf0) >> 16)) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xf0) >> 16)) >> 4))) - 1) & ((((((
0xf0) >> 16)) >> 4)))) ^ ((((((0xf0) >> 16)
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0xf0) >> 16)))) - 1) & (((((0xf0) >>
16))))) ^ (((((0xf0) >> 16)))))) >> (2)) != 0) ?
2 + ((((u_long)((((((((((0xf0) >> 16))) >> 2)) -
1) & ((((((0xf0) >> 16))) >> 2))) ^ ((((((0xf0
) >> 16))) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xf0) >> 16))))) - 1) & (((((
(0xf0) >> 16)))))) ^ ((((((0xf0) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xf0))) - 1) &
(((0xf0)))) ^ (((0xf0))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xf0)) >> 8)) - 1) & ((((0xf0)) >> 8
))) ^ ((((0xf0)) >> 8)))) >> (4)) != 0) ? 4 + (((
(u_long)(((((((((0xf0)) >> 8) >> 4)) - 1) & (
((((0xf0)) >> 8) >> 4))) ^ (((((0xf0)) >> 8
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xf0)) >> 8) >> 4) >> 2)) - 1) & (((
(((0xf0)) >> 8) >> 4) >> 2))) ^ ((((((0xf0)
) >> 8) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xf0)) >> 8) >> 4)
)) - 1) & ((((((0xf0)) >> 8) >> 4)))) ^ (((((
(0xf0)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0xf0)) >> 8))) - 1) & ((
(((0xf0)) >> 8)))) ^ (((((0xf0)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf0)) >> 8)) >>
2)) - 1) & ((((((0xf0)) >> 8)) >> 2))) ^ (((
(((0xf0)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xf0)) >> 8)))) - 1) &
((((((0xf0)) >> 8))))) ^ ((((((0xf0)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf0))))
- 1) & ((((0xf0))))) ^ ((((0xf0)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xf0))) >> 4)) - 1) & (
((((0xf0))) >> 4))) ^ (((((0xf0))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf0))) >> 4) >>
2)) - 1) & ((((((0xf0))) >> 4) >> 2))) ^ (((
(((0xf0))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xf0))) >> 4))) - 1) &
((((((0xf0))) >> 4)))) ^ ((((((0xf0))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf0))))
) - 1) & (((((0xf0)))))) ^ (((((0xf0))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0xf0)))) >> 2)) - 1) &
((((((0xf0)))) >> 2))) ^ ((((((0xf0)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf0))))
)) - 1) & ((((((0xf0))))))) ^ ((((((0xf0)))))))) >>
(1)) != 0) ? 1 : 0))))))
| /* 4 us */
1054 LSHIFT(8, ATW_TOFS2_PWR0TXPE_MASK)((8) << ((((u_long)((((((0xf)) - 1) & ((0xf))) ^ ((
0xf)))) >> (16)) != 0) ? 16 + ((((u_long)(((((((0xf) >>
16)) - 1) & (((0xf) >> 16))) ^ (((0xf) >> 16
)))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xf) >>
16) >> 8)) - 1) & ((((0xf) >> 16) >> 8
))) ^ ((((0xf) >> 16) >> 8)))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xf) >> 16) >> 8) >>
4)) - 1) & (((((0xf) >> 16) >> 8) >> 4
))) ^ (((((0xf) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf) >> 16) >>
8) >> 4) >> 2)) - 1) & ((((((0xf) >> 16
) >> 8) >> 4) >> 2))) ^ ((((((0xf) >>
16) >> 8) >> 4) >> 2)))) >> (1)) != 0
) ? 1 : 0) : ((((u_long)((((((((((0xf) >> 16) >> 8
) >> 4))) - 1) & ((((((0xf) >> 16) >> 8
) >> 4)))) ^ ((((((0xf) >> 16) >> 8) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf
) >> 16) >> 8))) - 1) & (((((0xf) >> 16
) >> 8)))) ^ (((((0xf) >> 16) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf) >> 16) >>
8)) >> 2)) - 1) & ((((((0xf) >> 16) >>
8)) >> 2))) ^ ((((((0xf) >> 16) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf
) >> 16) >> 8)))) - 1) & ((((((0xf) >> 16
) >> 8))))) ^ ((((((0xf) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf) >> 16)
)) - 1) & ((((0xf) >> 16)))) ^ ((((0xf) >> 16
))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf) >>
16)) >> 4)) - 1) & (((((0xf) >> 16)) >>
4))) ^ (((((0xf) >> 16)) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xf) >> 16)) >> 4)
>> 2)) - 1) & ((((((0xf) >> 16)) >> 4)
>> 2))) ^ ((((((0xf) >> 16)) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf
) >> 16)) >> 4))) - 1) & ((((((0xf) >> 16
)) >> 4)))) ^ ((((((0xf) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf) >> 16)
))) - 1) & (((((0xf) >> 16))))) ^ (((((0xf) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf)
>> 16))) >> 2)) - 1) & ((((((0xf) >> 16
))) >> 2))) ^ ((((((0xf) >> 16))) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf) >> 16)
)))) - 1) & ((((((0xf) >> 16)))))) ^ ((((((0xf) >>
16))))))) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((
((0xf))) - 1) & (((0xf)))) ^ (((0xf))))) >> (8)) !=
0) ? 8 + ((((u_long)((((((((0xf)) >> 8)) - 1) & ((
((0xf)) >> 8))) ^ ((((0xf)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xf)) >> 8) >> 4
)) - 1) & (((((0xf)) >> 8) >> 4))) ^ (((((0xf
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xf)) >> 8) >> 4) >> 2)) - 1) &
((((((0xf)) >> 8) >> 4) >> 2))) ^ ((((((0xf
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xf)) >> 8) >> 4
))) - 1) & ((((((0xf)) >> 8) >> 4)))) ^ (((((
(0xf)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0
)) : ((((u_long)(((((((((0xf)) >> 8))) - 1) & (((((
0xf)) >> 8)))) ^ (((((0xf)) >> 8))))) >> (2
)) != 0) ? 2 + ((((u_long)((((((((((0xf)) >> 8)) >>
2)) - 1) & ((((((0xf)) >> 8)) >> 2))) ^ ((((
((0xf)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 :
0) : ((((u_long)((((((((((0xf)) >> 8)))) - 1) & ((
((((0xf)) >> 8))))) ^ ((((((0xf)) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf)))) - 1) &
((((0xf))))) ^ ((((0xf)))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xf))) >> 4)) - 1) & (((((0xf))) >>
4))) ^ (((((0xf))) >> 4)))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xf))) >> 4) >> 2)) - 1) &
((((((0xf))) >> 4) >> 2))) ^ ((((((0xf))) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xf))) >> 4))) - 1) & ((((((0xf))) >>
4)))) ^ ((((((0xf))) >> 4))))) >> (1)) != 0) ? 1
: 0)) : ((((u_long)(((((((((0xf))))) - 1) & (((((0xf))))
)) ^ (((((0xf))))))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xf)))) >> 2)) - 1) & ((((((0xf)))) >>
2))) ^ ((((((0xf)))) >> 2)))) >> (1)) != 0) ? 1 :
0) : ((((u_long)((((((((((0xf)))))) - 1) & ((((((0xf))))
))) ^ ((((((0xf)))))))) >> (1)) != 0) ? 1 : 0))))))
; /* 5 us */
1055#endif
1056 ATW_WRITE(sc, ATW_TOFS2, tofs2)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x84)), ((tofs2
))))
;
1057}
1058
1059void
1060atw_nar_init(struct atw_softc *sc)
1061{
1062 ATW_WRITE(sc, ATW_NAR, ATW_NAR_SF|ATW_NAR_PB)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x30)), (((
1<<21)|(1<<3)))))
;
1063}
1064
1065void
1066atw_txlmt_init(struct atw_softc *sc)
1067{
1068 ATW_WRITE(sc, ATW_TXLMT, LSHIFT(512, ATW_TXLMT_MTMLT_MASK) |(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xB0)), (((
(512) << ((((u_long)((((((0xffff0000)) - 1) & ((0xffff0000
))) ^ ((0xffff0000)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0xffff0000) >> 16)) - 1) & (((0xffff0000) >>
16))) ^ (((0xffff0000) >> 16)))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0xffff0000) >> 16) >> 8))
- 1) & ((((0xffff0000) >> 16) >> 8))) ^ ((((
0xffff0000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0xffff0000) >> 16) >> 8)
>> 4)) - 1) & (((((0xffff0000) >> 16) >>
8) >> 4))) ^ (((((0xffff0000) >> 16) >> 8)
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xffff0000) >> 16) >> 8) >> 4) >> 2
)) - 1) & ((((((0xffff0000) >> 16) >> 8) >>
4) >> 2))) ^ ((((((0xffff0000) >> 16) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xffff0000) >> 16) >> 8) >>
4))) - 1) & ((((((0xffff0000) >> 16) >> 8) >>
4)))) ^ ((((((0xffff0000) >> 16) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xffff0000
) >> 16) >> 8))) - 1) & (((((0xffff0000) >>
16) >> 8)))) ^ (((((0xffff0000) >> 16) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xffff0000
) >> 16) >> 8)) >> 2)) - 1) & ((((((0xffff0000
) >> 16) >> 8)) >> 2))) ^ ((((((0xffff0000)
>> 16) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xffff0000) >> 16) >>
8)))) - 1) & ((((((0xffff0000) >> 16) >> 8))
))) ^ ((((((0xffff0000) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xffff0000) >>
16))) - 1) & ((((0xffff0000) >> 16)))) ^ ((((0xffff0000
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xffff0000) >> 16)) >> 4)) - 1) & (((((0xffff0000
) >> 16)) >> 4))) ^ (((((0xffff0000) >> 16)
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xffff0000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xffff0000) >> 16)) >> 4) >> 2))) ^ (
(((((0xffff0000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff0000) >>
16)) >> 4))) - 1) & ((((((0xffff0000) >> 16)
) >> 4)))) ^ ((((((0xffff0000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xffff0000
) >> 16)))) - 1) & (((((0xffff0000) >> 16))))
) ^ (((((0xffff0000) >> 16)))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0xffff0000) >> 16))) >> 2
)) - 1) & ((((((0xffff0000) >> 16))) >> 2))) ^
((((((0xffff0000) >> 16))) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff0000) >> 16
))))) - 1) & ((((((0xffff0000) >> 16)))))) ^ ((((((
0xffff0000) >> 16))))))) >> (1)) != 0) ? 1 : 0)))
) : ((((u_long)(((((((0xffff0000))) - 1) & (((0xffff0000)
))) ^ (((0xffff0000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xffff0000)) >> 8)) - 1) & ((((0xffff0000)
) >> 8))) ^ ((((0xffff0000)) >> 8)))) >> (4
)) != 0) ? 4 + ((((u_long)(((((((((0xffff0000)) >> 8) >>
4)) - 1) & (((((0xffff0000)) >> 8) >> 4))) ^
(((((0xffff0000)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xffff0000)) >> 8) >>
4) >> 2)) - 1) & ((((((0xffff0000)) >> 8) >>
4) >> 2))) ^ ((((((0xffff0000)) >> 8) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0xffff0000)) >> 8) >> 4))) - 1) & (((
(((0xffff0000)) >> 8) >> 4)))) ^ ((((((0xffff0000
)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)) :
((((u_long)(((((((((0xffff0000)) >> 8))) - 1) & ((
(((0xffff0000)) >> 8)))) ^ (((((0xffff0000)) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xffff0000
)) >> 8)) >> 2)) - 1) & ((((((0xffff0000)) >>
8)) >> 2))) ^ ((((((0xffff0000)) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff0000
)) >> 8)))) - 1) & ((((((0xffff0000)) >> 8)))
)) ^ ((((((0xffff0000)) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xffff0000)))) - 1) & ((((
0xffff0000))))) ^ ((((0xffff0000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xffff0000))) >> 4)) - 1) & (
((((0xffff0000))) >> 4))) ^ (((((0xffff0000))) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xffff0000
))) >> 4) >> 2)) - 1) & ((((((0xffff0000))) >>
4) >> 2))) ^ ((((((0xffff0000))) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff0000
))) >> 4))) - 1) & ((((((0xffff0000))) >> 4))
)) ^ ((((((0xffff0000))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xffff0000))))) - 1) & (((
((0xffff0000)))))) ^ (((((0xffff0000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xffff0000)))) >> 2)) - 1)
& ((((((0xffff0000)))) >> 2))) ^ ((((((0xffff0000)
))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xffff0000)))))) - 1) & ((((((0xffff0000)))))))
^ ((((((0xffff0000)))))))) >> (1)) != 0) ? 1 : 0))))))
| ((1) << ((((u_long)((((((0xff)) - 1) & ((0xff)))
^ ((0xff)))) >> (16)) != 0) ? 16 + ((((u_long)(((((((0xff
) >> 16)) - 1) & (((0xff) >> 16))) ^ (((0xff)
>> 16)))) >> (8)) != 0) ? 8 + ((((u_long)(((((((
(0xff) >> 16) >> 8)) - 1) & ((((0xff) >>
16) >> 8))) ^ ((((0xff) >> 16) >> 8)))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >> 16) >>
8) >> 4)) - 1) & (((((0xff) >> 16) >> 8
) >> 4))) ^ (((((0xff) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xff
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xff) >> 16) >> 8) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16
) >> 8) >> 4))) - 1) & ((((((0xff) >> 16
) >> 8) >> 4)))) ^ ((((((0xff) >> 16) >>
8) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0xff) >> 16) >> 8))) - 1) & (((((0xff
) >> 16) >> 8)))) ^ (((((0xff) >> 16) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff) >>
16) >> 8)) >> 2)) - 1) & ((((((0xff) >>
16) >> 8)) >> 2))) ^ ((((((0xff) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff) >> 16) >> 8)))) - 1) & (((((
(0xff) >> 16) >> 8))))) ^ ((((((0xff) >> 16
) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff) >> 16))) - 1) & ((((0xff) >> 16
)))) ^ ((((0xff) >> 16))))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xff) >> 16)) >> 4)) - 1) &
(((((0xff) >> 16)) >> 4))) ^ (((((0xff) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff) >> 16)) >> 4) >> 2))) ^ ((((((
0xff) >> 16)) >> 4) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16)) >>
4))) - 1) & ((((((0xff) >> 16)) >> 4)))) ^ (
(((((0xff) >> 16)) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xff) >> 16)))) - 1) &
(((((0xff) >> 16))))) ^ (((((0xff) >> 16)))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff) >> 16))) >>
2)) - 1) & ((((((0xff) >> 16))) >> 2))) ^ ((
((((0xff) >> 16))) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xff) >> 16))))) - 1) &
((((((0xff) >> 16)))))) ^ ((((((0xff) >> 16)))))
)) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff))
) - 1) & (((0xff)))) ^ (((0xff))))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0xff)) >> 8)) - 1) & ((((0xff
)) >> 8))) ^ ((((0xff)) >> 8)))) >> (4)) !=
0) ? 4 + ((((u_long)(((((((((0xff)) >> 8) >> 4))
- 1) & (((((0xff)) >> 8) >> 4))) ^ (((((0xff
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff)) >> 8) >> 4) >> 2))) ^ ((((((0xff
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xff)) >> 8) >> 4
))) - 1) & ((((((0xff)) >> 8) >> 4)))) ^ ((((
((0xff)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0xff)) >> 8))) - 1) & ((
(((0xff)) >> 8)))) ^ (((((0xff)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff)) >> 8)) >>
2)) - 1) & ((((((0xff)) >> 8)) >> 2))) ^ (((
(((0xff)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xff)) >> 8)))) - 1) &
((((((0xff)) >> 8))))) ^ ((((((0xff)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff))))
- 1) & ((((0xff))))) ^ ((((0xff)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xff))) >> 4)) - 1) & (
((((0xff))) >> 4))) ^ (((((0xff))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff))) >> 4) >>
2)) - 1) & ((((((0xff))) >> 4) >> 2))) ^ (((
(((0xff))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xff))) >> 4))) - 1) &
((((((0xff))) >> 4)))) ^ ((((((0xff))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff))))
) - 1) & (((((0xff)))))) ^ (((((0xff))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0xff)))) >> 2)) - 1) &
((((((0xff)))) >> 2))) ^ ((((((0xff)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff))))
)) - 1) & ((((((0xff))))))) ^ ((((((0xff)))))))) >>
(1)) != 0) ? 1 : 0))))))))))
1069 LSHIFT(1, ATW_TXLMT_SRTYLIM_MASK))(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xB0)), (((
(512) << ((((u_long)((((((0xffff0000)) - 1) & ((0xffff0000
))) ^ ((0xffff0000)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0xffff0000) >> 16)) - 1) & (((0xffff0000) >>
16))) ^ (((0xffff0000) >> 16)))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0xffff0000) >> 16) >> 8))
- 1) & ((((0xffff0000) >> 16) >> 8))) ^ ((((
0xffff0000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0xffff0000) >> 16) >> 8)
>> 4)) - 1) & (((((0xffff0000) >> 16) >>
8) >> 4))) ^ (((((0xffff0000) >> 16) >> 8)
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xffff0000) >> 16) >> 8) >> 4) >> 2
)) - 1) & ((((((0xffff0000) >> 16) >> 8) >>
4) >> 2))) ^ ((((((0xffff0000) >> 16) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xffff0000) >> 16) >> 8) >>
4))) - 1) & ((((((0xffff0000) >> 16) >> 8) >>
4)))) ^ ((((((0xffff0000) >> 16) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xffff0000
) >> 16) >> 8))) - 1) & (((((0xffff0000) >>
16) >> 8)))) ^ (((((0xffff0000) >> 16) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xffff0000
) >> 16) >> 8)) >> 2)) - 1) & ((((((0xffff0000
) >> 16) >> 8)) >> 2))) ^ ((((((0xffff0000)
>> 16) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xffff0000) >> 16) >>
8)))) - 1) & ((((((0xffff0000) >> 16) >> 8))
))) ^ ((((((0xffff0000) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xffff0000) >>
16))) - 1) & ((((0xffff0000) >> 16)))) ^ ((((0xffff0000
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xffff0000) >> 16)) >> 4)) - 1) & (((((0xffff0000
) >> 16)) >> 4))) ^ (((((0xffff0000) >> 16)
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xffff0000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xffff0000) >> 16)) >> 4) >> 2))) ^ (
(((((0xffff0000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff0000) >>
16)) >> 4))) - 1) & ((((((0xffff0000) >> 16)
) >> 4)))) ^ ((((((0xffff0000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xffff0000
) >> 16)))) - 1) & (((((0xffff0000) >> 16))))
) ^ (((((0xffff0000) >> 16)))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0xffff0000) >> 16))) >> 2
)) - 1) & ((((((0xffff0000) >> 16))) >> 2))) ^
((((((0xffff0000) >> 16))) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff0000) >> 16
))))) - 1) & ((((((0xffff0000) >> 16)))))) ^ ((((((
0xffff0000) >> 16))))))) >> (1)) != 0) ? 1 : 0)))
) : ((((u_long)(((((((0xffff0000))) - 1) & (((0xffff0000)
))) ^ (((0xffff0000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xffff0000)) >> 8)) - 1) & ((((0xffff0000)
) >> 8))) ^ ((((0xffff0000)) >> 8)))) >> (4
)) != 0) ? 4 + ((((u_long)(((((((((0xffff0000)) >> 8) >>
4)) - 1) & (((((0xffff0000)) >> 8) >> 4))) ^
(((((0xffff0000)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xffff0000)) >> 8) >>
4) >> 2)) - 1) & ((((((0xffff0000)) >> 8) >>
4) >> 2))) ^ ((((((0xffff0000)) >> 8) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0xffff0000)) >> 8) >> 4))) - 1) & (((
(((0xffff0000)) >> 8) >> 4)))) ^ ((((((0xffff0000
)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)) :
((((u_long)(((((((((0xffff0000)) >> 8))) - 1) & ((
(((0xffff0000)) >> 8)))) ^ (((((0xffff0000)) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xffff0000
)) >> 8)) >> 2)) - 1) & ((((((0xffff0000)) >>
8)) >> 2))) ^ ((((((0xffff0000)) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff0000
)) >> 8)))) - 1) & ((((((0xffff0000)) >> 8)))
)) ^ ((((((0xffff0000)) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xffff0000)))) - 1) & ((((
0xffff0000))))) ^ ((((0xffff0000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xffff0000))) >> 4)) - 1) & (
((((0xffff0000))) >> 4))) ^ (((((0xffff0000))) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xffff0000
))) >> 4) >> 2)) - 1) & ((((((0xffff0000))) >>
4) >> 2))) ^ ((((((0xffff0000))) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff0000
))) >> 4))) - 1) & ((((((0xffff0000))) >> 4))
)) ^ ((((((0xffff0000))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xffff0000))))) - 1) & (((
((0xffff0000)))))) ^ (((((0xffff0000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xffff0000)))) >> 2)) - 1)
& ((((((0xffff0000)))) >> 2))) ^ ((((((0xffff0000)
))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xffff0000)))))) - 1) & ((((((0xffff0000)))))))
^ ((((((0xffff0000)))))))) >> (1)) != 0) ? 1 : 0))))))
| ((1) << ((((u_long)((((((0xff)) - 1) & ((0xff)))
^ ((0xff)))) >> (16)) != 0) ? 16 + ((((u_long)(((((((0xff
) >> 16)) - 1) & (((0xff) >> 16))) ^ (((0xff)
>> 16)))) >> (8)) != 0) ? 8 + ((((u_long)(((((((
(0xff) >> 16) >> 8)) - 1) & ((((0xff) >>
16) >> 8))) ^ ((((0xff) >> 16) >> 8)))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >> 16) >>
8) >> 4)) - 1) & (((((0xff) >> 16) >> 8
) >> 4))) ^ (((((0xff) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xff
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xff) >> 16) >> 8) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16
) >> 8) >> 4))) - 1) & ((((((0xff) >> 16
) >> 8) >> 4)))) ^ ((((((0xff) >> 16) >>
8) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0xff) >> 16) >> 8))) - 1) & (((((0xff
) >> 16) >> 8)))) ^ (((((0xff) >> 16) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff) >>
16) >> 8)) >> 2)) - 1) & ((((((0xff) >>
16) >> 8)) >> 2))) ^ ((((((0xff) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff) >> 16) >> 8)))) - 1) & (((((
(0xff) >> 16) >> 8))))) ^ ((((((0xff) >> 16
) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff) >> 16))) - 1) & ((((0xff) >> 16
)))) ^ ((((0xff) >> 16))))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xff) >> 16)) >> 4)) - 1) &
(((((0xff) >> 16)) >> 4))) ^ (((((0xff) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff) >> 16)) >> 4) >> 2))) ^ ((((((
0xff) >> 16)) >> 4) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16)) >>
4))) - 1) & ((((((0xff) >> 16)) >> 4)))) ^ (
(((((0xff) >> 16)) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xff) >> 16)))) - 1) &
(((((0xff) >> 16))))) ^ (((((0xff) >> 16)))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff) >> 16))) >>
2)) - 1) & ((((((0xff) >> 16))) >> 2))) ^ ((
((((0xff) >> 16))) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xff) >> 16))))) - 1) &
((((((0xff) >> 16)))))) ^ ((((((0xff) >> 16)))))
)) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff))
) - 1) & (((0xff)))) ^ (((0xff))))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0xff)) >> 8)) - 1) & ((((0xff
)) >> 8))) ^ ((((0xff)) >> 8)))) >> (4)) !=
0) ? 4 + ((((u_long)(((((((((0xff)) >> 8) >> 4))
- 1) & (((((0xff)) >> 8) >> 4))) ^ (((((0xff
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff)) >> 8) >> 4) >> 2))) ^ ((((((0xff
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xff)) >> 8) >> 4
))) - 1) & ((((((0xff)) >> 8) >> 4)))) ^ ((((
((0xff)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0xff)) >> 8))) - 1) & ((
(((0xff)) >> 8)))) ^ (((((0xff)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff)) >> 8)) >>
2)) - 1) & ((((((0xff)) >> 8)) >> 2))) ^ (((
(((0xff)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xff)) >> 8)))) - 1) &
((((((0xff)) >> 8))))) ^ ((((((0xff)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff))))
- 1) & ((((0xff))))) ^ ((((0xff)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xff))) >> 4)) - 1) & (
((((0xff))) >> 4))) ^ (((((0xff))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff))) >> 4) >>
2)) - 1) & ((((((0xff))) >> 4) >> 2))) ^ (((
(((0xff))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xff))) >> 4))) - 1) &
((((((0xff))) >> 4)))) ^ ((((((0xff))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff))))
) - 1) & (((((0xff)))))) ^ (((((0xff))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0xff)))) >> 2)) - 1) &
((((((0xff)))) >> 2))) ^ ((((((0xff)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff))))
)) - 1) & ((((((0xff))))))) ^ ((((((0xff)))))))) >>
(1)) != 0) ? 1 : 0))))))))))
;
1070}
1071
1072void
1073atw_test1_init(struct atw_softc *sc)
1074{
1075 uint32_t test1;
1076
1077 test1 = ATW_READ(sc, ATW_TEST1)(((sc)->sc_st)->read_4(((sc)->sc_sh), ((0x44))));
1078 test1 &= ~(ATW_TEST1_DBGREAD_MASK0x70000000|ATW_TEST1_CONTROL(1<<31));
1079 /* XXX magic 0x1 */
1080 test1 |= LSHIFT(0x1, ATW_TEST1_DBGREAD_MASK)((0x1) << ((((u_long)((((((0x70000000)) - 1) & ((0x70000000
))) ^ ((0x70000000)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0x70000000) >> 16)) - 1) & (((0x70000000) >>
16))) ^ (((0x70000000) >> 16)))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0x70000000) >> 16) >> 8))
- 1) & ((((0x70000000) >> 16) >> 8))) ^ ((((
0x70000000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0x70000000) >> 16) >> 8)
>> 4)) - 1) & (((((0x70000000) >> 16) >>
8) >> 4))) ^ (((((0x70000000) >> 16) >> 8)
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0x70000000) >> 16) >> 8) >> 4) >> 2
)) - 1) & ((((((0x70000000) >> 16) >> 8) >>
4) >> 2))) ^ ((((((0x70000000) >> 16) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0x70000000) >> 16) >> 8) >>
4))) - 1) & ((((((0x70000000) >> 16) >> 8) >>
4)))) ^ ((((((0x70000000) >> 16) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x70000000
) >> 16) >> 8))) - 1) & (((((0x70000000) >>
16) >> 8)))) ^ (((((0x70000000) >> 16) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x70000000
) >> 16) >> 8)) >> 2)) - 1) & ((((((0x70000000
) >> 16) >> 8)) >> 2))) ^ ((((((0x70000000)
>> 16) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0x70000000) >> 16) >>
8)))) - 1) & ((((((0x70000000) >> 16) >> 8))
))) ^ ((((((0x70000000) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x70000000) >>
16))) - 1) & ((((0x70000000) >> 16)))) ^ ((((0x70000000
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0x70000000) >> 16)) >> 4)) - 1) & (((((0x70000000
) >> 16)) >> 4))) ^ (((((0x70000000) >> 16)
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0x70000000) >> 16)) >> 4) >> 2)) - 1) &
((((((0x70000000) >> 16)) >> 4) >> 2))) ^ (
(((((0x70000000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x70000000) >>
16)) >> 4))) - 1) & ((((((0x70000000) >> 16)
) >> 4)))) ^ ((((((0x70000000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x70000000
) >> 16)))) - 1) & (((((0x70000000) >> 16))))
) ^ (((((0x70000000) >> 16)))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0x70000000) >> 16))) >> 2
)) - 1) & ((((((0x70000000) >> 16))) >> 2))) ^
((((((0x70000000) >> 16))) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0x70000000) >> 16
))))) - 1) & ((((((0x70000000) >> 16)))))) ^ ((((((
0x70000000) >> 16))))))) >> (1)) != 0) ? 1 : 0)))
) : ((((u_long)(((((((0x70000000))) - 1) & (((0x70000000)
))) ^ (((0x70000000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0x70000000)) >> 8)) - 1) & ((((0x70000000)
) >> 8))) ^ ((((0x70000000)) >> 8)))) >> (4
)) != 0) ? 4 + ((((u_long)(((((((((0x70000000)) >> 8) >>
4)) - 1) & (((((0x70000000)) >> 8) >> 4))) ^
(((((0x70000000)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0x70000000)) >> 8) >>
4) >> 2)) - 1) & ((((((0x70000000)) >> 8) >>
4) >> 2))) ^ ((((((0x70000000)) >> 8) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0x70000000)) >> 8) >> 4))) - 1) & (((
(((0x70000000)) >> 8) >> 4)))) ^ ((((((0x70000000
)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)) :
((((u_long)(((((((((0x70000000)) >> 8))) - 1) & ((
(((0x70000000)) >> 8)))) ^ (((((0x70000000)) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x70000000
)) >> 8)) >> 2)) - 1) & ((((((0x70000000)) >>
8)) >> 2))) ^ ((((((0x70000000)) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x70000000
)) >> 8)))) - 1) & ((((((0x70000000)) >> 8)))
)) ^ ((((((0x70000000)) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0x70000000)))) - 1) & ((((
0x70000000))))) ^ ((((0x70000000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0x70000000))) >> 4)) - 1) & (
((((0x70000000))) >> 4))) ^ (((((0x70000000))) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x70000000
))) >> 4) >> 2)) - 1) & ((((((0x70000000))) >>
4) >> 2))) ^ ((((((0x70000000))) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x70000000
))) >> 4))) - 1) & ((((((0x70000000))) >> 4))
)) ^ ((((((0x70000000))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0x70000000))))) - 1) & (((
((0x70000000)))))) ^ (((((0x70000000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0x70000000)))) >> 2)) - 1)
& ((((((0x70000000)))) >> 2))) ^ ((((((0x70000000)
))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0x70000000)))))) - 1) & ((((((0x70000000)))))))
^ ((((((0x70000000)))))))) >> (1)) != 0) ? 1 : 0))))))
| ATW_TEST1_CONTROL(1<<31);
1081 ATW_WRITE(sc, ATW_TEST1, test1)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x44)), ((test1
))))
;
1082}
1083
1084void
1085atw_rf_reset(struct atw_softc *sc)
1086{
1087 /* XXX this resets an Intersil RF front-end? */
1088 /* TBD condition on Intersil RFType? */
1089 ATW_WRITE(sc, ATW_SYNRF, ATW_SYNRF_INTERSIL_EN)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xC4)), (((
1<<20)))))
;
1090 DELAY(10 * 1000)(*delay_func)(10 * 1000);
1091 ATW_WRITE(sc, ATW_SYNRF, 0)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xC4)), ((0
))))
;
1092 DELAY(5 * 1000)(*delay_func)(5 * 1000);
1093}
1094
1095/* Set 16 TU max duration for the contention-free period (CFP). */
1096void
1097atw_cfp_init(struct atw_softc *sc)
1098{
1099 uint32_t cfpp;
1100
1101 cfpp = ATW_READ(sc, ATW_CFPP)(((sc)->sc_st)->read_4(((sc)->sc_sh), ((0xD8))));
1102 cfpp &= ~ATW_CFPP_CFPMD0xffff00;
1103 cfpp |= LSHIFT(16, ATW_CFPP_CFPMD)((16) << ((((u_long)((((((0xffff00)) - 1) & ((0xffff00
))) ^ ((0xffff00)))) >> (16)) != 0) ? 16 + ((((u_long)(
((((((0xffff00) >> 16)) - 1) & (((0xffff00) >>
16))) ^ (((0xffff00) >> 16)))) >> (8)) != 0) ? 8
+ ((((u_long)((((((((0xffff00) >> 16) >> 8)) - 1
) & ((((0xffff00) >> 16) >> 8))) ^ ((((0xffff00
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xffff00) >> 16) >> 8) >> 4)) - 1
) & (((((0xffff00) >> 16) >> 8) >> 4)))
^ (((((0xffff00) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xffff00) >> 16)
>> 8) >> 4) >> 2)) - 1) & ((((((0xffff00
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xffff00) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff00
) >> 16) >> 8) >> 4))) - 1) & ((((((0xffff00
) >> 16) >> 8) >> 4)))) ^ ((((((0xffff00) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xffff00) >> 16) >> 8))) -
1) & (((((0xffff00) >> 16) >> 8)))) ^ (((((0xffff00
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xffff00) >> 16) >> 8)) >>
2)) - 1) & ((((((0xffff00) >> 16) >> 8)) >>
2))) ^ ((((((0xffff00) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff00
) >> 16) >> 8)))) - 1) & ((((((0xffff00) >>
16) >> 8))))) ^ ((((((0xffff00) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xffff00
) >> 16))) - 1) & ((((0xffff00) >> 16)))) ^ (
(((0xffff00) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xffff00) >> 16)) >> 4)) - 1) & (((
((0xffff00) >> 16)) >> 4))) ^ (((((0xffff00) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xffff00) >> 16)) >> 4) >> 2)) - 1) &
((((((0xffff00) >> 16)) >> 4) >> 2))) ^ ((
((((0xffff00) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff00) >>
16)) >> 4))) - 1) & ((((((0xffff00) >> 16)) >>
4)))) ^ ((((((0xffff00) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xffff00) >>
16)))) - 1) & (((((0xffff00) >> 16))))) ^ (((((0xffff00
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0xffff00) >> 16))) >> 2)) - 1) & ((((((
0xffff00) >> 16))) >> 2))) ^ ((((((0xffff00) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xffff00) >> 16))))) - 1) & ((((((0xffff00
) >> 16)))))) ^ ((((((0xffff00) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xffff00))) - 1) &
(((0xffff00)))) ^ (((0xffff00))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0xffff00)) >> 8)) - 1) & ((((0xffff00
)) >> 8))) ^ ((((0xffff00)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xffff00)) >> 8) >>
4)) - 1) & (((((0xffff00)) >> 8) >> 4))) ^ (
((((0xffff00)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xffff00)) >> 8) >> 4
) >> 2)) - 1) & ((((((0xffff00)) >> 8) >>
4) >> 2))) ^ ((((((0xffff00)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff00
)) >> 8) >> 4))) - 1) & ((((((0xffff00)) >>
8) >> 4)))) ^ ((((((0xffff00)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xffff00
)) >> 8))) - 1) & (((((0xffff00)) >> 8)))) ^ (
((((0xffff00)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xffff00)) >> 8)) >> 2)) - 1) &
((((((0xffff00)) >> 8)) >> 2))) ^ ((((((0xffff00
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xffff00)) >> 8)))) - 1) & ((
((((0xffff00)) >> 8))))) ^ ((((((0xffff00)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xffff00
)))) - 1) & ((((0xffff00))))) ^ ((((0xffff00)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xffff00))) >> 4)
) - 1) & (((((0xffff00))) >> 4))) ^ (((((0xffff00))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xffff00))) >> 4) >> 2)) - 1) & ((((((0xffff00
))) >> 4) >> 2))) ^ ((((((0xffff00))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0xffff00))) >> 4))) - 1) & ((((((0xffff00)))
>> 4)))) ^ ((((((0xffff00))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xffff00))))) - 1) &
(((((0xffff00)))))) ^ (((((0xffff00))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xffff00)))) >> 2)) - 1) &
((((((0xffff00)))) >> 2))) ^ ((((((0xffff00)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff00
)))))) - 1) & ((((((0xffff00))))))) ^ ((((((0xffff00)))))
))) >> (1)) != 0) ? 1 : 0))))))
;
1104 ATW_WRITE(sc, ATW_CFPP, cfpp)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xD8)), ((cfpp
))))
;
1105}
1106
1107void
1108atw_tofs0_init(struct atw_softc *sc)
1109{
1110 /* XXX I guess that the Cardbus clock is 22MHz?
1111 * I am assuming that the role of ATW_TOFS0_USCNT is
1112 * to divide the bus clock to get a 1MHz clock---the datasheet is not
1113 * very clear on this point. It says in the datasheet that it is
1114 * possible for the ADM8211 to accommodate bus speeds between 22MHz
1115 * and 33MHz; maybe this is the way? I see a binary-only driver write
1116 * these values. These values are also the power-on default.
1117 */
1118 ATW_WRITE(sc, ATW_TOFS0,(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xDC)), (((
(22) << ((((u_long)((((((0x3f000000)) - 1) & ((0x3f000000
))) ^ ((0x3f000000)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0x3f000000) >> 16)) - 1) & (((0x3f000000) >>
16))) ^ (((0x3f000000) >> 16)))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0x3f000000) >> 16) >> 8))
- 1) & ((((0x3f000000) >> 16) >> 8))) ^ ((((
0x3f000000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0x3f000000) >> 16) >> 8)
>> 4)) - 1) & (((((0x3f000000) >> 16) >>
8) >> 4))) ^ (((((0x3f000000) >> 16) >> 8)
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0x3f000000) >> 16) >> 8) >> 4) >> 2
)) - 1) & ((((((0x3f000000) >> 16) >> 8) >>
4) >> 2))) ^ ((((((0x3f000000) >> 16) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0x3f000000) >> 16) >> 8) >>
4))) - 1) & ((((((0x3f000000) >> 16) >> 8) >>
4)))) ^ ((((((0x3f000000) >> 16) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3f000000
) >> 16) >> 8))) - 1) & (((((0x3f000000) >>
16) >> 8)))) ^ (((((0x3f000000) >> 16) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3f000000
) >> 16) >> 8)) >> 2)) - 1) & ((((((0x3f000000
) >> 16) >> 8)) >> 2))) ^ ((((((0x3f000000)
>> 16) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0x3f000000) >> 16) >>
8)))) - 1) & ((((((0x3f000000) >> 16) >> 8))
))) ^ ((((((0x3f000000) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x3f000000) >>
16))) - 1) & ((((0x3f000000) >> 16)))) ^ ((((0x3f000000
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0x3f000000) >> 16)) >> 4)) - 1) & (((((0x3f000000
) >> 16)) >> 4))) ^ (((((0x3f000000) >> 16)
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0x3f000000) >> 16)) >> 4) >> 2)) - 1) &
((((((0x3f000000) >> 16)) >> 4) >> 2))) ^ (
(((((0x3f000000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f000000) >>
16)) >> 4))) - 1) & ((((((0x3f000000) >> 16)
) >> 4)))) ^ ((((((0x3f000000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3f000000
) >> 16)))) - 1) & (((((0x3f000000) >> 16))))
) ^ (((((0x3f000000) >> 16)))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0x3f000000) >> 16))) >> 2
)) - 1) & ((((((0x3f000000) >> 16))) >> 2))) ^
((((((0x3f000000) >> 16))) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f000000) >> 16
))))) - 1) & ((((((0x3f000000) >> 16)))))) ^ ((((((
0x3f000000) >> 16))))))) >> (1)) != 0) ? 1 : 0)))
) : ((((u_long)(((((((0x3f000000))) - 1) & (((0x3f000000)
))) ^ (((0x3f000000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0x3f000000)) >> 8)) - 1) & ((((0x3f000000)
) >> 8))) ^ ((((0x3f000000)) >> 8)))) >> (4
)) != 0) ? 4 + ((((u_long)(((((((((0x3f000000)) >> 8) >>
4)) - 1) & (((((0x3f000000)) >> 8) >> 4))) ^
(((((0x3f000000)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0x3f000000)) >> 8) >>
4) >> 2)) - 1) & ((((((0x3f000000)) >> 8) >>
4) >> 2))) ^ ((((((0x3f000000)) >> 8) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0x3f000000)) >> 8) >> 4))) - 1) & (((
(((0x3f000000)) >> 8) >> 4)))) ^ ((((((0x3f000000
)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)) :
((((u_long)(((((((((0x3f000000)) >> 8))) - 1) & ((
(((0x3f000000)) >> 8)))) ^ (((((0x3f000000)) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3f000000
)) >> 8)) >> 2)) - 1) & ((((((0x3f000000)) >>
8)) >> 2))) ^ ((((((0x3f000000)) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f000000
)) >> 8)))) - 1) & ((((((0x3f000000)) >> 8)))
)) ^ ((((((0x3f000000)) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0x3f000000)))) - 1) & ((((
0x3f000000))))) ^ ((((0x3f000000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0x3f000000))) >> 4)) - 1) & (
((((0x3f000000))) >> 4))) ^ (((((0x3f000000))) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3f000000
))) >> 4) >> 2)) - 1) & ((((((0x3f000000))) >>
4) >> 2))) ^ ((((((0x3f000000))) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f000000
))) >> 4))) - 1) & ((((((0x3f000000))) >> 4))
)) ^ ((((((0x3f000000))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0x3f000000))))) - 1) & (((
((0x3f000000)))))) ^ (((((0x3f000000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0x3f000000)))) >> 2)) - 1)
& ((((((0x3f000000)))) >> 2))) ^ ((((((0x3f000000)
))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0x3f000000)))))) - 1) & ((((((0x3f000000)))))))
^ ((((((0x3f000000)))))))) >> (1)) != 0) ? 1 : 0))))))
| 0x3ff))))
1119 LSHIFT(22, ATW_TOFS0_USCNT_MASK) |(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xDC)), (((
(22) << ((((u_long)((((((0x3f000000)) - 1) & ((0x3f000000
))) ^ ((0x3f000000)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0x3f000000) >> 16)) - 1) & (((0x3f000000) >>
16))) ^ (((0x3f000000) >> 16)))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0x3f000000) >> 16) >> 8))
- 1) & ((((0x3f000000) >> 16) >> 8))) ^ ((((
0x3f000000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0x3f000000) >> 16) >> 8)
>> 4)) - 1) & (((((0x3f000000) >> 16) >>
8) >> 4))) ^ (((((0x3f000000) >> 16) >> 8)
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0x3f000000) >> 16) >> 8) >> 4) >> 2
)) - 1) & ((((((0x3f000000) >> 16) >> 8) >>
4) >> 2))) ^ ((((((0x3f000000) >> 16) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0x3f000000) >> 16) >> 8) >>
4))) - 1) & ((((((0x3f000000) >> 16) >> 8) >>
4)))) ^ ((((((0x3f000000) >> 16) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3f000000
) >> 16) >> 8))) - 1) & (((((0x3f000000) >>
16) >> 8)))) ^ (((((0x3f000000) >> 16) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3f000000
) >> 16) >> 8)) >> 2)) - 1) & ((((((0x3f000000
) >> 16) >> 8)) >> 2))) ^ ((((((0x3f000000)
>> 16) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0x3f000000) >> 16) >>
8)))) - 1) & ((((((0x3f000000) >> 16) >> 8))
))) ^ ((((((0x3f000000) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x3f000000) >>
16))) - 1) & ((((0x3f000000) >> 16)))) ^ ((((0x3f000000
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0x3f000000) >> 16)) >> 4)) - 1) & (((((0x3f000000
) >> 16)) >> 4))) ^ (((((0x3f000000) >> 16)
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0x3f000000) >> 16)) >> 4) >> 2)) - 1) &
((((((0x3f000000) >> 16)) >> 4) >> 2))) ^ (
(((((0x3f000000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f000000) >>
16)) >> 4))) - 1) & ((((((0x3f000000) >> 16)
) >> 4)))) ^ ((((((0x3f000000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3f000000
) >> 16)))) - 1) & (((((0x3f000000) >> 16))))
) ^ (((((0x3f000000) >> 16)))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0x3f000000) >> 16))) >> 2
)) - 1) & ((((((0x3f000000) >> 16))) >> 2))) ^
((((((0x3f000000) >> 16))) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f000000) >> 16
))))) - 1) & ((((((0x3f000000) >> 16)))))) ^ ((((((
0x3f000000) >> 16))))))) >> (1)) != 0) ? 1 : 0)))
) : ((((u_long)(((((((0x3f000000))) - 1) & (((0x3f000000)
))) ^ (((0x3f000000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0x3f000000)) >> 8)) - 1) & ((((0x3f000000)
) >> 8))) ^ ((((0x3f000000)) >> 8)))) >> (4
)) != 0) ? 4 + ((((u_long)(((((((((0x3f000000)) >> 8) >>
4)) - 1) & (((((0x3f000000)) >> 8) >> 4))) ^
(((((0x3f000000)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0x3f000000)) >> 8) >>
4) >> 2)) - 1) & ((((((0x3f000000)) >> 8) >>
4) >> 2))) ^ ((((((0x3f000000)) >> 8) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0x3f000000)) >> 8) >> 4))) - 1) & (((
(((0x3f000000)) >> 8) >> 4)))) ^ ((((((0x3f000000
)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)) :
((((u_long)(((((((((0x3f000000)) >> 8))) - 1) & ((
(((0x3f000000)) >> 8)))) ^ (((((0x3f000000)) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3f000000
)) >> 8)) >> 2)) - 1) & ((((((0x3f000000)) >>
8)) >> 2))) ^ ((((((0x3f000000)) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f000000
)) >> 8)))) - 1) & ((((((0x3f000000)) >> 8)))
)) ^ ((((((0x3f000000)) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0x3f000000)))) - 1) & ((((
0x3f000000))))) ^ ((((0x3f000000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0x3f000000))) >> 4)) - 1) & (
((((0x3f000000))) >> 4))) ^ (((((0x3f000000))) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3f000000
))) >> 4) >> 2)) - 1) & ((((((0x3f000000))) >>
4) >> 2))) ^ ((((((0x3f000000))) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f000000
))) >> 4))) - 1) & ((((((0x3f000000))) >> 4))
)) ^ ((((((0x3f000000))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0x3f000000))))) - 1) & (((
((0x3f000000)))))) ^ (((((0x3f000000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0x3f000000)))) >> 2)) - 1)
& ((((((0x3f000000)))) >> 2))) ^ ((((((0x3f000000)
))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0x3f000000)))))) - 1) & ((((((0x3f000000)))))))
^ ((((((0x3f000000)))))))) >> (1)) != 0) ? 1 : 0))))))
| 0x3ff))))
1120 ATW_TOFS0_TUCNT_MASK /* set all bits in TUCNT */)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xDC)), (((
(22) << ((((u_long)((((((0x3f000000)) - 1) & ((0x3f000000
))) ^ ((0x3f000000)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0x3f000000) >> 16)) - 1) & (((0x3f000000) >>
16))) ^ (((0x3f000000) >> 16)))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0x3f000000) >> 16) >> 8))
- 1) & ((((0x3f000000) >> 16) >> 8))) ^ ((((
0x3f000000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0x3f000000) >> 16) >> 8)
>> 4)) - 1) & (((((0x3f000000) >> 16) >>
8) >> 4))) ^ (((((0x3f000000) >> 16) >> 8)
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0x3f000000) >> 16) >> 8) >> 4) >> 2
)) - 1) & ((((((0x3f000000) >> 16) >> 8) >>
4) >> 2))) ^ ((((((0x3f000000) >> 16) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0x3f000000) >> 16) >> 8) >>
4))) - 1) & ((((((0x3f000000) >> 16) >> 8) >>
4)))) ^ ((((((0x3f000000) >> 16) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3f000000
) >> 16) >> 8))) - 1) & (((((0x3f000000) >>
16) >> 8)))) ^ (((((0x3f000000) >> 16) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3f000000
) >> 16) >> 8)) >> 2)) - 1) & ((((((0x3f000000
) >> 16) >> 8)) >> 2))) ^ ((((((0x3f000000)
>> 16) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0x3f000000) >> 16) >>
8)))) - 1) & ((((((0x3f000000) >> 16) >> 8))
))) ^ ((((((0x3f000000) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x3f000000) >>
16))) - 1) & ((((0x3f000000) >> 16)))) ^ ((((0x3f000000
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0x3f000000) >> 16)) >> 4)) - 1) & (((((0x3f000000
) >> 16)) >> 4))) ^ (((((0x3f000000) >> 16)
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0x3f000000) >> 16)) >> 4) >> 2)) - 1) &
((((((0x3f000000) >> 16)) >> 4) >> 2))) ^ (
(((((0x3f000000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f000000) >>
16)) >> 4))) - 1) & ((((((0x3f000000) >> 16)
) >> 4)))) ^ ((((((0x3f000000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3f000000
) >> 16)))) - 1) & (((((0x3f000000) >> 16))))
) ^ (((((0x3f000000) >> 16)))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0x3f000000) >> 16))) >> 2
)) - 1) & ((((((0x3f000000) >> 16))) >> 2))) ^
((((((0x3f000000) >> 16))) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f000000) >> 16
))))) - 1) & ((((((0x3f000000) >> 16)))))) ^ ((((((
0x3f000000) >> 16))))))) >> (1)) != 0) ? 1 : 0)))
) : ((((u_long)(((((((0x3f000000))) - 1) & (((0x3f000000)
))) ^ (((0x3f000000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0x3f000000)) >> 8)) - 1) & ((((0x3f000000)
) >> 8))) ^ ((((0x3f000000)) >> 8)))) >> (4
)) != 0) ? 4 + ((((u_long)(((((((((0x3f000000)) >> 8) >>
4)) - 1) & (((((0x3f000000)) >> 8) >> 4))) ^
(((((0x3f000000)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0x3f000000)) >> 8) >>
4) >> 2)) - 1) & ((((((0x3f000000)) >> 8) >>
4) >> 2))) ^ ((((((0x3f000000)) >> 8) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0x3f000000)) >> 8) >> 4))) - 1) & (((
(((0x3f000000)) >> 8) >> 4)))) ^ ((((((0x3f000000
)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)) :
((((u_long)(((((((((0x3f000000)) >> 8))) - 1) & ((
(((0x3f000000)) >> 8)))) ^ (((((0x3f000000)) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3f000000
)) >> 8)) >> 2)) - 1) & ((((((0x3f000000)) >>
8)) >> 2))) ^ ((((((0x3f000000)) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f000000
)) >> 8)))) - 1) & ((((((0x3f000000)) >> 8)))
)) ^ ((((((0x3f000000)) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0x3f000000)))) - 1) & ((((
0x3f000000))))) ^ ((((0x3f000000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0x3f000000))) >> 4)) - 1) & (
((((0x3f000000))) >> 4))) ^ (((((0x3f000000))) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3f000000
))) >> 4) >> 2)) - 1) & ((((((0x3f000000))) >>
4) >> 2))) ^ ((((((0x3f000000))) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f000000
))) >> 4))) - 1) & ((((((0x3f000000))) >> 4))
)) ^ ((((((0x3f000000))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0x3f000000))))) - 1) & (((
((0x3f000000)))))) ^ (((((0x3f000000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0x3f000000)))) >> 2)) - 1)
& ((((((0x3f000000)))) >> 2))) ^ ((((((0x3f000000)
))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0x3f000000)))))) - 1) & ((((((0x3f000000)))))))
^ ((((((0x3f000000)))))))) >> (1)) != 0) ? 1 : 0))))))
| 0x3ff))))
;
1121}
1122
1123/* Initialize interframe spacing: 802.11b slot time, SIFS, DIFS, EIFS. */
1124void
1125atw_ifs_init(struct atw_softc *sc)
1126{
1127 uint32_t ifst;
1128 /* XXX EIFS=0x64, SIFS=110 are used by the reference driver.
1129 * Go figure.
1130 */
1131 ifst = LSHIFT(IEEE80211_DUR_DS_SLOT, ATW_IFST_SLOT_MASK)((20) << ((((u_long)((((((0xf800000)) - 1) & ((0xf800000
))) ^ ((0xf800000)))) >> (16)) != 0) ? 16 + ((((u_long)
(((((((0xf800000) >> 16)) - 1) & (((0xf800000) >>
16))) ^ (((0xf800000) >> 16)))) >> (8)) != 0) ? 8
+ ((((u_long)((((((((0xf800000) >> 16) >> 8)) - 1
) & ((((0xf800000) >> 16) >> 8))) ^ ((((0xf800000
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xf800000) >> 16) >> 8) >> 4)) - 1
) & (((((0xf800000) >> 16) >> 8) >> 4))
) ^ (((((0xf800000) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf800000) >> 16
) >> 8) >> 4) >> 2)) - 1) & ((((((0xf800000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xf800000) >> 16) >> 8) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf800000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xf800000
) >> 16) >> 8) >> 4)))) ^ ((((((0xf800000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xf800000) >> 16) >> 8)))
- 1) & (((((0xf800000) >> 16) >> 8)))) ^ (((
((0xf800000) >> 16) >> 8))))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xf800000) >> 16) >> 8
)) >> 2)) - 1) & ((((((0xf800000) >> 16) >>
8)) >> 2))) ^ ((((((0xf800000) >> 16) >> 8
)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(
(((((((((0xf800000) >> 16) >> 8)))) - 1) & ((
((((0xf800000) >> 16) >> 8))))) ^ ((((((0xf800000
) >> 16) >> 8)))))) >> (1)) != 0) ? 1 : 0))
) : ((((u_long)((((((((0xf800000) >> 16))) - 1) & (
(((0xf800000) >> 16)))) ^ ((((0xf800000) >> 16)))
)) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf800000) >>
16)) >> 4)) - 1) & (((((0xf800000) >> 16)) >>
4))) ^ (((((0xf800000) >> 16)) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf800000) >> 16
)) >> 4) >> 2)) - 1) & ((((((0xf800000) >>
16)) >> 4) >> 2))) ^ ((((((0xf800000) >> 16
)) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xf800000) >> 16)) >> 4))) - 1
) & ((((((0xf800000) >> 16)) >> 4)))) ^ (((((
(0xf800000) >> 16)) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xf800000) >> 16)))) -
1) & (((((0xf800000) >> 16))))) ^ (((((0xf800000) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf800000
) >> 16))) >> 2)) - 1) & ((((((0xf800000) >>
16))) >> 2))) ^ ((((((0xf800000) >> 16))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf800000
) >> 16))))) - 1) & ((((((0xf800000) >> 16)))
))) ^ ((((((0xf800000) >> 16))))))) >> (1)) != 0)
? 1 : 0)))) : ((((u_long)(((((((0xf800000))) - 1) & (((0xf800000
)))) ^ (((0xf800000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xf800000)) >> 8)) - 1) & ((((0xf800000)) >>
8))) ^ ((((0xf800000)) >> 8)))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xf800000)) >> 8) >> 4)) -
1) & (((((0xf800000)) >> 8) >> 4))) ^ (((((0xf800000
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xf800000)) >> 8) >> 4) >> 2)) -
1) & ((((((0xf800000)) >> 8) >> 4) >> 2
))) ^ ((((((0xf800000)) >> 8) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf800000
)) >> 8) >> 4))) - 1) & ((((((0xf800000)) >>
8) >> 4)))) ^ ((((((0xf800000)) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf800000
)) >> 8))) - 1) & (((((0xf800000)) >> 8)))) ^
(((((0xf800000)) >> 8))))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xf800000)) >> 8)) >> 2)) - 1
) & ((((((0xf800000)) >> 8)) >> 2))) ^ ((((((
0xf800000)) >> 8)) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xf800000)) >> 8)))) - 1
) & ((((((0xf800000)) >> 8))))) ^ ((((((0xf800000))
>> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xf800000)))) - 1) & ((((0xf800000))))) ^ ((((0xf800000
)))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf800000
))) >> 4)) - 1) & (((((0xf800000))) >> 4))) ^
(((((0xf800000))) >> 4)))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xf800000))) >> 4) >> 2)) - 1
) & ((((((0xf800000))) >> 4) >> 2))) ^ ((((((
0xf800000))) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xf800000))) >> 4))) - 1
) & ((((((0xf800000))) >> 4)))) ^ ((((((0xf800000))
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0xf800000))))) - 1) & (((((0xf800000)))))) ^ (((
((0xf800000))))))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xf800000)))) >> 2)) - 1) & ((((((0xf800000)))
) >> 2))) ^ ((((((0xf800000)))) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf800000)))))) -
1) & ((((((0xf800000))))))) ^ ((((((0xf800000)))))))) >>
(1)) != 0) ? 1 : 0))))))
|
1132 LSHIFT(22 * 5 /* IEEE80211_DUR_DS_SIFS */ /* # of 22MHz cycles */,((22 * 5) << ((((u_long)((((((0x7f8000)) - 1) & ((0x7f8000
))) ^ ((0x7f8000)))) >> (16)) != 0) ? 16 + ((((u_long)(
((((((0x7f8000) >> 16)) - 1) & (((0x7f8000) >>
16))) ^ (((0x7f8000) >> 16)))) >> (8)) != 0) ? 8
+ ((((u_long)((((((((0x7f8000) >> 16) >> 8)) - 1
) & ((((0x7f8000) >> 16) >> 8))) ^ ((((0x7f8000
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0x7f8000) >> 16) >> 8) >> 4)) - 1
) & (((((0x7f8000) >> 16) >> 8) >> 4)))
^ (((((0x7f8000) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x7f8000) >> 16)
>> 8) >> 4) >> 2)) - 1) & ((((((0x7f8000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0x7f8000) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7f8000
) >> 16) >> 8) >> 4))) - 1) & ((((((0x7f8000
) >> 16) >> 8) >> 4)))) ^ ((((((0x7f8000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0x7f8000) >> 16) >> 8))) -
1) & (((((0x7f8000) >> 16) >> 8)))) ^ (((((0x7f8000
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x7f8000) >> 16) >> 8)) >>
2)) - 1) & ((((((0x7f8000) >> 16) >> 8)) >>
2))) ^ ((((((0x7f8000) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7f8000
) >> 16) >> 8)))) - 1) & ((((((0x7f8000) >>
16) >> 8))))) ^ ((((((0x7f8000) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x7f8000
) >> 16))) - 1) & ((((0x7f8000) >> 16)))) ^ (
(((0x7f8000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0x7f8000) >> 16)) >> 4)) - 1) & (((
((0x7f8000) >> 16)) >> 4))) ^ (((((0x7f8000) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0x7f8000) >> 16)) >> 4) >> 2)) - 1) &
((((((0x7f8000) >> 16)) >> 4) >> 2))) ^ ((
((((0x7f8000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7f8000) >>
16)) >> 4))) - 1) & ((((((0x7f8000) >> 16)) >>
4)))) ^ ((((((0x7f8000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x7f8000) >>
16)))) - 1) & (((((0x7f8000) >> 16))))) ^ (((((0x7f8000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0x7f8000) >> 16))) >> 2)) - 1) & ((((((
0x7f8000) >> 16))) >> 2))) ^ ((((((0x7f8000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0x7f8000) >> 16))))) - 1) & ((((((0x7f8000
) >> 16)))))) ^ ((((((0x7f8000) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0x7f8000))) - 1) &
(((0x7f8000)))) ^ (((0x7f8000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0x7f8000)) >> 8)) - 1) & ((((0x7f8000
)) >> 8))) ^ ((((0x7f8000)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0x7f8000)) >> 8) >>
4)) - 1) & (((((0x7f8000)) >> 8) >> 4))) ^ (
((((0x7f8000)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0x7f8000)) >> 8) >> 4
) >> 2)) - 1) & ((((((0x7f8000)) >> 8) >>
4) >> 2))) ^ ((((((0x7f8000)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7f8000
)) >> 8) >> 4))) - 1) & ((((((0x7f8000)) >>
8) >> 4)))) ^ ((((((0x7f8000)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x7f8000
)) >> 8))) - 1) & (((((0x7f8000)) >> 8)))) ^ (
((((0x7f8000)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x7f8000)) >> 8)) >> 2)) - 1) &
((((((0x7f8000)) >> 8)) >> 2))) ^ ((((((0x7f8000
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0x7f8000)) >> 8)))) - 1) & ((
((((0x7f8000)) >> 8))))) ^ ((((((0x7f8000)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x7f8000
)))) - 1) & ((((0x7f8000))))) ^ ((((0x7f8000)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0x7f8000))) >> 4)
) - 1) & (((((0x7f8000))) >> 4))) ^ (((((0x7f8000))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0x7f8000))) >> 4) >> 2)) - 1) & ((((((0x7f8000
))) >> 4) >> 2))) ^ ((((((0x7f8000))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0x7f8000))) >> 4))) - 1) & ((((((0x7f8000)))
>> 4)))) ^ ((((((0x7f8000))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x7f8000))))) - 1) &
(((((0x7f8000)))))) ^ (((((0x7f8000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0x7f8000)))) >> 2)) - 1) &
((((((0x7f8000)))) >> 2))) ^ ((((((0x7f8000)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7f8000
)))))) - 1) & ((((((0x7f8000))))))) ^ ((((((0x7f8000)))))
))) >> (1)) != 0) ? 1 : 0))))))
1133 ATW_IFST_SIFS_MASK)((22 * 5) << ((((u_long)((((((0x7f8000)) - 1) & ((0x7f8000
))) ^ ((0x7f8000)))) >> (16)) != 0) ? 16 + ((((u_long)(
((((((0x7f8000) >> 16)) - 1) & (((0x7f8000) >>
16))) ^ (((0x7f8000) >> 16)))) >> (8)) != 0) ? 8
+ ((((u_long)((((((((0x7f8000) >> 16) >> 8)) - 1
) & ((((0x7f8000) >> 16) >> 8))) ^ ((((0x7f8000
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0x7f8000) >> 16) >> 8) >> 4)) - 1
) & (((((0x7f8000) >> 16) >> 8) >> 4)))
^ (((((0x7f8000) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x7f8000) >> 16)
>> 8) >> 4) >> 2)) - 1) & ((((((0x7f8000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0x7f8000) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7f8000
) >> 16) >> 8) >> 4))) - 1) & ((((((0x7f8000
) >> 16) >> 8) >> 4)))) ^ ((((((0x7f8000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0x7f8000) >> 16) >> 8))) -
1) & (((((0x7f8000) >> 16) >> 8)))) ^ (((((0x7f8000
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x7f8000) >> 16) >> 8)) >>
2)) - 1) & ((((((0x7f8000) >> 16) >> 8)) >>
2))) ^ ((((((0x7f8000) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7f8000
) >> 16) >> 8)))) - 1) & ((((((0x7f8000) >>
16) >> 8))))) ^ ((((((0x7f8000) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x7f8000
) >> 16))) - 1) & ((((0x7f8000) >> 16)))) ^ (
(((0x7f8000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0x7f8000) >> 16)) >> 4)) - 1) & (((
((0x7f8000) >> 16)) >> 4))) ^ (((((0x7f8000) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0x7f8000) >> 16)) >> 4) >> 2)) - 1) &
((((((0x7f8000) >> 16)) >> 4) >> 2))) ^ ((
((((0x7f8000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7f8000) >>
16)) >> 4))) - 1) & ((((((0x7f8000) >> 16)) >>
4)))) ^ ((((((0x7f8000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x7f8000) >>
16)))) - 1) & (((((0x7f8000) >> 16))))) ^ (((((0x7f8000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0x7f8000) >> 16))) >> 2)) - 1) & ((((((
0x7f8000) >> 16))) >> 2))) ^ ((((((0x7f8000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0x7f8000) >> 16))))) - 1) & ((((((0x7f8000
) >> 16)))))) ^ ((((((0x7f8000) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0x7f8000))) - 1) &
(((0x7f8000)))) ^ (((0x7f8000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0x7f8000)) >> 8)) - 1) & ((((0x7f8000
)) >> 8))) ^ ((((0x7f8000)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0x7f8000)) >> 8) >>
4)) - 1) & (((((0x7f8000)) >> 8) >> 4))) ^ (
((((0x7f8000)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0x7f8000)) >> 8) >> 4
) >> 2)) - 1) & ((((((0x7f8000)) >> 8) >>
4) >> 2))) ^ ((((((0x7f8000)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7f8000
)) >> 8) >> 4))) - 1) & ((((((0x7f8000)) >>
8) >> 4)))) ^ ((((((0x7f8000)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x7f8000
)) >> 8))) - 1) & (((((0x7f8000)) >> 8)))) ^ (
((((0x7f8000)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x7f8000)) >> 8)) >> 2)) - 1) &
((((((0x7f8000)) >> 8)) >> 2))) ^ ((((((0x7f8000
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0x7f8000)) >> 8)))) - 1) & ((
((((0x7f8000)) >> 8))))) ^ ((((((0x7f8000)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x7f8000
)))) - 1) & ((((0x7f8000))))) ^ ((((0x7f8000)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0x7f8000))) >> 4)
) - 1) & (((((0x7f8000))) >> 4))) ^ (((((0x7f8000))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0x7f8000))) >> 4) >> 2)) - 1) & ((((((0x7f8000
))) >> 4) >> 2))) ^ ((((((0x7f8000))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0x7f8000))) >> 4))) - 1) & ((((((0x7f8000)))
>> 4)))) ^ ((((((0x7f8000))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x7f8000))))) - 1) &
(((((0x7f8000)))))) ^ (((((0x7f8000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0x7f8000)))) >> 2)) - 1) &
((((((0x7f8000)))) >> 2))) ^ ((((((0x7f8000)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7f8000
)))))) - 1) & ((((((0x7f8000))))))) ^ ((((((0x7f8000)))))
))) >> (1)) != 0) ? 1 : 0))))))
|
1134 LSHIFT(IEEE80211_DUR_DS_DIFS, ATW_IFST_DIFS_MASK)(((10 + 2 * 20)) << ((((u_long)((((((0x7e00)) - 1) &
((0x7e00))) ^ ((0x7e00)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0x7e00) >> 16)) - 1) & (((0x7e00) >> 16
))) ^ (((0x7e00) >> 16)))) >> (8)) != 0) ? 8 + ((
((u_long)((((((((0x7e00) >> 16) >> 8)) - 1) &
((((0x7e00) >> 16) >> 8))) ^ ((((0x7e00) >>
16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)((((
(((((0x7e00) >> 16) >> 8) >> 4)) - 1) &
(((((0x7e00) >> 16) >> 8) >> 4))) ^ (((((0x7e00
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0x7e00) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0x7e00) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0x7e00) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0x7e00) >> 16) >> 8) >>
4))) - 1) & ((((((0x7e00) >> 16) >> 8) >>
4)))) ^ ((((((0x7e00) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x7e00
) >> 16) >> 8))) - 1) & (((((0x7e00) >>
16) >> 8)))) ^ (((((0x7e00) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x7e00) >>
16) >> 8)) >> 2)) - 1) & ((((((0x7e00) >>
16) >> 8)) >> 2))) ^ ((((((0x7e00) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0x7e00) >> 16) >> 8)))) - 1) & (((
(((0x7e00) >> 16) >> 8))))) ^ ((((((0x7e00) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0x7e00) >> 16))) - 1) & ((((0x7e00) >>
16)))) ^ ((((0x7e00) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0x7e00) >> 16)) >> 4)) - 1
) & (((((0x7e00) >> 16)) >> 4))) ^ (((((0x7e00
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x7e00) >> 16)) >> 4) >> 2
)) - 1) & ((((((0x7e00) >> 16)) >> 4) >>
2))) ^ ((((((0x7e00) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7e00)
>> 16)) >> 4))) - 1) & ((((((0x7e00) >>
16)) >> 4)))) ^ ((((((0x7e00) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x7e00
) >> 16)))) - 1) & (((((0x7e00) >> 16))))) ^ (
((((0x7e00) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0x7e00) >> 16))) >> 2)) - 1) & (((
(((0x7e00) >> 16))) >> 2))) ^ ((((((0x7e00) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0x7e00) >> 16))))) - 1) & ((((((0x7e00) >>
16)))))) ^ ((((((0x7e00) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0x7e00))) - 1) & (((0x7e00
)))) ^ (((0x7e00))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0x7e00)) >> 8)) - 1) & ((((0x7e00)) >> 8
))) ^ ((((0x7e00)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0x7e00)) >> 8) >> 4)) - 1) &
(((((0x7e00)) >> 8) >> 4))) ^ (((((0x7e00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0x7e00)) >> 8) >> 4) >> 2)) - 1) &
((((((0x7e00)) >> 8) >> 4) >> 2))) ^ (((((
(0x7e00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7e00)) >> 8) >>
4))) - 1) & ((((((0x7e00)) >> 8) >> 4)))) ^ (
(((((0x7e00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0x7e00)) >> 8))) - 1) &
(((((0x7e00)) >> 8)))) ^ (((((0x7e00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0x7e00)) >>
8)) >> 2)) - 1) & ((((((0x7e00)) >> 8)) >>
2))) ^ ((((((0x7e00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7e00)) >> 8
)))) - 1) & ((((((0x7e00)) >> 8))))) ^ ((((((0x7e00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0x7e00)))) - 1) & ((((0x7e00))))) ^ ((((0x7e00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0x7e00))) >>
4)) - 1) & (((((0x7e00))) >> 4))) ^ (((((0x7e00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0x7e00))) >> 4) >> 2)) - 1) & ((((((0x7e00)
)) >> 4) >> 2))) ^ ((((((0x7e00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7e00
))) >> 4))) - 1) & ((((((0x7e00))) >> 4)))) ^
((((((0x7e00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0x7e00))))) - 1) & (((((0x7e00)))
))) ^ (((((0x7e00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0x7e00)))) >> 2)) - 1) & ((((((0x7e00)))
) >> 2))) ^ ((((((0x7e00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x7e00)))))) - 1) &
((((((0x7e00))))))) ^ ((((((0x7e00)))))))) >> (1)) != 0
) ? 1 : 0))))))
|
1135 LSHIFT(0x64 /* IEEE80211_DUR_DS_EIFS */, ATW_IFST_EIFS_MASK)((0x64) << ((((u_long)((((((0x1ff)) - 1) & ((0x1ff)
)) ^ ((0x1ff)))) >> (16)) != 0) ? 16 + ((((u_long)(((((
((0x1ff) >> 16)) - 1) & (((0x1ff) >> 16))) ^ (
((0x1ff) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0x1ff) >> 16) >> 8)) - 1) & ((((0x1ff
) >> 16) >> 8))) ^ ((((0x1ff) >> 16) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0x1ff) >>
16) >> 8) >> 4)) - 1) & (((((0x1ff) >>
16) >> 8) >> 4))) ^ (((((0x1ff) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0x1ff) >> 16) >> 8) >> 4) >> 2))
- 1) & ((((((0x1ff) >> 16) >> 8) >> 4)
>> 2))) ^ ((((((0x1ff) >> 16) >> 8) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0x1ff) >> 16) >> 8) >> 4))) - 1) &
((((((0x1ff) >> 16) >> 8) >> 4)))) ^ (((((
(0x1ff) >> 16) >> 8) >> 4))))) >> (1)
) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x1ff) >> 16) >>
8))) - 1) & (((((0x1ff) >> 16) >> 8)))) ^ ((
(((0x1ff) >> 16) >> 8))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0x1ff) >> 16) >> 8)) >>
2)) - 1) & ((((((0x1ff) >> 16) >> 8)) >>
2))) ^ ((((((0x1ff) >> 16) >> 8)) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x1ff) >>
16) >> 8)))) - 1) & ((((((0x1ff) >> 16) >>
8))))) ^ ((((((0x1ff) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x1ff) >> 16
))) - 1) & ((((0x1ff) >> 16)))) ^ ((((0x1ff) >>
16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0x1ff)
>> 16)) >> 4)) - 1) & (((((0x1ff) >> 16
)) >> 4))) ^ (((((0x1ff) >> 16)) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x1ff) >> 16)) >>
4) >> 2)) - 1) & ((((((0x1ff) >> 16)) >>
4) >> 2))) ^ ((((((0x1ff) >> 16)) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x1ff
) >> 16)) >> 4))) - 1) & ((((((0x1ff) >>
16)) >> 4)))) ^ ((((((0x1ff) >> 16)) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x1ff
) >> 16)))) - 1) & (((((0x1ff) >> 16))))) ^ (
((((0x1ff) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0x1ff) >> 16))) >> 2)) - 1) & ((((
((0x1ff) >> 16))) >> 2))) ^ ((((((0x1ff) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0x1ff) >> 16))))) - 1) & ((((((0x1ff) >>
16)))))) ^ ((((((0x1ff) >> 16))))))) >> (1)) != 0
) ? 1 : 0)))) : ((((u_long)(((((((0x1ff))) - 1) & (((0x1ff
)))) ^ (((0x1ff))))) >> (8)) != 0) ? 8 + ((((u_long)(((
(((((0x1ff)) >> 8)) - 1) & ((((0x1ff)) >> 8))
) ^ ((((0x1ff)) >> 8)))) >> (4)) != 0) ? 4 + ((((
u_long)(((((((((0x1ff)) >> 8) >> 4)) - 1) & (
((((0x1ff)) >> 8) >> 4))) ^ (((((0x1ff)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0x1ff)) >> 8) >> 4) >> 2)) - 1) & (
(((((0x1ff)) >> 8) >> 4) >> 2))) ^ ((((((0x1ff
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0x1ff)) >> 8) >>
4))) - 1) & ((((((0x1ff)) >> 8) >> 4)))) ^ (
(((((0x1ff)) >> 8) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0x1ff)) >> 8))) - 1) &
(((((0x1ff)) >> 8)))) ^ (((((0x1ff)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x1ff)) >> 8)) >>
2)) - 1) & ((((((0x1ff)) >> 8)) >> 2))) ^ ((
((((0x1ff)) >> 8)) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0x1ff)) >> 8)))) - 1) &
((((((0x1ff)) >> 8))))) ^ ((((((0x1ff)) >> 8))))
)) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x1ff)
))) - 1) & ((((0x1ff))))) ^ ((((0x1ff)))))) >> (4))
!= 0) ? 4 + ((((u_long)(((((((((0x1ff))) >> 4)) - 1) &
(((((0x1ff))) >> 4))) ^ (((((0x1ff))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x1ff))) >> 4) >>
2)) - 1) & ((((((0x1ff))) >> 4) >> 2))) ^ ((
((((0x1ff))) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0x1ff))) >> 4))) - 1) &
((((((0x1ff))) >> 4)))) ^ ((((((0x1ff))) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x1ff)
)))) - 1) & (((((0x1ff)))))) ^ (((((0x1ff))))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x1ff)))) >> 2))
- 1) & ((((((0x1ff)))) >> 2))) ^ ((((((0x1ff)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x1ff
)))))) - 1) & ((((((0x1ff))))))) ^ ((((((0x1ff)))))))) >>
(1)) != 0) ? 1 : 0))))))
;
1136
1137 ATW_WRITE(sc, ATW_IFST, ifst)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xE4)), ((ifst
))))
;
1138}
1139
1140void
1141atw_response_times_init(struct atw_softc *sc)
1142{
1143 /* XXX More magic. Relates to ACK timing? The datasheet seems to
1144 * indicate that the MAC expects at least SIFS + MIRT microseconds
1145 * to pass after it transmits a frame that requires a response;
1146 * it waits at most SIFS + MART microseconds for the response.
1147 * Surely this is not the ACK timeout?
1148 */
1149 ATW_WRITE(sc, ATW_RSPT, LSHIFT(0xffff, ATW_RSPT_MART_MASK) |(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xE8)), (((
(0xffff) << ((((u_long)((((((0xffff0000)) - 1) & ((
0xffff0000))) ^ ((0xffff0000)))) >> (16)) != 0) ? 16 + (
(((u_long)(((((((0xffff0000) >> 16)) - 1) & (((0xffff0000
) >> 16))) ^ (((0xffff0000) >> 16)))) >> (8
)) != 0) ? 8 + ((((u_long)((((((((0xffff0000) >> 16) >>
8)) - 1) & ((((0xffff0000) >> 16) >> 8))) ^ (
(((0xffff0000) >> 16) >> 8)))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xffff0000) >> 16) >>
8) >> 4)) - 1) & (((((0xffff0000) >> 16) >>
8) >> 4))) ^ (((((0xffff0000) >> 16) >> 8)
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xffff0000) >> 16) >> 8) >> 4) >> 2
)) - 1) & ((((((0xffff0000) >> 16) >> 8) >>
4) >> 2))) ^ ((((((0xffff0000) >> 16) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xffff0000) >> 16) >> 8) >>
4))) - 1) & ((((((0xffff0000) >> 16) >> 8) >>
4)))) ^ ((((((0xffff0000) >> 16) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xffff0000
) >> 16) >> 8))) - 1) & (((((0xffff0000) >>
16) >> 8)))) ^ (((((0xffff0000) >> 16) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xffff0000
) >> 16) >> 8)) >> 2)) - 1) & ((((((0xffff0000
) >> 16) >> 8)) >> 2))) ^ ((((((0xffff0000)
>> 16) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xffff0000) >> 16) >>
8)))) - 1) & ((((((0xffff0000) >> 16) >> 8))
))) ^ ((((((0xffff0000) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xffff0000) >>
16))) - 1) & ((((0xffff0000) >> 16)))) ^ ((((0xffff0000
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xffff0000) >> 16)) >> 4)) - 1) & (((((0xffff0000
) >> 16)) >> 4))) ^ (((((0xffff0000) >> 16)
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xffff0000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xffff0000) >> 16)) >> 4) >> 2))) ^ (
(((((0xffff0000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff0000) >>
16)) >> 4))) - 1) & ((((((0xffff0000) >> 16)
) >> 4)))) ^ ((((((0xffff0000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xffff0000
) >> 16)))) - 1) & (((((0xffff0000) >> 16))))
) ^ (((((0xffff0000) >> 16)))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0xffff0000) >> 16))) >> 2
)) - 1) & ((((((0xffff0000) >> 16))) >> 2))) ^
((((((0xffff0000) >> 16))) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff0000) >> 16
))))) - 1) & ((((((0xffff0000) >> 16)))))) ^ ((((((
0xffff0000) >> 16))))))) >> (1)) != 0) ? 1 : 0)))
) : ((((u_long)(((((((0xffff0000))) - 1) & (((0xffff0000)
))) ^ (((0xffff0000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xffff0000)) >> 8)) - 1) & ((((0xffff0000)
) >> 8))) ^ ((((0xffff0000)) >> 8)))) >> (4
)) != 0) ? 4 + ((((u_long)(((((((((0xffff0000)) >> 8) >>
4)) - 1) & (((((0xffff0000)) >> 8) >> 4))) ^
(((((0xffff0000)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xffff0000)) >> 8) >>
4) >> 2)) - 1) & ((((((0xffff0000)) >> 8) >>
4) >> 2))) ^ ((((((0xffff0000)) >> 8) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0xffff0000)) >> 8) >> 4))) - 1) & (((
(((0xffff0000)) >> 8) >> 4)))) ^ ((((((0xffff0000
)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)) :
((((u_long)(((((((((0xffff0000)) >> 8))) - 1) & ((
(((0xffff0000)) >> 8)))) ^ (((((0xffff0000)) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xffff0000
)) >> 8)) >> 2)) - 1) & ((((((0xffff0000)) >>
8)) >> 2))) ^ ((((((0xffff0000)) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff0000
)) >> 8)))) - 1) & ((((((0xffff0000)) >> 8)))
)) ^ ((((((0xffff0000)) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xffff0000)))) - 1) & ((((
0xffff0000))))) ^ ((((0xffff0000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xffff0000))) >> 4)) - 1) & (
((((0xffff0000))) >> 4))) ^ (((((0xffff0000))) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xffff0000
))) >> 4) >> 2)) - 1) & ((((((0xffff0000))) >>
4) >> 2))) ^ ((((((0xffff0000))) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff0000
))) >> 4))) - 1) & ((((((0xffff0000))) >> 4))
)) ^ ((((((0xffff0000))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xffff0000))))) - 1) & (((
((0xffff0000)))))) ^ (((((0xffff0000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xffff0000)))) >> 2)) - 1)
& ((((((0xffff0000)))) >> 2))) ^ ((((((0xffff0000)
))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xffff0000)))))) - 1) & ((((((0xffff0000)))))))
^ ((((((0xffff0000)))))))) >> (1)) != 0) ? 1 : 0))))))
| ((0xff) << ((((u_long)((((((0xff00)) - 1) & ((0xff00
))) ^ ((0xff00)))) >> (16)) != 0) ? 16 + ((((u_long)(((
((((0xff00) >> 16)) - 1) & (((0xff00) >> 16))
) ^ (((0xff00) >> 16)))) >> (8)) != 0) ? 8 + ((((
u_long)((((((((0xff00) >> 16) >> 8)) - 1) & (
(((0xff00) >> 16) >> 8))) ^ ((((0xff00) >> 16
) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((
((0xff00) >> 16) >> 8) >> 4)) - 1) & ((
(((0xff00) >> 16) >> 8) >> 4))) ^ (((((0xff00
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xff00) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xff00) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4))) - 1) & ((((((0xff00) >> 16) >> 8) >>
4)))) ^ ((((((0xff00) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16) >> 8))) - 1) & (((((0xff00) >>
16) >> 8)))) ^ (((((0xff00) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00) >>
16) >> 8)) >> 2)) - 1) & ((((((0xff00) >>
16) >> 8)) >> 2))) ^ ((((((0xff00) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16) >> 8)))) - 1) & (((
(((0xff00) >> 16) >> 8))))) ^ ((((((0xff00) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00) >> 16))) - 1) & ((((0xff00) >>
16)))) ^ ((((0xff00) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff00) >> 16)) >> 4)) - 1
) & (((((0xff00) >> 16)) >> 4))) ^ (((((0xff00
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff00) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xff00) >> 16)) >> 4) >>
2))) ^ ((((((0xff00) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)
>> 16)) >> 4))) - 1) & ((((((0xff00) >>
16)) >> 4)))) ^ ((((((0xff00) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16)))) - 1) & (((((0xff00) >> 16))))) ^ (
((((0xff00) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00) >> 16))) >> 2)) - 1) & (((
(((0xff00) >> 16))) >> 2))) ^ ((((((0xff00) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16))))) - 1) & ((((((0xff00) >>
16)))))) ^ ((((((0xff00) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xff00))) - 1) & (((0xff00
)))) ^ (((0xff00))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xff00)) >> 8)) - 1) & ((((0xff00)) >> 8
))) ^ ((((0xff00)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xff00)) >> 8) >> 4)) - 1) &
(((((0xff00)) >> 8) >> 4))) ^ (((((0xff00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff00)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00)) >> 8) >> 4) >> 2))) ^ (((((
(0xff00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8) >>
4))) - 1) & ((((((0xff00)) >> 8) >> 4)))) ^ (
(((((0xff00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff00)) >> 8))) - 1) &
(((((0xff00)) >> 8)))) ^ (((((0xff00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)) >>
8)) >> 2)) - 1) & ((((((0xff00)) >> 8)) >>
2))) ^ ((((((0xff00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8
)))) - 1) & ((((((0xff00)) >> 8))))) ^ ((((((0xff00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00)))) - 1) & ((((0xff00))))) ^ ((((0xff00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff00))) >>
4)) - 1) & (((((0xff00))) >> 4))) ^ (((((0xff00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff00))) >> 4) >> 2)) - 1) & ((((((0xff00)
)) >> 4) >> 2))) ^ ((((((0xff00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
))) >> 4))) - 1) & ((((((0xff00))) >> 4)))) ^
((((((0xff00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00))))) - 1) & (((((0xff00)))
))) ^ (((((0xff00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00)))) >> 2)) - 1) & ((((((0xff00)))
) >> 2))) ^ ((((((0xff00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)))))) - 1) &
((((((0xff00))))))) ^ ((((((0xff00)))))))) >> (1)) != 0
) ? 1 : 0))))))))))
1150 LSHIFT(0xff, ATW_RSPT_MIRT_MASK))(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xE8)), (((
(0xffff) << ((((u_long)((((((0xffff0000)) - 1) & ((
0xffff0000))) ^ ((0xffff0000)))) >> (16)) != 0) ? 16 + (
(((u_long)(((((((0xffff0000) >> 16)) - 1) & (((0xffff0000
) >> 16))) ^ (((0xffff0000) >> 16)))) >> (8
)) != 0) ? 8 + ((((u_long)((((((((0xffff0000) >> 16) >>
8)) - 1) & ((((0xffff0000) >> 16) >> 8))) ^ (
(((0xffff0000) >> 16) >> 8)))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xffff0000) >> 16) >>
8) >> 4)) - 1) & (((((0xffff0000) >> 16) >>
8) >> 4))) ^ (((((0xffff0000) >> 16) >> 8)
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xffff0000) >> 16) >> 8) >> 4) >> 2
)) - 1) & ((((((0xffff0000) >> 16) >> 8) >>
4) >> 2))) ^ ((((((0xffff0000) >> 16) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xffff0000) >> 16) >> 8) >>
4))) - 1) & ((((((0xffff0000) >> 16) >> 8) >>
4)))) ^ ((((((0xffff0000) >> 16) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xffff0000
) >> 16) >> 8))) - 1) & (((((0xffff0000) >>
16) >> 8)))) ^ (((((0xffff0000) >> 16) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xffff0000
) >> 16) >> 8)) >> 2)) - 1) & ((((((0xffff0000
) >> 16) >> 8)) >> 2))) ^ ((((((0xffff0000)
>> 16) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xffff0000) >> 16) >>
8)))) - 1) & ((((((0xffff0000) >> 16) >> 8))
))) ^ ((((((0xffff0000) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xffff0000) >>
16))) - 1) & ((((0xffff0000) >> 16)))) ^ ((((0xffff0000
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xffff0000) >> 16)) >> 4)) - 1) & (((((0xffff0000
) >> 16)) >> 4))) ^ (((((0xffff0000) >> 16)
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xffff0000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xffff0000) >> 16)) >> 4) >> 2))) ^ (
(((((0xffff0000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff0000) >>
16)) >> 4))) - 1) & ((((((0xffff0000) >> 16)
) >> 4)))) ^ ((((((0xffff0000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xffff0000
) >> 16)))) - 1) & (((((0xffff0000) >> 16))))
) ^ (((((0xffff0000) >> 16)))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0xffff0000) >> 16))) >> 2
)) - 1) & ((((((0xffff0000) >> 16))) >> 2))) ^
((((((0xffff0000) >> 16))) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff0000) >> 16
))))) - 1) & ((((((0xffff0000) >> 16)))))) ^ ((((((
0xffff0000) >> 16))))))) >> (1)) != 0) ? 1 : 0)))
) : ((((u_long)(((((((0xffff0000))) - 1) & (((0xffff0000)
))) ^ (((0xffff0000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xffff0000)) >> 8)) - 1) & ((((0xffff0000)
) >> 8))) ^ ((((0xffff0000)) >> 8)))) >> (4
)) != 0) ? 4 + ((((u_long)(((((((((0xffff0000)) >> 8) >>
4)) - 1) & (((((0xffff0000)) >> 8) >> 4))) ^
(((((0xffff0000)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xffff0000)) >> 8) >>
4) >> 2)) - 1) & ((((((0xffff0000)) >> 8) >>
4) >> 2))) ^ ((((((0xffff0000)) >> 8) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0xffff0000)) >> 8) >> 4))) - 1) & (((
(((0xffff0000)) >> 8) >> 4)))) ^ ((((((0xffff0000
)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)) :
((((u_long)(((((((((0xffff0000)) >> 8))) - 1) & ((
(((0xffff0000)) >> 8)))) ^ (((((0xffff0000)) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xffff0000
)) >> 8)) >> 2)) - 1) & ((((((0xffff0000)) >>
8)) >> 2))) ^ ((((((0xffff0000)) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff0000
)) >> 8)))) - 1) & ((((((0xffff0000)) >> 8)))
)) ^ ((((((0xffff0000)) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xffff0000)))) - 1) & ((((
0xffff0000))))) ^ ((((0xffff0000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xffff0000))) >> 4)) - 1) & (
((((0xffff0000))) >> 4))) ^ (((((0xffff0000))) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xffff0000
))) >> 4) >> 2)) - 1) & ((((((0xffff0000))) >>
4) >> 2))) ^ ((((((0xffff0000))) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff0000
))) >> 4))) - 1) & ((((((0xffff0000))) >> 4))
)) ^ ((((((0xffff0000))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xffff0000))))) - 1) & (((
((0xffff0000)))))) ^ (((((0xffff0000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xffff0000)))) >> 2)) - 1)
& ((((((0xffff0000)))) >> 2))) ^ ((((((0xffff0000)
))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xffff0000)))))) - 1) & ((((((0xffff0000)))))))
^ ((((((0xffff0000)))))))) >> (1)) != 0) ? 1 : 0))))))
| ((0xff) << ((((u_long)((((((0xff00)) - 1) & ((0xff00
))) ^ ((0xff00)))) >> (16)) != 0) ? 16 + ((((u_long)(((
((((0xff00) >> 16)) - 1) & (((0xff00) >> 16))
) ^ (((0xff00) >> 16)))) >> (8)) != 0) ? 8 + ((((
u_long)((((((((0xff00) >> 16) >> 8)) - 1) & (
(((0xff00) >> 16) >> 8))) ^ ((((0xff00) >> 16
) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((
((0xff00) >> 16) >> 8) >> 4)) - 1) & ((
(((0xff00) >> 16) >> 8) >> 4))) ^ (((((0xff00
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xff00) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xff00) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4))) - 1) & ((((((0xff00) >> 16) >> 8) >>
4)))) ^ ((((((0xff00) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16) >> 8))) - 1) & (((((0xff00) >>
16) >> 8)))) ^ (((((0xff00) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00) >>
16) >> 8)) >> 2)) - 1) & ((((((0xff00) >>
16) >> 8)) >> 2))) ^ ((((((0xff00) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16) >> 8)))) - 1) & (((
(((0xff00) >> 16) >> 8))))) ^ ((((((0xff00) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00) >> 16))) - 1) & ((((0xff00) >>
16)))) ^ ((((0xff00) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff00) >> 16)) >> 4)) - 1
) & (((((0xff00) >> 16)) >> 4))) ^ (((((0xff00
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff00) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xff00) >> 16)) >> 4) >>
2))) ^ ((((((0xff00) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)
>> 16)) >> 4))) - 1) & ((((((0xff00) >>
16)) >> 4)))) ^ ((((((0xff00) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16)))) - 1) & (((((0xff00) >> 16))))) ^ (
((((0xff00) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00) >> 16))) >> 2)) - 1) & (((
(((0xff00) >> 16))) >> 2))) ^ ((((((0xff00) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16))))) - 1) & ((((((0xff00) >>
16)))))) ^ ((((((0xff00) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xff00))) - 1) & (((0xff00
)))) ^ (((0xff00))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xff00)) >> 8)) - 1) & ((((0xff00)) >> 8
))) ^ ((((0xff00)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xff00)) >> 8) >> 4)) - 1) &
(((((0xff00)) >> 8) >> 4))) ^ (((((0xff00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff00)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00)) >> 8) >> 4) >> 2))) ^ (((((
(0xff00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8) >>
4))) - 1) & ((((((0xff00)) >> 8) >> 4)))) ^ (
(((((0xff00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff00)) >> 8))) - 1) &
(((((0xff00)) >> 8)))) ^ (((((0xff00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)) >>
8)) >> 2)) - 1) & ((((((0xff00)) >> 8)) >>
2))) ^ ((((((0xff00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8
)))) - 1) & ((((((0xff00)) >> 8))))) ^ ((((((0xff00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00)))) - 1) & ((((0xff00))))) ^ ((((0xff00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff00))) >>
4)) - 1) & (((((0xff00))) >> 4))) ^ (((((0xff00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff00))) >> 4) >> 2)) - 1) & ((((((0xff00)
)) >> 4) >> 2))) ^ ((((((0xff00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
))) >> 4))) - 1) & ((((((0xff00))) >> 4)))) ^
((((((0xff00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00))))) - 1) & (((((0xff00)))
))) ^ (((((0xff00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00)))) >> 2)) - 1) & ((((((0xff00)))
) >> 2))) ^ ((((((0xff00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)))))) - 1) &
((((((0xff00))))))) ^ ((((((0xff00)))))))) >> (1)) != 0
) ? 1 : 0))))))))))
;
1151}
1152
1153/* Set up the MMI read/write addresses for the baseband. The Tx/Rx
1154 * engines read and write baseband registers after Rx and before
1155 * Tx, respectively.
1156 */
1157void
1158atw_bbp_io_init(struct atw_softc *sc)
1159{
1160 uint32_t mmiraddr2;
1161
1162 /* XXX The reference driver does this, but is it *really*
1163 * necessary?
1164 */
1165 switch (sc->sc_rev) {
1166 case ATW_REVISION_AB:
1167 case ATW_REVISION_AF:
1168 mmiraddr2 = 0x0;
1169 break;
1170 default:
1171 mmiraddr2 = ATW_READ(sc, ATW_MMIRADDR2)(((sc)->sc_st)->read_4(((sc)->sc_sh), ((0x74))));
1172 mmiraddr2 &=
1173 ~(ATW_MMIRADDR2_PROREXT(1<<15)|ATW_MMIRADDR2_PRORLEN_MASK0x7fff);
1174 break;
1175 }
1176
1177 switch (sc->sc_bbptype) {
1178 case ATW_BBPTYPE_INTERSIL:
1179 ATW_WRITE(sc, ATW_MMIWADDR, ATW_MMIWADDR_INTERSIL)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x6C)), (((
((0x0c) << ((((u_long)((((((0xff00)) - 1) & ((0xff00
))) ^ ((0xff00)))) >> (16)) != 0) ? 16 + ((((u_long)(((
((((0xff00) >> 16)) - 1) & (((0xff00) >> 16))
) ^ (((0xff00) >> 16)))) >> (8)) != 0) ? 8 + ((((
u_long)((((((((0xff00) >> 16) >> 8)) - 1) & (
(((0xff00) >> 16) >> 8))) ^ ((((0xff00) >> 16
) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((
((0xff00) >> 16) >> 8) >> 4)) - 1) & ((
(((0xff00) >> 16) >> 8) >> 4))) ^ (((((0xff00
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xff00) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xff00) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4))) - 1) & ((((((0xff00) >> 16) >> 8) >>
4)))) ^ ((((((0xff00) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16) >> 8))) - 1) & (((((0xff00) >>
16) >> 8)))) ^ (((((0xff00) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00) >>
16) >> 8)) >> 2)) - 1) & ((((((0xff00) >>
16) >> 8)) >> 2))) ^ ((((((0xff00) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16) >> 8)))) - 1) & (((
(((0xff00) >> 16) >> 8))))) ^ ((((((0xff00) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00) >> 16))) - 1) & ((((0xff00) >>
16)))) ^ ((((0xff00) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff00) >> 16)) >> 4)) - 1
) & (((((0xff00) >> 16)) >> 4))) ^ (((((0xff00
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff00) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xff00) >> 16)) >> 4) >>
2))) ^ ((((((0xff00) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)
>> 16)) >> 4))) - 1) & ((((((0xff00) >>
16)) >> 4)))) ^ ((((((0xff00) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16)))) - 1) & (((((0xff00) >> 16))))) ^ (
((((0xff00) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00) >> 16))) >> 2)) - 1) & (((
(((0xff00) >> 16))) >> 2))) ^ ((((((0xff00) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16))))) - 1) & ((((((0xff00) >>
16)))))) ^ ((((((0xff00) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xff00))) - 1) & (((0xff00
)))) ^ (((0xff00))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xff00)) >> 8)) - 1) & ((((0xff00)) >> 8
))) ^ ((((0xff00)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xff00)) >> 8) >> 4)) - 1) &
(((((0xff00)) >> 8) >> 4))) ^ (((((0xff00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff00)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00)) >> 8) >> 4) >> 2))) ^ (((((
(0xff00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8) >>
4))) - 1) & ((((((0xff00)) >> 8) >> 4)))) ^ (
(((((0xff00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff00)) >> 8))) - 1) &
(((((0xff00)) >> 8)))) ^ (((((0xff00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)) >>
8)) >> 2)) - 1) & ((((((0xff00)) >> 8)) >>
2))) ^ ((((((0xff00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8
)))) - 1) & ((((((0xff00)) >> 8))))) ^ ((((((0xff00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00)))) - 1) & ((((0xff00))))) ^ ((((0xff00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff00))) >>
4)) - 1) & (((((0xff00))) >> 4))) ^ (((((0xff00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff00))) >> 4) >> 2)) - 1) & ((((((0xff00)
)) >> 4) >> 2))) ^ ((((((0xff00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
))) >> 4))) - 1) & ((((((0xff00))) >> 4)))) ^
((((((0xff00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00))))) - 1) & (((((0xff00)))
))) ^ (((((0xff00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00)))) >> 2)) - 1) & ((((((0xff00)))
) >> 2))) ^ ((((((0xff00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)))))) - 1) &
((((((0xff00))))))) ^ ((((((0xff00)))))))) >> (1)) != 0
) ? 1 : 0)))))) | ((0x0a) << ((((u_long)((((((0xff)) - 1
) & ((0xff))) ^ ((0xff)))) >> (16)) != 0) ? 16 + ((
((u_long)(((((((0xff) >> 16)) - 1) & (((0xff) >>
16))) ^ (((0xff) >> 16)))) >> (8)) != 0) ? 8 + (
(((u_long)((((((((0xff) >> 16) >> 8)) - 1) & (
(((0xff) >> 16) >> 8))) ^ ((((0xff) >> 16) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >>
16) >> 8) >> 4)) - 1) & (((((0xff) >> 16
) >> 8) >> 4))) ^ (((((0xff) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff) >> 16) >> 8) >> 4) >> 2)) -
1) & ((((((0xff) >> 16) >> 8) >> 4) >>
2))) ^ ((((((0xff) >> 16) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff
) >> 16) >> 8) >> 4)))) ^ ((((((0xff) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff) >> 16) >> 8))) - 1)
& (((((0xff) >> 16) >> 8)))) ^ (((((0xff) >>
16) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff) >> 16) >> 8)) >> 2)) - 1) &
((((((0xff) >> 16) >> 8)) >> 2))) ^ ((((((
0xff) >> 16) >> 8)) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16) >>
8)))) - 1) & ((((((0xff) >> 16) >> 8))))) ^ (
(((((0xff) >> 16) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xff) >> 16))) - 1) &
((((0xff) >> 16)))) ^ ((((0xff) >> 16))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >> 16)) >>
4)) - 1) & (((((0xff) >> 16)) >> 4))) ^ ((((
(0xff) >> 16)) >> 4)))) >> (2)) != 0) ? 2 +
((((u_long)((((((((((0xff) >> 16)) >> 4) >>
2)) - 1) & ((((((0xff) >> 16)) >> 4) >>
2))) ^ ((((((0xff) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16
)) >> 4))) - 1) & ((((((0xff) >> 16)) >>
4)))) ^ ((((((0xff) >> 16)) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff) >> 16))
)) - 1) & (((((0xff) >> 16))))) ^ (((((0xff) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff
) >> 16))) >> 2)) - 1) & ((((((0xff) >>
16))) >> 2))) ^ ((((((0xff) >> 16))) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff)
>> 16))))) - 1) & ((((((0xff) >> 16)))))) ^ (
(((((0xff) >> 16))))))) >> (1)) != 0) ? 1 : 0))))
: ((((u_long)(((((((0xff))) - 1) & (((0xff)))) ^ (((0xff
))))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff)) >>
8)) - 1) & ((((0xff)) >> 8))) ^ ((((0xff)) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff)) >>
8) >> 4)) - 1) & (((((0xff)) >> 8) >> 4
))) ^ (((((0xff)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xff)) >> 8) >> 4)
>> 2)) - 1) & ((((((0xff)) >> 8) >> 4)
>> 2))) ^ ((((((0xff)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
)) >> 8) >> 4))) - 1) & ((((((0xff)) >>
8) >> 4)))) ^ ((((((0xff)) >> 8) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff)) >>
8))) - 1) & (((((0xff)) >> 8)))) ^ (((((0xff)) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff))
>> 8)) >> 2)) - 1) & ((((((0xff)) >> 8
)) >> 2))) ^ ((((((0xff)) >> 8)) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff)) >> 8
)))) - 1) & ((((((0xff)) >> 8))))) ^ ((((((0xff)) >>
8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((
0xff)))) - 1) & ((((0xff))))) ^ ((((0xff)))))) >> (
4)) != 0) ? 4 + ((((u_long)(((((((((0xff))) >> 4)) - 1)
& (((((0xff))) >> 4))) ^ (((((0xff))) >> 4))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff))) >>
4) >> 2)) - 1) & ((((((0xff))) >> 4) >>
2))) ^ ((((((0xff))) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff))) >> 4)))
- 1) & ((((((0xff))) >> 4)))) ^ ((((((0xff))) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff
))))) - 1) & (((((0xff)))))) ^ (((((0xff))))))) >> (
2)) != 0) ? 2 + ((((u_long)((((((((((0xff)))) >> 2)) - 1
) & ((((((0xff)))) >> 2))) ^ ((((((0xff)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
)))))) - 1) & ((((((0xff))))))) ^ ((((((0xff)))))))) >>
(1)) != 0) ? 1 : 0)))))) | ((0x0e) << ((((u_long)(((((
(0xff0000)) - 1) & ((0xff0000))) ^ ((0xff0000)))) >>
(16)) != 0) ? 16 + ((((u_long)(((((((0xff0000) >> 16))
- 1) & (((0xff0000) >> 16))) ^ (((0xff0000) >>
16)))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff0000
) >> 16) >> 8)) - 1) & ((((0xff0000) >>
16) >> 8))) ^ ((((0xff0000) >> 16) >> 8)))
) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff0000) >>
16) >> 8) >> 4)) - 1) & (((((0xff0000) >>
16) >> 8) >> 4))) ^ (((((0xff0000) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff0000) >> 16) >> 8) >> 4) >> 2
)) - 1) & ((((((0xff0000) >> 16) >> 8) >>
4) >> 2))) ^ ((((((0xff0000) >> 16) >> 8) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xff0000) >> 16) >> 8) >> 4))) - 1
) & ((((((0xff0000) >> 16) >> 8) >> 4))
)) ^ ((((((0xff0000) >> 16) >> 8) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000
) >> 16) >> 8))) - 1) & (((((0xff0000) >>
16) >> 8)))) ^ (((((0xff0000) >> 16) >> 8)
)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff0000)
>> 16) >> 8)) >> 2)) - 1) & ((((((0xff0000
) >> 16) >> 8)) >> 2))) ^ ((((((0xff0000) >>
16) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0)
: ((((u_long)((((((((((0xff0000) >> 16) >> 8))))
- 1) & ((((((0xff0000) >> 16) >> 8))))) ^ ((
((((0xff0000) >> 16) >> 8)))))) >> (1)) != 0
) ? 1 : 0))) : ((((u_long)((((((((0xff0000) >> 16))) - 1
) & ((((0xff0000) >> 16)))) ^ ((((0xff0000) >>
16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff0000
) >> 16)) >> 4)) - 1) & (((((0xff0000) >>
16)) >> 4))) ^ (((((0xff0000) >> 16)) >> 4
)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff0000)
>> 16)) >> 4) >> 2)) - 1) & ((((((0xff0000
) >> 16)) >> 4) >> 2))) ^ ((((((0xff0000) >>
16)) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0)
: ((((u_long)((((((((((0xff0000) >> 16)) >> 4)))
- 1) & ((((((0xff0000) >> 16)) >> 4)))) ^ ((
((((0xff0000) >> 16)) >> 4))))) >> (1)) != 0
) ? 1 : 0)) : ((((u_long)(((((((((0xff0000) >> 16)))) -
1) & (((((0xff0000) >> 16))))) ^ (((((0xff0000) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff0000
) >> 16))) >> 2)) - 1) & ((((((0xff0000) >>
16))) >> 2))) ^ ((((((0xff0000) >> 16))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16))))) - 1) & ((((((0xff0000) >> 16))))
)) ^ ((((((0xff0000) >> 16))))))) >> (1)) != 0) ?
1 : 0)))) : ((((u_long)(((((((0xff0000))) - 1) & (((0xff0000
)))) ^ (((0xff0000))))) >> (8)) != 0) ? 8 + ((((u_long)
((((((((0xff0000)) >> 8)) - 1) & ((((0xff0000)) >>
8))) ^ ((((0xff0000)) >> 8)))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff0000)) >> 8) >> 4)) - 1
) & (((((0xff0000)) >> 8) >> 4))) ^ (((((0xff0000
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff0000)) >> 8) >> 4) >> 2)) - 1
) & ((((((0xff0000)) >> 8) >> 4) >> 2))
) ^ ((((((0xff0000)) >> 8) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000)) >>
8) >> 4))) - 1) & ((((((0xff0000)) >> 8) >>
4)))) ^ ((((((0xff0000)) >> 8) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000)) >>
8))) - 1) & (((((0xff0000)) >> 8)))) ^ (((((0xff0000
)) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff0000)) >> 8)) >> 2)) - 1) & ((((((0xff0000
)) >> 8)) >> 2))) ^ ((((((0xff0000)) >> 8))
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0xff0000)) >> 8)))) - 1) & ((((((0xff0000)) >>
8))))) ^ ((((((0xff0000)) >> 8)))))) >> (1)) != 0
) ? 1 : 0))) : ((((u_long)((((((((0xff0000)))) - 1) & (((
(0xff0000))))) ^ ((((0xff0000)))))) >> (4)) != 0) ? 4 +
((((u_long)(((((((((0xff0000))) >> 4)) - 1) & ((((
(0xff0000))) >> 4))) ^ (((((0xff0000))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff0000))) >> 4
) >> 2)) - 1) & ((((((0xff0000))) >> 4) >>
2))) ^ ((((((0xff0000))) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000))) >>
4))) - 1) & ((((((0xff0000))) >> 4)))) ^ ((((((0xff0000
))) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0xff0000))))) - 1) & (((((0xff0000)))))) ^ ((((
(0xff0000))))))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff0000)))) >> 2)) - 1) & ((((((0xff0000)))) >>
2))) ^ ((((((0xff0000)))) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xff0000)))))) - 1) & ((
((((0xff0000))))))) ^ ((((((0xff0000)))))))) >> (1)) !=
0) ? 1 : 0)))))) | ((0x10) << ((((u_long)((((((0xff000000
)) - 1) & ((0xff000000))) ^ ((0xff000000)))) >> (16
)) != 0) ? 16 + ((((u_long)(((((((0xff000000) >> 16)) -
1) & (((0xff000000) >> 16))) ^ (((0xff000000) >>
16)))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff000000
) >> 16) >> 8)) - 1) & ((((0xff000000) >>
16) >> 8))) ^ ((((0xff000000) >> 16) >> 8)
))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff000000)
>> 16) >> 8) >> 4)) - 1) & (((((0xff000000
) >> 16) >> 8) >> 4))) ^ (((((0xff000000) >>
16) >> 8) >> 4)))) >> (2)) != 0) ? 2 + (((
(u_long)((((((((((0xff000000) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xff000000) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xff000000) >> 16
) >> 8) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xff000000) >> 16) >>
8) >> 4))) - 1) & ((((((0xff000000) >> 16) >>
8) >> 4)))) ^ ((((((0xff000000) >> 16) >> 8
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0xff000000) >> 16) >> 8))) - 1) & ((
(((0xff000000) >> 16) >> 8)))) ^ (((((0xff000000)
>> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff000000) >> 16) >> 8)) >> 2))
- 1) & ((((((0xff000000) >> 16) >> 8)) >>
2))) ^ ((((((0xff000000) >> 16) >> 8)) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000
) >> 16) >> 8)))) - 1) & ((((((0xff000000) >>
16) >> 8))))) ^ ((((((0xff000000) >> 16) >>
8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((
0xff000000) >> 16))) - 1) & ((((0xff000000) >>
16)))) ^ ((((0xff000000) >> 16))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xff000000) >> 16)) >>
4)) - 1) & (((((0xff000000) >> 16)) >> 4))) ^
(((((0xff000000) >> 16)) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xff000000) >> 16)) >>
4) >> 2)) - 1) & ((((((0xff000000) >> 16)) >>
4) >> 2))) ^ ((((((0xff000000) >> 16)) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0xff000000) >> 16)) >> 4))) - 1) & ((
((((0xff000000) >> 16)) >> 4)))) ^ ((((((0xff000000
) >> 16)) >> 4))))) >> (1)) != 0) ? 1 : 0))
: ((((u_long)(((((((((0xff000000) >> 16)))) - 1) &
(((((0xff000000) >> 16))))) ^ (((((0xff000000) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000
) >> 16))) >> 2)) - 1) & ((((((0xff000000) >>
16))) >> 2))) ^ ((((((0xff000000) >> 16))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000
) >> 16))))) - 1) & ((((((0xff000000) >> 16))
)))) ^ ((((((0xff000000) >> 16))))))) >> (1)) != 0
) ? 1 : 0)))) : ((((u_long)(((((((0xff000000))) - 1) & ((
(0xff000000)))) ^ (((0xff000000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0xff000000)) >> 8)) - 1) & ((((
0xff000000)) >> 8))) ^ ((((0xff000000)) >> 8)))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff000000)) >> 8
) >> 4)) - 1) & (((((0xff000000)) >> 8) >>
4))) ^ (((((0xff000000)) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000)) >> 8
) >> 4) >> 2)) - 1) & ((((((0xff000000)) >>
8) >> 4) >> 2))) ^ ((((((0xff000000)) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xff000000)) >> 8) >> 4))) - 1
) & ((((((0xff000000)) >> 8) >> 4)))) ^ (((((
(0xff000000)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff000000)) >> 8))) -
1) & (((((0xff000000)) >> 8)))) ^ (((((0xff000000)
) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((
((((0xff000000)) >> 8)) >> 2)) - 1) & ((((((0xff000000
)) >> 8)) >> 2))) ^ ((((((0xff000000)) >> 8
)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(
(((((((((0xff000000)) >> 8)))) - 1) & ((((((0xff000000
)) >> 8))))) ^ ((((((0xff000000)) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff000000)))) - 1
) & ((((0xff000000))))) ^ ((((0xff000000)))))) >> (
4)) != 0) ? 4 + ((((u_long)(((((((((0xff000000))) >> 4)
) - 1) & (((((0xff000000))) >> 4))) ^ (((((0xff000000
))) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff000000))) >> 4) >> 2)) - 1) & ((((((
0xff000000))) >> 4) >> 2))) ^ ((((((0xff000000)))
>> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((
((u_long)((((((((((0xff000000))) >> 4))) - 1) & (((
(((0xff000000))) >> 4)))) ^ ((((((0xff000000))) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff000000
))))) - 1) & (((((0xff000000)))))) ^ (((((0xff000000)))))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000)
))) >> 2)) - 1) & ((((((0xff000000)))) >> 2))
) ^ ((((((0xff000000)))) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xff000000)))))) - 1) & ((
((((0xff000000))))))) ^ ((((((0xff000000)))))))) >> (1)
) != 0) ? 1 : 0)))))))))))
;
1180 ATW_WRITE(sc, ATW_MMIRADDR1, ATW_MMIRADDR1_INTERSIL)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x70)), (((
((0x7c) << ((((u_long)((((((0xff00)) - 1) & ((0xff00
))) ^ ((0xff00)))) >> (16)) != 0) ? 16 + ((((u_long)(((
((((0xff00) >> 16)) - 1) & (((0xff00) >> 16))
) ^ (((0xff00) >> 16)))) >> (8)) != 0) ? 8 + ((((
u_long)((((((((0xff00) >> 16) >> 8)) - 1) & (
(((0xff00) >> 16) >> 8))) ^ ((((0xff00) >> 16
) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((
((0xff00) >> 16) >> 8) >> 4)) - 1) & ((
(((0xff00) >> 16) >> 8) >> 4))) ^ (((((0xff00
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xff00) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xff00) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4))) - 1) & ((((((0xff00) >> 16) >> 8) >>
4)))) ^ ((((((0xff00) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16) >> 8))) - 1) & (((((0xff00) >>
16) >> 8)))) ^ (((((0xff00) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00) >>
16) >> 8)) >> 2)) - 1) & ((((((0xff00) >>
16) >> 8)) >> 2))) ^ ((((((0xff00) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16) >> 8)))) - 1) & (((
(((0xff00) >> 16) >> 8))))) ^ ((((((0xff00) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00) >> 16))) - 1) & ((((0xff00) >>
16)))) ^ ((((0xff00) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff00) >> 16)) >> 4)) - 1
) & (((((0xff00) >> 16)) >> 4))) ^ (((((0xff00
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff00) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xff00) >> 16)) >> 4) >>
2))) ^ ((((((0xff00) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)
>> 16)) >> 4))) - 1) & ((((((0xff00) >>
16)) >> 4)))) ^ ((((((0xff00) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16)))) - 1) & (((((0xff00) >> 16))))) ^ (
((((0xff00) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00) >> 16))) >> 2)) - 1) & (((
(((0xff00) >> 16))) >> 2))) ^ ((((((0xff00) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16))))) - 1) & ((((((0xff00) >>
16)))))) ^ ((((((0xff00) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xff00))) - 1) & (((0xff00
)))) ^ (((0xff00))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xff00)) >> 8)) - 1) & ((((0xff00)) >> 8
))) ^ ((((0xff00)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xff00)) >> 8) >> 4)) - 1) &
(((((0xff00)) >> 8) >> 4))) ^ (((((0xff00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff00)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00)) >> 8) >> 4) >> 2))) ^ (((((
(0xff00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8) >>
4))) - 1) & ((((((0xff00)) >> 8) >> 4)))) ^ (
(((((0xff00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff00)) >> 8))) - 1) &
(((((0xff00)) >> 8)))) ^ (((((0xff00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)) >>
8)) >> 2)) - 1) & ((((((0xff00)) >> 8)) >>
2))) ^ ((((((0xff00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8
)))) - 1) & ((((((0xff00)) >> 8))))) ^ ((((((0xff00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00)))) - 1) & ((((0xff00))))) ^ ((((0xff00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff00))) >>
4)) - 1) & (((((0xff00))) >> 4))) ^ (((((0xff00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff00))) >> 4) >> 2)) - 1) & ((((((0xff00)
)) >> 4) >> 2))) ^ ((((((0xff00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
))) >> 4))) - 1) & ((((((0xff00))) >> 4)))) ^
((((((0xff00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00))))) - 1) & (((((0xff00)))
))) ^ (((((0xff00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00)))) >> 2)) - 1) & ((((((0xff00)))
) >> 2))) ^ ((((((0xff00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)))))) - 1) &
((((((0xff00))))))) ^ ((((((0xff00)))))))) >> (1)) != 0
) ? 1 : 0)))))) | ((0x7e) << ((((u_long)((((((0xff)) - 1
) & ((0xff))) ^ ((0xff)))) >> (16)) != 0) ? 16 + ((
((u_long)(((((((0xff) >> 16)) - 1) & (((0xff) >>
16))) ^ (((0xff) >> 16)))) >> (8)) != 0) ? 8 + (
(((u_long)((((((((0xff) >> 16) >> 8)) - 1) & (
(((0xff) >> 16) >> 8))) ^ ((((0xff) >> 16) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >>
16) >> 8) >> 4)) - 1) & (((((0xff) >> 16
) >> 8) >> 4))) ^ (((((0xff) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff) >> 16) >> 8) >> 4) >> 2)) -
1) & ((((((0xff) >> 16) >> 8) >> 4) >>
2))) ^ ((((((0xff) >> 16) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff
) >> 16) >> 8) >> 4)))) ^ ((((((0xff) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff) >> 16) >> 8))) - 1)
& (((((0xff) >> 16) >> 8)))) ^ (((((0xff) >>
16) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff) >> 16) >> 8)) >> 2)) - 1) &
((((((0xff) >> 16) >> 8)) >> 2))) ^ ((((((
0xff) >> 16) >> 8)) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16) >>
8)))) - 1) & ((((((0xff) >> 16) >> 8))))) ^ (
(((((0xff) >> 16) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xff) >> 16))) - 1) &
((((0xff) >> 16)))) ^ ((((0xff) >> 16))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >> 16)) >>
4)) - 1) & (((((0xff) >> 16)) >> 4))) ^ ((((
(0xff) >> 16)) >> 4)))) >> (2)) != 0) ? 2 +
((((u_long)((((((((((0xff) >> 16)) >> 4) >>
2)) - 1) & ((((((0xff) >> 16)) >> 4) >>
2))) ^ ((((((0xff) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16
)) >> 4))) - 1) & ((((((0xff) >> 16)) >>
4)))) ^ ((((((0xff) >> 16)) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff) >> 16))
)) - 1) & (((((0xff) >> 16))))) ^ (((((0xff) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff
) >> 16))) >> 2)) - 1) & ((((((0xff) >>
16))) >> 2))) ^ ((((((0xff) >> 16))) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff)
>> 16))))) - 1) & ((((((0xff) >> 16)))))) ^ (
(((((0xff) >> 16))))))) >> (1)) != 0) ? 1 : 0))))
: ((((u_long)(((((((0xff))) - 1) & (((0xff)))) ^ (((0xff
))))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff)) >>
8)) - 1) & ((((0xff)) >> 8))) ^ ((((0xff)) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff)) >>
8) >> 4)) - 1) & (((((0xff)) >> 8) >> 4
))) ^ (((((0xff)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xff)) >> 8) >> 4)
>> 2)) - 1) & ((((((0xff)) >> 8) >> 4)
>> 2))) ^ ((((((0xff)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
)) >> 8) >> 4))) - 1) & ((((((0xff)) >>
8) >> 4)))) ^ ((((((0xff)) >> 8) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff)) >>
8))) - 1) & (((((0xff)) >> 8)))) ^ (((((0xff)) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff))
>> 8)) >> 2)) - 1) & ((((((0xff)) >> 8
)) >> 2))) ^ ((((((0xff)) >> 8)) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff)) >> 8
)))) - 1) & ((((((0xff)) >> 8))))) ^ ((((((0xff)) >>
8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((
0xff)))) - 1) & ((((0xff))))) ^ ((((0xff)))))) >> (
4)) != 0) ? 4 + ((((u_long)(((((((((0xff))) >> 4)) - 1)
& (((((0xff))) >> 4))) ^ (((((0xff))) >> 4))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff))) >>
4) >> 2)) - 1) & ((((((0xff))) >> 4) >>
2))) ^ ((((((0xff))) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff))) >> 4)))
- 1) & ((((((0xff))) >> 4)))) ^ ((((((0xff))) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff
))))) - 1) & (((((0xff)))))) ^ (((((0xff))))))) >> (
2)) != 0) ? 2 + ((((u_long)((((((((((0xff)))) >> 2)) - 1
) & ((((((0xff)))) >> 2))) ^ ((((((0xff)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
)))))) - 1) & ((((((0xff))))))) ^ ((((((0xff)))))))) >>
(1)) != 0) ? 1 : 0)))))))))))
;
1181 mmiraddr2 |= ATW_MMIRADDR2_INTERSIL(((0x0) << ((((u_long)((((((0xff000000)) - 1) & ((0xff000000
))) ^ ((0xff000000)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0xff000000) >> 16)) - 1) & (((0xff000000) >>
16))) ^ (((0xff000000) >> 16)))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0xff000000) >> 16) >> 8))
- 1) & ((((0xff000000) >> 16) >> 8))) ^ ((((
0xff000000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0xff000000) >> 16) >> 8)
>> 4)) - 1) & (((((0xff000000) >> 16) >>
8) >> 4))) ^ (((((0xff000000) >> 16) >> 8)
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff000000) >> 16) >> 8) >> 4) >> 2
)) - 1) & ((((((0xff000000) >> 16) >> 8) >>
4) >> 2))) ^ ((((((0xff000000) >> 16) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xff000000) >> 16) >> 8) >>
4))) - 1) & ((((((0xff000000) >> 16) >> 8) >>
4)))) ^ ((((((0xff000000) >> 16) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff000000
) >> 16) >> 8))) - 1) & (((((0xff000000) >>
16) >> 8)))) ^ (((((0xff000000) >> 16) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000
) >> 16) >> 8)) >> 2)) - 1) & ((((((0xff000000
) >> 16) >> 8)) >> 2))) ^ ((((((0xff000000)
>> 16) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xff000000) >> 16) >>
8)))) - 1) & ((((((0xff000000) >> 16) >> 8))
))) ^ ((((((0xff000000) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff000000) >>
16))) - 1) & ((((0xff000000) >> 16)))) ^ ((((0xff000000
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xff000000) >> 16)) >> 4)) - 1) & (((((0xff000000
) >> 16)) >> 4))) ^ (((((0xff000000) >> 16)
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff000000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff000000) >> 16)) >> 4) >> 2))) ^ (
(((((0xff000000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000) >>
16)) >> 4))) - 1) & ((((((0xff000000) >> 16)
) >> 4)))) ^ ((((((0xff000000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff000000
) >> 16)))) - 1) & (((((0xff000000) >> 16))))
) ^ (((((0xff000000) >> 16)))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0xff000000) >> 16))) >> 2
)) - 1) & ((((((0xff000000) >> 16))) >> 2))) ^
((((((0xff000000) >> 16))) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000) >> 16
))))) - 1) & ((((((0xff000000) >> 16)))))) ^ ((((((
0xff000000) >> 16))))))) >> (1)) != 0) ? 1 : 0)))
) : ((((u_long)(((((((0xff000000))) - 1) & (((0xff000000)
))) ^ (((0xff000000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xff000000)) >> 8)) - 1) & ((((0xff000000)
) >> 8))) ^ ((((0xff000000)) >> 8)))) >> (4
)) != 0) ? 4 + ((((u_long)(((((((((0xff000000)) >> 8) >>
4)) - 1) & (((((0xff000000)) >> 8) >> 4))) ^
(((((0xff000000)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xff000000)) >> 8) >>
4) >> 2)) - 1) & ((((((0xff000000)) >> 8) >>
4) >> 2))) ^ ((((((0xff000000)) >> 8) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0xff000000)) >> 8) >> 4))) - 1) & (((
(((0xff000000)) >> 8) >> 4)))) ^ ((((((0xff000000
)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)) :
((((u_long)(((((((((0xff000000)) >> 8))) - 1) & ((
(((0xff000000)) >> 8)))) ^ (((((0xff000000)) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000
)) >> 8)) >> 2)) - 1) & ((((((0xff000000)) >>
8)) >> 2))) ^ ((((((0xff000000)) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000
)) >> 8)))) - 1) & ((((((0xff000000)) >> 8)))
)) ^ ((((((0xff000000)) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xff000000)))) - 1) & ((((
0xff000000))))) ^ ((((0xff000000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff000000))) >> 4)) - 1) & (
((((0xff000000))) >> 4))) ^ (((((0xff000000))) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000
))) >> 4) >> 2)) - 1) & ((((((0xff000000))) >>
4) >> 2))) ^ ((((((0xff000000))) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000
))) >> 4))) - 1) & ((((((0xff000000))) >> 4))
)) ^ ((((((0xff000000))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xff000000))))) - 1) & (((
((0xff000000)))))) ^ (((((0xff000000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xff000000)))) >> 2)) - 1)
& ((((((0xff000000)))) >> 2))) ^ ((((((0xff000000)
))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xff000000)))))) - 1) & ((((((0xff000000)))))))
^ ((((((0xff000000)))))))) >> (1)) != 0) ? 1 : 0))))))
| ((0x10) << ((((u_long)((((((0xff0000)) - 1) & ((
0xff0000))) ^ ((0xff0000)))) >> (16)) != 0) ? 16 + ((((
u_long)(((((((0xff0000) >> 16)) - 1) & (((0xff0000)
>> 16))) ^ (((0xff0000) >> 16)))) >> (8)) !=
0) ? 8 + ((((u_long)((((((((0xff0000) >> 16) >> 8
)) - 1) & ((((0xff0000) >> 16) >> 8))) ^ ((((
0xff0000) >> 16) >> 8)))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff0000) >> 16) >> 8) >>
4)) - 1) & (((((0xff0000) >> 16) >> 8) >>
4))) ^ (((((0xff0000) >> 16) >> 8) >> 4)))
) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff0000) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xff0000) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4)))) ^ ((((((0xff0000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff0000) >> 16) >> 8))) -
1) & (((((0xff0000) >> 16) >> 8)))) ^ (((((0xff0000
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000) >> 16) >> 8)) >>
2)) - 1) & ((((((0xff0000) >> 16) >> 8)) >>
2))) ^ ((((((0xff0000) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8)))) - 1) & ((((((0xff0000) >>
16) >> 8))))) ^ ((((((0xff0000) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
) >> 16))) - 1) & ((((0xff0000) >> 16)))) ^ (
(((0xff0000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff0000) >> 16)) >> 4)) - 1) & (((
((0xff0000) >> 16)) >> 4))) ^ (((((0xff0000) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff0000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff0000) >> 16)) >> 4) >> 2))) ^ ((
((((0xff0000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000) >>
16)) >> 4))) - 1) & ((((((0xff0000) >> 16)) >>
4)))) ^ ((((((0xff0000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000) >>
16)))) - 1) & (((((0xff0000) >> 16))))) ^ (((((0xff0000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0xff0000) >> 16))) >> 2)) - 1) & ((((((
0xff0000) >> 16))) >> 2))) ^ ((((((0xff0000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff0000) >> 16))))) - 1) & ((((((0xff0000
) >> 16)))))) ^ ((((((0xff0000) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff0000))) - 1) &
(((0xff0000)))) ^ (((0xff0000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0xff0000)) >> 8)) - 1) & ((((0xff0000
)) >> 8))) ^ ((((0xff0000)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xff0000)) >> 8) >>
4)) - 1) & (((((0xff0000)) >> 8) >> 4))) ^ (
((((0xff0000)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff0000)) >> 8) >> 4
) >> 2)) - 1) & ((((((0xff0000)) >> 8) >>
4) >> 2))) ^ ((((((0xff0000)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
)) >> 8) >> 4))) - 1) & ((((((0xff0000)) >>
8) >> 4)))) ^ ((((((0xff0000)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000
)) >> 8))) - 1) & (((((0xff0000)) >> 8)))) ^ (
((((0xff0000)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000)) >> 8)) >> 2)) - 1) &
((((((0xff0000)) >> 8)) >> 2))) ^ ((((((0xff0000
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff0000)) >> 8)))) - 1) & ((
((((0xff0000)) >> 8))))) ^ ((((((0xff0000)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
)))) - 1) & ((((0xff0000))))) ^ ((((0xff0000)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff0000))) >> 4)
) - 1) & (((((0xff0000))) >> 4))) ^ (((((0xff0000))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff0000))) >> 4) >> 2)) - 1) & ((((((0xff0000
))) >> 4) >> 2))) ^ ((((((0xff0000))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0xff0000))) >> 4))) - 1) & ((((((0xff0000)))
>> 4)))) ^ ((((((0xff0000))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000))))) - 1) &
(((((0xff0000)))))) ^ (((((0xff0000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xff0000)))) >> 2)) - 1) &
((((((0xff0000)))) >> 2))) ^ ((((((0xff0000)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
)))))) - 1) & ((((((0xff0000))))))) ^ ((((((0xff0000)))))
))) >> (1)) != 0) ? 1 : 0)))))))
;
1182 break;
1183 case ATW_BBPTYPE_MARVEL:
1184 /* TBD find out the Marvel settings. */
1185 break;
1186 case ATW_BBPTYPE_RFMD:
1187 default:
1188 ATW_WRITE(sc, ATW_MMIWADDR, ATW_MMIWADDR_RFMD)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x6C)), (((
((0x80|0x11) << ((((u_long)((((((0xff00)) - 1) & ((
0xff00))) ^ ((0xff00)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0xff00) >> 16)) - 1) & (((0xff00) >> 16
))) ^ (((0xff00) >> 16)))) >> (8)) != 0) ? 8 + ((
((u_long)((((((((0xff00) >> 16) >> 8)) - 1) &
((((0xff00) >> 16) >> 8))) ^ ((((0xff00) >>
16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)((((
(((((0xff00) >> 16) >> 8) >> 4)) - 1) &
(((((0xff00) >> 16) >> 8) >> 4))) ^ (((((0xff00
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xff00) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xff00) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4))) - 1) & ((((((0xff00) >> 16) >> 8) >>
4)))) ^ ((((((0xff00) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16) >> 8))) - 1) & (((((0xff00) >>
16) >> 8)))) ^ (((((0xff00) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00) >>
16) >> 8)) >> 2)) - 1) & ((((((0xff00) >>
16) >> 8)) >> 2))) ^ ((((((0xff00) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16) >> 8)))) - 1) & (((
(((0xff00) >> 16) >> 8))))) ^ ((((((0xff00) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00) >> 16))) - 1) & ((((0xff00) >>
16)))) ^ ((((0xff00) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff00) >> 16)) >> 4)) - 1
) & (((((0xff00) >> 16)) >> 4))) ^ (((((0xff00
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff00) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xff00) >> 16)) >> 4) >>
2))) ^ ((((((0xff00) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)
>> 16)) >> 4))) - 1) & ((((((0xff00) >>
16)) >> 4)))) ^ ((((((0xff00) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16)))) - 1) & (((((0xff00) >> 16))))) ^ (
((((0xff00) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00) >> 16))) >> 2)) - 1) & (((
(((0xff00) >> 16))) >> 2))) ^ ((((((0xff00) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16))))) - 1) & ((((((0xff00) >>
16)))))) ^ ((((((0xff00) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xff00))) - 1) & (((0xff00
)))) ^ (((0xff00))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xff00)) >> 8)) - 1) & ((((0xff00)) >> 8
))) ^ ((((0xff00)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xff00)) >> 8) >> 4)) - 1) &
(((((0xff00)) >> 8) >> 4))) ^ (((((0xff00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff00)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00)) >> 8) >> 4) >> 2))) ^ (((((
(0xff00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8) >>
4))) - 1) & ((((((0xff00)) >> 8) >> 4)))) ^ (
(((((0xff00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff00)) >> 8))) - 1) &
(((((0xff00)) >> 8)))) ^ (((((0xff00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)) >>
8)) >> 2)) - 1) & ((((((0xff00)) >> 8)) >>
2))) ^ ((((((0xff00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8
)))) - 1) & ((((((0xff00)) >> 8))))) ^ ((((((0xff00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00)))) - 1) & ((((0xff00))))) ^ ((((0xff00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff00))) >>
4)) - 1) & (((((0xff00))) >> 4))) ^ (((((0xff00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff00))) >> 4) >> 2)) - 1) & ((((((0xff00)
)) >> 4) >> 2))) ^ ((((((0xff00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
))) >> 4))) - 1) & ((((((0xff00))) >> 4)))) ^
((((((0xff00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00))))) - 1) & (((((0xff00)))
))) ^ (((((0xff00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00)))) >> 2)) - 1) & ((((((0xff00)))
) >> 2))) ^ ((((((0xff00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)))))) - 1) &
((((((0xff00))))))) ^ ((((((0xff00)))))))) >> (1)) != 0
) ? 1 : 0)))))) | ((0x01) << ((((u_long)((((((0xff)) - 1
) & ((0xff))) ^ ((0xff)))) >> (16)) != 0) ? 16 + ((
((u_long)(((((((0xff) >> 16)) - 1) & (((0xff) >>
16))) ^ (((0xff) >> 16)))) >> (8)) != 0) ? 8 + (
(((u_long)((((((((0xff) >> 16) >> 8)) - 1) & (
(((0xff) >> 16) >> 8))) ^ ((((0xff) >> 16) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >>
16) >> 8) >> 4)) - 1) & (((((0xff) >> 16
) >> 8) >> 4))) ^ (((((0xff) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff) >> 16) >> 8) >> 4) >> 2)) -
1) & ((((((0xff) >> 16) >> 8) >> 4) >>
2))) ^ ((((((0xff) >> 16) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff
) >> 16) >> 8) >> 4)))) ^ ((((((0xff) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff) >> 16) >> 8))) - 1)
& (((((0xff) >> 16) >> 8)))) ^ (((((0xff) >>
16) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff) >> 16) >> 8)) >> 2)) - 1) &
((((((0xff) >> 16) >> 8)) >> 2))) ^ ((((((
0xff) >> 16) >> 8)) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16) >>
8)))) - 1) & ((((((0xff) >> 16) >> 8))))) ^ (
(((((0xff) >> 16) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xff) >> 16))) - 1) &
((((0xff) >> 16)))) ^ ((((0xff) >> 16))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >> 16)) >>
4)) - 1) & (((((0xff) >> 16)) >> 4))) ^ ((((
(0xff) >> 16)) >> 4)))) >> (2)) != 0) ? 2 +
((((u_long)((((((((((0xff) >> 16)) >> 4) >>
2)) - 1) & ((((((0xff) >> 16)) >> 4) >>
2))) ^ ((((((0xff) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16
)) >> 4))) - 1) & ((((((0xff) >> 16)) >>
4)))) ^ ((((((0xff) >> 16)) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff) >> 16))
)) - 1) & (((((0xff) >> 16))))) ^ (((((0xff) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff
) >> 16))) >> 2)) - 1) & ((((((0xff) >>
16))) >> 2))) ^ ((((((0xff) >> 16))) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff)
>> 16))))) - 1) & ((((((0xff) >> 16)))))) ^ (
(((((0xff) >> 16))))))) >> (1)) != 0) ? 1 : 0))))
: ((((u_long)(((((((0xff))) - 1) & (((0xff)))) ^ (((0xff
))))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff)) >>
8)) - 1) & ((((0xff)) >> 8))) ^ ((((0xff)) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff)) >>
8) >> 4)) - 1) & (((((0xff)) >> 8) >> 4
))) ^ (((((0xff)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xff)) >> 8) >> 4)
>> 2)) - 1) & ((((((0xff)) >> 8) >> 4)
>> 2))) ^ ((((((0xff)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
)) >> 8) >> 4))) - 1) & ((((((0xff)) >>
8) >> 4)))) ^ ((((((0xff)) >> 8) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff)) >>
8))) - 1) & (((((0xff)) >> 8)))) ^ (((((0xff)) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff))
>> 8)) >> 2)) - 1) & ((((((0xff)) >> 8
)) >> 2))) ^ ((((((0xff)) >> 8)) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff)) >> 8
)))) - 1) & ((((((0xff)) >> 8))))) ^ ((((((0xff)) >>
8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((
0xff)))) - 1) & ((((0xff))))) ^ ((((0xff)))))) >> (
4)) != 0) ? 4 + ((((u_long)(((((((((0xff))) >> 4)) - 1)
& (((((0xff))) >> 4))) ^ (((((0xff))) >> 4))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff))) >>
4) >> 2)) - 1) & ((((((0xff))) >> 4) >>
2))) ^ ((((((0xff))) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff))) >> 4)))
- 1) & ((((((0xff))) >> 4)))) ^ ((((((0xff))) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff
))))) - 1) & (((((0xff)))))) ^ (((((0xff))))))) >> (
2)) != 0) ? 2 + ((((u_long)((((((((((0xff)))) >> 2)) - 1
) & ((((((0xff)))) >> 2))) ^ ((((((0xff)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
)))))) - 1) & ((((((0xff))))))) ^ ((((((0xff)))))))) >>
(1)) != 0) ? 1 : 0)))))))))))
;
1189 ATW_WRITE(sc, ATW_MMIRADDR1, ATW_MMIRADDR1_RFMD)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x70)), (((
((0x03) << ((((u_long)((((((0xff00)) - 1) & ((0xff00
))) ^ ((0xff00)))) >> (16)) != 0) ? 16 + ((((u_long)(((
((((0xff00) >> 16)) - 1) & (((0xff00) >> 16))
) ^ (((0xff00) >> 16)))) >> (8)) != 0) ? 8 + ((((
u_long)((((((((0xff00) >> 16) >> 8)) - 1) & (
(((0xff00) >> 16) >> 8))) ^ ((((0xff00) >> 16
) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((
((0xff00) >> 16) >> 8) >> 4)) - 1) & ((
(((0xff00) >> 16) >> 8) >> 4))) ^ (((((0xff00
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xff00) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xff00) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4))) - 1) & ((((((0xff00) >> 16) >> 8) >>
4)))) ^ ((((((0xff00) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16) >> 8))) - 1) & (((((0xff00) >>
16) >> 8)))) ^ (((((0xff00) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00) >>
16) >> 8)) >> 2)) - 1) & ((((((0xff00) >>
16) >> 8)) >> 2))) ^ ((((((0xff00) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16) >> 8)))) - 1) & (((
(((0xff00) >> 16) >> 8))))) ^ ((((((0xff00) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00) >> 16))) - 1) & ((((0xff00) >>
16)))) ^ ((((0xff00) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff00) >> 16)) >> 4)) - 1
) & (((((0xff00) >> 16)) >> 4))) ^ (((((0xff00
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff00) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xff00) >> 16)) >> 4) >>
2))) ^ ((((((0xff00) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)
>> 16)) >> 4))) - 1) & ((((((0xff00) >>
16)) >> 4)))) ^ ((((((0xff00) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16)))) - 1) & (((((0xff00) >> 16))))) ^ (
((((0xff00) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00) >> 16))) >> 2)) - 1) & (((
(((0xff00) >> 16))) >> 2))) ^ ((((((0xff00) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16))))) - 1) & ((((((0xff00) >>
16)))))) ^ ((((((0xff00) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xff00))) - 1) & (((0xff00
)))) ^ (((0xff00))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xff00)) >> 8)) - 1) & ((((0xff00)) >> 8
))) ^ ((((0xff00)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xff00)) >> 8) >> 4)) - 1) &
(((((0xff00)) >> 8) >> 4))) ^ (((((0xff00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff00)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00)) >> 8) >> 4) >> 2))) ^ (((((
(0xff00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8) >>
4))) - 1) & ((((((0xff00)) >> 8) >> 4)))) ^ (
(((((0xff00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff00)) >> 8))) - 1) &
(((((0xff00)) >> 8)))) ^ (((((0xff00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)) >>
8)) >> 2)) - 1) & ((((((0xff00)) >> 8)) >>
2))) ^ ((((((0xff00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8
)))) - 1) & ((((((0xff00)) >> 8))))) ^ ((((((0xff00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00)))) - 1) & ((((0xff00))))) ^ ((((0xff00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff00))) >>
4)) - 1) & (((((0xff00))) >> 4))) ^ (((((0xff00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff00))) >> 4) >> 2)) - 1) & ((((((0xff00)
)) >> 4) >> 2))) ^ ((((((0xff00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
))) >> 4))) - 1) & ((((((0xff00))) >> 4)))) ^
((((((0xff00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00))))) - 1) & (((((0xff00)))
))) ^ (((((0xff00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00)))) >> 2)) - 1) & ((((((0xff00)))
) >> 2))) ^ ((((((0xff00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)))))) - 1) &
((((((0xff00))))))) ^ ((((((0xff00)))))))) >> (1)) != 0
) ? 1 : 0)))))) | ((0x01) << ((((u_long)((((((0xff)) - 1
) & ((0xff))) ^ ((0xff)))) >> (16)) != 0) ? 16 + ((
((u_long)(((((((0xff) >> 16)) - 1) & (((0xff) >>
16))) ^ (((0xff) >> 16)))) >> (8)) != 0) ? 8 + (
(((u_long)((((((((0xff) >> 16) >> 8)) - 1) & (
(((0xff) >> 16) >> 8))) ^ ((((0xff) >> 16) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >>
16) >> 8) >> 4)) - 1) & (((((0xff) >> 16
) >> 8) >> 4))) ^ (((((0xff) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff) >> 16) >> 8) >> 4) >> 2)) -
1) & ((((((0xff) >> 16) >> 8) >> 4) >>
2))) ^ ((((((0xff) >> 16) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff
) >> 16) >> 8) >> 4)))) ^ ((((((0xff) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff) >> 16) >> 8))) - 1)
& (((((0xff) >> 16) >> 8)))) ^ (((((0xff) >>
16) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff) >> 16) >> 8)) >> 2)) - 1) &
((((((0xff) >> 16) >> 8)) >> 2))) ^ ((((((
0xff) >> 16) >> 8)) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16) >>
8)))) - 1) & ((((((0xff) >> 16) >> 8))))) ^ (
(((((0xff) >> 16) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xff) >> 16))) - 1) &
((((0xff) >> 16)))) ^ ((((0xff) >> 16))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >> 16)) >>
4)) - 1) & (((((0xff) >> 16)) >> 4))) ^ ((((
(0xff) >> 16)) >> 4)))) >> (2)) != 0) ? 2 +
((((u_long)((((((((((0xff) >> 16)) >> 4) >>
2)) - 1) & ((((((0xff) >> 16)) >> 4) >>
2))) ^ ((((((0xff) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16
)) >> 4))) - 1) & ((((((0xff) >> 16)) >>
4)))) ^ ((((((0xff) >> 16)) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff) >> 16))
)) - 1) & (((((0xff) >> 16))))) ^ (((((0xff) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff
) >> 16))) >> 2)) - 1) & ((((((0xff) >>
16))) >> 2))) ^ ((((((0xff) >> 16))) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff)
>> 16))))) - 1) & ((((((0xff) >> 16)))))) ^ (
(((((0xff) >> 16))))))) >> (1)) != 0) ? 1 : 0))))
: ((((u_long)(((((((0xff))) - 1) & (((0xff)))) ^ (((0xff
))))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff)) >>
8)) - 1) & ((((0xff)) >> 8))) ^ ((((0xff)) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff)) >>
8) >> 4)) - 1) & (((((0xff)) >> 8) >> 4
))) ^ (((((0xff)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xff)) >> 8) >> 4)
>> 2)) - 1) & ((((((0xff)) >> 8) >> 4)
>> 2))) ^ ((((((0xff)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
)) >> 8) >> 4))) - 1) & ((((((0xff)) >>
8) >> 4)))) ^ ((((((0xff)) >> 8) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff)) >>
8))) - 1) & (((((0xff)) >> 8)))) ^ (((((0xff)) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff))
>> 8)) >> 2)) - 1) & ((((((0xff)) >> 8
)) >> 2))) ^ ((((((0xff)) >> 8)) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff)) >> 8
)))) - 1) & ((((((0xff)) >> 8))))) ^ ((((((0xff)) >>
8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((
0xff)))) - 1) & ((((0xff))))) ^ ((((0xff)))))) >> (
4)) != 0) ? 4 + ((((u_long)(((((((((0xff))) >> 4)) - 1)
& (((((0xff))) >> 4))) ^ (((((0xff))) >> 4))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff))) >>
4) >> 2)) - 1) & ((((((0xff))) >> 4) >>
2))) ^ ((((((0xff))) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff))) >> 4)))
- 1) & ((((((0xff))) >> 4)))) ^ ((((((0xff))) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff
))))) - 1) & (((((0xff)))))) ^ (((((0xff))))))) >> (
2)) != 0) ? 2 + ((((u_long)((((((((((0xff)))) >> 2)) - 1
) & ((((((0xff)))) >> 2))) ^ ((((((0xff)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
)))))) - 1) & ((((((0xff))))))) ^ ((((((0xff)))))))) >>
(1)) != 0) ? 1 : 0)))))))))))
;
1190 mmiraddr2 |= ATW_MMIRADDR2_RFMD(((0x7e) << ((((u_long)((((((0xff000000)) - 1) & ((
0xff000000))) ^ ((0xff000000)))) >> (16)) != 0) ? 16 + (
(((u_long)(((((((0xff000000) >> 16)) - 1) & (((0xff000000
) >> 16))) ^ (((0xff000000) >> 16)))) >> (8
)) != 0) ? 8 + ((((u_long)((((((((0xff000000) >> 16) >>
8)) - 1) & ((((0xff000000) >> 16) >> 8))) ^ (
(((0xff000000) >> 16) >> 8)))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xff000000) >> 16) >>
8) >> 4)) - 1) & (((((0xff000000) >> 16) >>
8) >> 4))) ^ (((((0xff000000) >> 16) >> 8)
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff000000) >> 16) >> 8) >> 4) >> 2
)) - 1) & ((((((0xff000000) >> 16) >> 8) >>
4) >> 2))) ^ ((((((0xff000000) >> 16) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xff000000) >> 16) >> 8) >>
4))) - 1) & ((((((0xff000000) >> 16) >> 8) >>
4)))) ^ ((((((0xff000000) >> 16) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff000000
) >> 16) >> 8))) - 1) & (((((0xff000000) >>
16) >> 8)))) ^ (((((0xff000000) >> 16) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000
) >> 16) >> 8)) >> 2)) - 1) & ((((((0xff000000
) >> 16) >> 8)) >> 2))) ^ ((((((0xff000000)
>> 16) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xff000000) >> 16) >>
8)))) - 1) & ((((((0xff000000) >> 16) >> 8))
))) ^ ((((((0xff000000) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff000000) >>
16))) - 1) & ((((0xff000000) >> 16)))) ^ ((((0xff000000
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xff000000) >> 16)) >> 4)) - 1) & (((((0xff000000
) >> 16)) >> 4))) ^ (((((0xff000000) >> 16)
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff000000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff000000) >> 16)) >> 4) >> 2))) ^ (
(((((0xff000000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000) >>
16)) >> 4))) - 1) & ((((((0xff000000) >> 16)
) >> 4)))) ^ ((((((0xff000000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff000000
) >> 16)))) - 1) & (((((0xff000000) >> 16))))
) ^ (((((0xff000000) >> 16)))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0xff000000) >> 16))) >> 2
)) - 1) & ((((((0xff000000) >> 16))) >> 2))) ^
((((((0xff000000) >> 16))) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000) >> 16
))))) - 1) & ((((((0xff000000) >> 16)))))) ^ ((((((
0xff000000) >> 16))))))) >> (1)) != 0) ? 1 : 0)))
) : ((((u_long)(((((((0xff000000))) - 1) & (((0xff000000)
))) ^ (((0xff000000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xff000000)) >> 8)) - 1) & ((((0xff000000)
) >> 8))) ^ ((((0xff000000)) >> 8)))) >> (4
)) != 0) ? 4 + ((((u_long)(((((((((0xff000000)) >> 8) >>
4)) - 1) & (((((0xff000000)) >> 8) >> 4))) ^
(((((0xff000000)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xff000000)) >> 8) >>
4) >> 2)) - 1) & ((((((0xff000000)) >> 8) >>
4) >> 2))) ^ ((((((0xff000000)) >> 8) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0xff000000)) >> 8) >> 4))) - 1) & (((
(((0xff000000)) >> 8) >> 4)))) ^ ((((((0xff000000
)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)) :
((((u_long)(((((((((0xff000000)) >> 8))) - 1) & ((
(((0xff000000)) >> 8)))) ^ (((((0xff000000)) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000
)) >> 8)) >> 2)) - 1) & ((((((0xff000000)) >>
8)) >> 2))) ^ ((((((0xff000000)) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000
)) >> 8)))) - 1) & ((((((0xff000000)) >> 8)))
)) ^ ((((((0xff000000)) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xff000000)))) - 1) & ((((
0xff000000))))) ^ ((((0xff000000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff000000))) >> 4)) - 1) & (
((((0xff000000))) >> 4))) ^ (((((0xff000000))) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000
))) >> 4) >> 2)) - 1) & ((((((0xff000000))) >>
4) >> 2))) ^ ((((((0xff000000))) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000
))) >> 4))) - 1) & ((((((0xff000000))) >> 4))
)) ^ ((((((0xff000000))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xff000000))))) - 1) & (((
((0xff000000)))))) ^ (((((0xff000000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xff000000)))) >> 2)) - 1)
& ((((((0xff000000)))) >> 2))) ^ ((((((0xff000000)
))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xff000000)))))) - 1) & ((((((0xff000000)))))))
^ ((((((0xff000000)))))))) >> (1)) != 0) ? 1 : 0))))))
| ((0x10) << ((((u_long)((((((0xff0000)) - 1) & ((
0xff0000))) ^ ((0xff0000)))) >> (16)) != 0) ? 16 + ((((
u_long)(((((((0xff0000) >> 16)) - 1) & (((0xff0000)
>> 16))) ^ (((0xff0000) >> 16)))) >> (8)) !=
0) ? 8 + ((((u_long)((((((((0xff0000) >> 16) >> 8
)) - 1) & ((((0xff0000) >> 16) >> 8))) ^ ((((
0xff0000) >> 16) >> 8)))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff0000) >> 16) >> 8) >>
4)) - 1) & (((((0xff0000) >> 16) >> 8) >>
4))) ^ (((((0xff0000) >> 16) >> 8) >> 4)))
) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff0000) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xff0000) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4)))) ^ ((((((0xff0000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff0000) >> 16) >> 8))) -
1) & (((((0xff0000) >> 16) >> 8)))) ^ (((((0xff0000
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000) >> 16) >> 8)) >>
2)) - 1) & ((((((0xff0000) >> 16) >> 8)) >>
2))) ^ ((((((0xff0000) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8)))) - 1) & ((((((0xff0000) >>
16) >> 8))))) ^ ((((((0xff0000) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
) >> 16))) - 1) & ((((0xff0000) >> 16)))) ^ (
(((0xff0000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff0000) >> 16)) >> 4)) - 1) & (((
((0xff0000) >> 16)) >> 4))) ^ (((((0xff0000) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff0000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff0000) >> 16)) >> 4) >> 2))) ^ ((
((((0xff0000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000) >>
16)) >> 4))) - 1) & ((((((0xff0000) >> 16)) >>
4)))) ^ ((((((0xff0000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000) >>
16)))) - 1) & (((((0xff0000) >> 16))))) ^ (((((0xff0000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0xff0000) >> 16))) >> 2)) - 1) & ((((((
0xff0000) >> 16))) >> 2))) ^ ((((((0xff0000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff0000) >> 16))))) - 1) & ((((((0xff0000
) >> 16)))))) ^ ((((((0xff0000) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff0000))) - 1) &
(((0xff0000)))) ^ (((0xff0000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0xff0000)) >> 8)) - 1) & ((((0xff0000
)) >> 8))) ^ ((((0xff0000)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xff0000)) >> 8) >>
4)) - 1) & (((((0xff0000)) >> 8) >> 4))) ^ (
((((0xff0000)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff0000)) >> 8) >> 4
) >> 2)) - 1) & ((((((0xff0000)) >> 8) >>
4) >> 2))) ^ ((((((0xff0000)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
)) >> 8) >> 4))) - 1) & ((((((0xff0000)) >>
8) >> 4)))) ^ ((((((0xff0000)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000
)) >> 8))) - 1) & (((((0xff0000)) >> 8)))) ^ (
((((0xff0000)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000)) >> 8)) >> 2)) - 1) &
((((((0xff0000)) >> 8)) >> 2))) ^ ((((((0xff0000
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff0000)) >> 8)))) - 1) & ((
((((0xff0000)) >> 8))))) ^ ((((((0xff0000)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
)))) - 1) & ((((0xff0000))))) ^ ((((0xff0000)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff0000))) >> 4)
) - 1) & (((((0xff0000))) >> 4))) ^ (((((0xff0000))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff0000))) >> 4) >> 2)) - 1) & ((((((0xff0000
))) >> 4) >> 2))) ^ ((((((0xff0000))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0xff0000))) >> 4))) - 1) & ((((((0xff0000)))
>> 4)))) ^ ((((((0xff0000))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000))))) - 1) &
(((((0xff0000)))))) ^ (((((0xff0000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xff0000)))) >> 2)) - 1) &
((((((0xff0000)))) >> 2))) ^ ((((((0xff0000)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
)))))) - 1) & ((((((0xff0000))))))) ^ ((((((0xff0000)))))
))) >> (1)) != 0) ? 1 : 0)))))))
;
1191 break;
1192 }
1193 ATW_WRITE(sc, ATW_MMIRADDR2, mmiraddr2)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x74)), ((mmiraddr2
))))
;
1194
1195 atw_si4126_init(sc);
1196
1197 ATW_WRITE(sc, ATW_MACTEST, ATW_MACTEST_MMI_USETXCLK)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xFC)), (((
1<<11)))))
;
1198}
1199
1200void
1201atw_si4126_init(struct atw_softc *sc)
1202{
1203 switch (sc->sc_rftype) {
1204 case ATW_RFTYPE_RFMD:
1205 if (sc->sc_rev >= ATW_REVISION_BA) {
1206 atw_si4126_write(sc, 0x1f, 0x00000);
1207 atw_si4126_write(sc, 0x0c, 0x3001f);
1208 atw_si4126_write(sc, SI4126_GAIN1, 0x29c03);
1209 atw_si4126_write(sc, SI4126_RF1N3, 0x1ff6f);
1210 atw_si4126_write(sc, SI4126_RF2N4, 0x29403);
1211 atw_si4126_write(sc, SI4126_RF2R7, 0x1456f);
1212 atw_si4126_write(sc, 0x09, 0x10050);
1213 atw_si4126_write(sc, SI4126_IFR8, 0x3fff8);
1214 }
1215 break;
1216 default:
1217 break;
1218 }
1219}
1220
1221/*
1222 * atw_init: [ ifnet interface function ]
1223 *
1224 * Initialize the interface. Must be called at splnet().
1225 */
1226int
1227atw_init(struct ifnet *ifp)
1228{
1229 struct atw_softc *sc = ifp->if_softc;
1230 struct ieee80211com *ic = &sc->sc_ic;
1231 struct atw_txsoft *txs;
1232 struct atw_rxsoft *rxs;
1233 int i, error = 0;
1234
1235 if ((error = atw_enable(sc)) != 0)
1236 goto out;
1237
1238 /*
1239 * Cancel any pending I/O. This also resets.
1240 */
1241 atw_stop(ifp, 0);
1242
1243 ic->ic_bss->ni_chan = ic->ic_ibss_chan;
1244 DPRINTF(sc, ("%s: channel %d freq %d flags 0x%04x\n",
1245 __func__, ieee80211_chan2ieee(ic, ic->ic_bss->ni_chan),
1246 ic->ic_bss->ni_chan->ic_freq, ic->ic_bss->ni_chan->ic_flags));
1247
1248 atw_wcsr_init(sc);
1249
1250 atw_cmdr_init(sc);
1251
1252 /* Set data rate for PLCP Signal field, 1Mbps = 10 x 100Kb/s.
1253 *
1254 * XXX Set transmit power for ATIM, RTS, Beacon.
1255 */
1256 ATW_WRITE(sc, ATW_PLCPHD, LSHIFT(10, ATW_PLCPHD_SIGNAL_MASK) |(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x68)), (((
(10) << ((((u_long)((((((0xff000000)) - 1) & ((0xff000000
))) ^ ((0xff000000)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0xff000000) >> 16)) - 1) & (((0xff000000) >>
16))) ^ (((0xff000000) >> 16)))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0xff000000) >> 16) >> 8))
- 1) & ((((0xff000000) >> 16) >> 8))) ^ ((((
0xff000000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0xff000000) >> 16) >> 8)
>> 4)) - 1) & (((((0xff000000) >> 16) >>
8) >> 4))) ^ (((((0xff000000) >> 16) >> 8)
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff000000) >> 16) >> 8) >> 4) >> 2
)) - 1) & ((((((0xff000000) >> 16) >> 8) >>
4) >> 2))) ^ ((((((0xff000000) >> 16) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xff000000) >> 16) >> 8) >>
4))) - 1) & ((((((0xff000000) >> 16) >> 8) >>
4)))) ^ ((((((0xff000000) >> 16) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff000000
) >> 16) >> 8))) - 1) & (((((0xff000000) >>
16) >> 8)))) ^ (((((0xff000000) >> 16) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000
) >> 16) >> 8)) >> 2)) - 1) & ((((((0xff000000
) >> 16) >> 8)) >> 2))) ^ ((((((0xff000000)
>> 16) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xff000000) >> 16) >>
8)))) - 1) & ((((((0xff000000) >> 16) >> 8))
))) ^ ((((((0xff000000) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff000000) >>
16))) - 1) & ((((0xff000000) >> 16)))) ^ ((((0xff000000
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xff000000) >> 16)) >> 4)) - 1) & (((((0xff000000
) >> 16)) >> 4))) ^ (((((0xff000000) >> 16)
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff000000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff000000) >> 16)) >> 4) >> 2))) ^ (
(((((0xff000000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000) >>
16)) >> 4))) - 1) & ((((((0xff000000) >> 16)
) >> 4)))) ^ ((((((0xff000000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff000000
) >> 16)))) - 1) & (((((0xff000000) >> 16))))
) ^ (((((0xff000000) >> 16)))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0xff000000) >> 16))) >> 2
)) - 1) & ((((((0xff000000) >> 16))) >> 2))) ^
((((((0xff000000) >> 16))) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000) >> 16
))))) - 1) & ((((((0xff000000) >> 16)))))) ^ ((((((
0xff000000) >> 16))))))) >> (1)) != 0) ? 1 : 0)))
) : ((((u_long)(((((((0xff000000))) - 1) & (((0xff000000)
))) ^ (((0xff000000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xff000000)) >> 8)) - 1) & ((((0xff000000)
) >> 8))) ^ ((((0xff000000)) >> 8)))) >> (4
)) != 0) ? 4 + ((((u_long)(((((((((0xff000000)) >> 8) >>
4)) - 1) & (((((0xff000000)) >> 8) >> 4))) ^
(((((0xff000000)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xff000000)) >> 8) >>
4) >> 2)) - 1) & ((((((0xff000000)) >> 8) >>
4) >> 2))) ^ ((((((0xff000000)) >> 8) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0xff000000)) >> 8) >> 4))) - 1) & (((
(((0xff000000)) >> 8) >> 4)))) ^ ((((((0xff000000
)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)) :
((((u_long)(((((((((0xff000000)) >> 8))) - 1) & ((
(((0xff000000)) >> 8)))) ^ (((((0xff000000)) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000
)) >> 8)) >> 2)) - 1) & ((((((0xff000000)) >>
8)) >> 2))) ^ ((((((0xff000000)) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000
)) >> 8)))) - 1) & ((((((0xff000000)) >> 8)))
)) ^ ((((((0xff000000)) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xff000000)))) - 1) & ((((
0xff000000))))) ^ ((((0xff000000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff000000))) >> 4)) - 1) & (
((((0xff000000))) >> 4))) ^ (((((0xff000000))) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000
))) >> 4) >> 2)) - 1) & ((((((0xff000000))) >>
4) >> 2))) ^ ((((((0xff000000))) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000
))) >> 4))) - 1) & ((((((0xff000000))) >> 4))
)) ^ ((((((0xff000000))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xff000000))))) - 1) & (((
((0xff000000)))))) ^ (((((0xff000000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xff000000)))) >> 2)) - 1)
& ((((((0xff000000)))) >> 2))) ^ ((((((0xff000000)
))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xff000000)))))) - 1) & ((((((0xff000000)))))))
^ ((((((0xff000000)))))))) >> (1)) != 0) ? 1 : 0))))))
| ((0xb0) << ((((u_long)((((((0xff0000)) - 1) & ((
0xff0000))) ^ ((0xff0000)))) >> (16)) != 0) ? 16 + ((((
u_long)(((((((0xff0000) >> 16)) - 1) & (((0xff0000)
>> 16))) ^ (((0xff0000) >> 16)))) >> (8)) !=
0) ? 8 + ((((u_long)((((((((0xff0000) >> 16) >> 8
)) - 1) & ((((0xff0000) >> 16) >> 8))) ^ ((((
0xff0000) >> 16) >> 8)))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff0000) >> 16) >> 8) >>
4)) - 1) & (((((0xff0000) >> 16) >> 8) >>
4))) ^ (((((0xff0000) >> 16) >> 8) >> 4)))
) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff0000) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xff0000) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4)))) ^ ((((((0xff0000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff0000) >> 16) >> 8))) -
1) & (((((0xff0000) >> 16) >> 8)))) ^ (((((0xff0000
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000) >> 16) >> 8)) >>
2)) - 1) & ((((((0xff0000) >> 16) >> 8)) >>
2))) ^ ((((((0xff0000) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8)))) - 1) & ((((((0xff0000) >>
16) >> 8))))) ^ ((((((0xff0000) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
) >> 16))) - 1) & ((((0xff0000) >> 16)))) ^ (
(((0xff0000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff0000) >> 16)) >> 4)) - 1) & (((
((0xff0000) >> 16)) >> 4))) ^ (((((0xff0000) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff0000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff0000) >> 16)) >> 4) >> 2))) ^ ((
((((0xff0000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000) >>
16)) >> 4))) - 1) & ((((((0xff0000) >> 16)) >>
4)))) ^ ((((((0xff0000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000) >>
16)))) - 1) & (((((0xff0000) >> 16))))) ^ (((((0xff0000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0xff0000) >> 16))) >> 2)) - 1) & ((((((
0xff0000) >> 16))) >> 2))) ^ ((((((0xff0000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff0000) >> 16))))) - 1) & ((((((0xff0000
) >> 16)))))) ^ ((((((0xff0000) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff0000))) - 1) &
(((0xff0000)))) ^ (((0xff0000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0xff0000)) >> 8)) - 1) & ((((0xff0000
)) >> 8))) ^ ((((0xff0000)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xff0000)) >> 8) >>
4)) - 1) & (((((0xff0000)) >> 8) >> 4))) ^ (
((((0xff0000)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff0000)) >> 8) >> 4
) >> 2)) - 1) & ((((((0xff0000)) >> 8) >>
4) >> 2))) ^ ((((((0xff0000)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
)) >> 8) >> 4))) - 1) & ((((((0xff0000)) >>
8) >> 4)))) ^ ((((((0xff0000)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000
)) >> 8))) - 1) & (((((0xff0000)) >> 8)))) ^ (
((((0xff0000)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000)) >> 8)) >> 2)) - 1) &
((((((0xff0000)) >> 8)) >> 2))) ^ ((((((0xff0000
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff0000)) >> 8)))) - 1) & ((
((((0xff0000)) >> 8))))) ^ ((((((0xff0000)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
)))) - 1) & ((((0xff0000))))) ^ ((((0xff0000)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff0000))) >> 4)
) - 1) & (((((0xff0000))) >> 4))) ^ (((((0xff0000))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff0000))) >> 4) >> 2)) - 1) & ((((((0xff0000
))) >> 4) >> 2))) ^ ((((((0xff0000))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0xff0000))) >> 4))) - 1) & ((((((0xff0000)))
>> 4)))) ^ ((((((0xff0000))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000))))) - 1) &
(((((0xff0000)))))) ^ (((((0xff0000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xff0000)))) >> 2)) - 1) &
((((((0xff0000)))) >> 2))) ^ ((((((0xff0000)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
)))))) - 1) & ((((((0xff0000))))))) ^ ((((((0xff0000)))))
))) >> (1)) != 0) ? 1 : 0))))))))))
1257 LSHIFT(0xb0, ATW_PLCPHD_SERVICE_MASK))(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x68)), (((
(10) << ((((u_long)((((((0xff000000)) - 1) & ((0xff000000
))) ^ ((0xff000000)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0xff000000) >> 16)) - 1) & (((0xff000000) >>
16))) ^ (((0xff000000) >> 16)))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0xff000000) >> 16) >> 8))
- 1) & ((((0xff000000) >> 16) >> 8))) ^ ((((
0xff000000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0xff000000) >> 16) >> 8)
>> 4)) - 1) & (((((0xff000000) >> 16) >>
8) >> 4))) ^ (((((0xff000000) >> 16) >> 8)
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff000000) >> 16) >> 8) >> 4) >> 2
)) - 1) & ((((((0xff000000) >> 16) >> 8) >>
4) >> 2))) ^ ((((((0xff000000) >> 16) >> 8
) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xff000000) >> 16) >> 8) >>
4))) - 1) & ((((((0xff000000) >> 16) >> 8) >>
4)))) ^ ((((((0xff000000) >> 16) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff000000
) >> 16) >> 8))) - 1) & (((((0xff000000) >>
16) >> 8)))) ^ (((((0xff000000) >> 16) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000
) >> 16) >> 8)) >> 2)) - 1) & ((((((0xff000000
) >> 16) >> 8)) >> 2))) ^ ((((((0xff000000)
>> 16) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xff000000) >> 16) >>
8)))) - 1) & ((((((0xff000000) >> 16) >> 8))
))) ^ ((((((0xff000000) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff000000) >>
16))) - 1) & ((((0xff000000) >> 16)))) ^ ((((0xff000000
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xff000000) >> 16)) >> 4)) - 1) & (((((0xff000000
) >> 16)) >> 4))) ^ (((((0xff000000) >> 16)
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff000000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff000000) >> 16)) >> 4) >> 2))) ^ (
(((((0xff000000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000) >>
16)) >> 4))) - 1) & ((((((0xff000000) >> 16)
) >> 4)))) ^ ((((((0xff000000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff000000
) >> 16)))) - 1) & (((((0xff000000) >> 16))))
) ^ (((((0xff000000) >> 16)))))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0xff000000) >> 16))) >> 2
)) - 1) & ((((((0xff000000) >> 16))) >> 2))) ^
((((((0xff000000) >> 16))) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000) >> 16
))))) - 1) & ((((((0xff000000) >> 16)))))) ^ ((((((
0xff000000) >> 16))))))) >> (1)) != 0) ? 1 : 0)))
) : ((((u_long)(((((((0xff000000))) - 1) & (((0xff000000)
))) ^ (((0xff000000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xff000000)) >> 8)) - 1) & ((((0xff000000)
) >> 8))) ^ ((((0xff000000)) >> 8)))) >> (4
)) != 0) ? 4 + ((((u_long)(((((((((0xff000000)) >> 8) >>
4)) - 1) & (((((0xff000000)) >> 8) >> 4))) ^
(((((0xff000000)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xff000000)) >> 8) >>
4) >> 2)) - 1) & ((((((0xff000000)) >> 8) >>
4) >> 2))) ^ ((((((0xff000000)) >> 8) >> 4
) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((
((((((((0xff000000)) >> 8) >> 4))) - 1) & (((
(((0xff000000)) >> 8) >> 4)))) ^ ((((((0xff000000
)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)) :
((((u_long)(((((((((0xff000000)) >> 8))) - 1) & ((
(((0xff000000)) >> 8)))) ^ (((((0xff000000)) >> 8
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000
)) >> 8)) >> 2)) - 1) & ((((((0xff000000)) >>
8)) >> 2))) ^ ((((((0xff000000)) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000
)) >> 8)))) - 1) & ((((((0xff000000)) >> 8)))
)) ^ ((((((0xff000000)) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xff000000)))) - 1) & ((((
0xff000000))))) ^ ((((0xff000000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff000000))) >> 4)) - 1) & (
((((0xff000000))) >> 4))) ^ (((((0xff000000))) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000
))) >> 4) >> 2)) - 1) & ((((((0xff000000))) >>
4) >> 2))) ^ ((((((0xff000000))) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000
))) >> 4))) - 1) & ((((((0xff000000))) >> 4))
)) ^ ((((((0xff000000))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xff000000))))) - 1) & (((
((0xff000000)))))) ^ (((((0xff000000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xff000000)))) >> 2)) - 1)
& ((((((0xff000000)))) >> 2))) ^ ((((((0xff000000)
))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xff000000)))))) - 1) & ((((((0xff000000)))))))
^ ((((((0xff000000)))))))) >> (1)) != 0) ? 1 : 0))))))
| ((0xb0) << ((((u_long)((((((0xff0000)) - 1) & ((
0xff0000))) ^ ((0xff0000)))) >> (16)) != 0) ? 16 + ((((
u_long)(((((((0xff0000) >> 16)) - 1) & (((0xff0000)
>> 16))) ^ (((0xff0000) >> 16)))) >> (8)) !=
0) ? 8 + ((((u_long)((((((((0xff0000) >> 16) >> 8
)) - 1) & ((((0xff0000) >> 16) >> 8))) ^ ((((
0xff0000) >> 16) >> 8)))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff0000) >> 16) >> 8) >>
4)) - 1) & (((((0xff0000) >> 16) >> 8) >>
4))) ^ (((((0xff0000) >> 16) >> 8) >> 4)))
) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff0000) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xff0000) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4)))) ^ ((((((0xff0000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff0000) >> 16) >> 8))) -
1) & (((((0xff0000) >> 16) >> 8)))) ^ (((((0xff0000
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000) >> 16) >> 8)) >>
2)) - 1) & ((((((0xff0000) >> 16) >> 8)) >>
2))) ^ ((((((0xff0000) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8)))) - 1) & ((((((0xff0000) >>
16) >> 8))))) ^ ((((((0xff0000) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
) >> 16))) - 1) & ((((0xff0000) >> 16)))) ^ (
(((0xff0000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff0000) >> 16)) >> 4)) - 1) & (((
((0xff0000) >> 16)) >> 4))) ^ (((((0xff0000) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff0000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff0000) >> 16)) >> 4) >> 2))) ^ ((
((((0xff0000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000) >>
16)) >> 4))) - 1) & ((((((0xff0000) >> 16)) >>
4)))) ^ ((((((0xff0000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000) >>
16)))) - 1) & (((((0xff0000) >> 16))))) ^ (((((0xff0000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0xff0000) >> 16))) >> 2)) - 1) & ((((((
0xff0000) >> 16))) >> 2))) ^ ((((((0xff0000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff0000) >> 16))))) - 1) & ((((((0xff0000
) >> 16)))))) ^ ((((((0xff0000) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff0000))) - 1) &
(((0xff0000)))) ^ (((0xff0000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0xff0000)) >> 8)) - 1) & ((((0xff0000
)) >> 8))) ^ ((((0xff0000)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xff0000)) >> 8) >>
4)) - 1) & (((((0xff0000)) >> 8) >> 4))) ^ (
((((0xff0000)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff0000)) >> 8) >> 4
) >> 2)) - 1) & ((((((0xff0000)) >> 8) >>
4) >> 2))) ^ ((((((0xff0000)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
)) >> 8) >> 4))) - 1) & ((((((0xff0000)) >>
8) >> 4)))) ^ ((((((0xff0000)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000
)) >> 8))) - 1) & (((((0xff0000)) >> 8)))) ^ (
((((0xff0000)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000)) >> 8)) >> 2)) - 1) &
((((((0xff0000)) >> 8)) >> 2))) ^ ((((((0xff0000
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff0000)) >> 8)))) - 1) & ((
((((0xff0000)) >> 8))))) ^ ((((((0xff0000)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
)))) - 1) & ((((0xff0000))))) ^ ((((0xff0000)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff0000))) >> 4)
) - 1) & (((((0xff0000))) >> 4))) ^ (((((0xff0000))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff0000))) >> 4) >> 2)) - 1) & ((((((0xff0000
))) >> 4) >> 2))) ^ ((((((0xff0000))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0xff0000))) >> 4))) - 1) & ((((((0xff0000)))
>> 4)))) ^ ((((((0xff0000))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000))))) - 1) &
(((((0xff0000)))))) ^ (((((0xff0000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xff0000)))) >> 2)) - 1) &
((((((0xff0000)))) >> 2))) ^ ((((((0xff0000)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
)))))) - 1) & ((((((0xff0000))))))) ^ ((((((0xff0000)))))
))) >> (1)) != 0) ? 1 : 0))))))))))
;
1258
1259 atw_tofs2_init(sc);
1260
1261 atw_nar_init(sc);
1262
1263 atw_txlmt_init(sc);
1264
1265 atw_test1_init(sc);
1266
1267 atw_rf_reset(sc);
1268
1269 atw_cfp_init(sc);
1270
1271 atw_tofs0_init(sc);
1272
1273 atw_ifs_init(sc);
1274
1275 /* XXX Fall asleep after one second of inactivity.
1276 * XXX A frame may only dribble in for 65536us.
1277 */
1278 ATW_WRITE(sc, ATW_RMD,(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xD4)), (((
(1) << ((((u_long)((((((0xfff0000)) - 1) & ((0xfff0000
))) ^ ((0xfff0000)))) >> (16)) != 0) ? 16 + ((((u_long)
(((((((0xfff0000) >> 16)) - 1) & (((0xfff0000) >>
16))) ^ (((0xfff0000) >> 16)))) >> (8)) != 0) ? 8
+ ((((u_long)((((((((0xfff0000) >> 16) >> 8)) - 1
) & ((((0xfff0000) >> 16) >> 8))) ^ ((((0xfff0000
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xfff0000) >> 16) >> 8) >> 4)) - 1
) & (((((0xfff0000) >> 16) >> 8) >> 4))
) ^ (((((0xfff0000) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfff0000) >> 16
) >> 8) >> 4) >> 2)) - 1) & ((((((0xfff0000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xfff0000) >> 16) >> 8) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfff0000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xfff0000
) >> 16) >> 8) >> 4)))) ^ ((((((0xfff0000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xfff0000) >> 16) >> 8)))
- 1) & (((((0xfff0000) >> 16) >> 8)))) ^ (((
((0xfff0000) >> 16) >> 8))))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xfff0000) >> 16) >> 8
)) >> 2)) - 1) & ((((((0xfff0000) >> 16) >>
8)) >> 2))) ^ ((((((0xfff0000) >> 16) >> 8
)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(
(((((((((0xfff0000) >> 16) >> 8)))) - 1) & ((
((((0xfff0000) >> 16) >> 8))))) ^ ((((((0xfff0000
) >> 16) >> 8)))))) >> (1)) != 0) ? 1 : 0))
) : ((((u_long)((((((((0xfff0000) >> 16))) - 1) & (
(((0xfff0000) >> 16)))) ^ ((((0xfff0000) >> 16)))
)) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xfff0000) >>
16)) >> 4)) - 1) & (((((0xfff0000) >> 16)) >>
4))) ^ (((((0xfff0000) >> 16)) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfff0000) >> 16
)) >> 4) >> 2)) - 1) & ((((((0xfff0000) >>
16)) >> 4) >> 2))) ^ ((((((0xfff0000) >> 16
)) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xfff0000) >> 16)) >> 4))) - 1
) & ((((((0xfff0000) >> 16)) >> 4)))) ^ (((((
(0xfff0000) >> 16)) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xfff0000) >> 16)))) -
1) & (((((0xfff0000) >> 16))))) ^ (((((0xfff0000) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xfff0000
) >> 16))) >> 2)) - 1) & ((((((0xfff0000) >>
16))) >> 2))) ^ ((((((0xfff0000) >> 16))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfff0000
) >> 16))))) - 1) & ((((((0xfff0000) >> 16)))
))) ^ ((((((0xfff0000) >> 16))))))) >> (1)) != 0)
? 1 : 0)))) : ((((u_long)(((((((0xfff0000))) - 1) & (((0xfff0000
)))) ^ (((0xfff0000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xfff0000)) >> 8)) - 1) & ((((0xfff0000)) >>
8))) ^ ((((0xfff0000)) >> 8)))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xfff0000)) >> 8) >> 4)) -
1) & (((((0xfff0000)) >> 8) >> 4))) ^ (((((0xfff0000
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xfff0000)) >> 8) >> 4) >> 2)) -
1) & ((((((0xfff0000)) >> 8) >> 4) >> 2
))) ^ ((((((0xfff0000)) >> 8) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfff0000
)) >> 8) >> 4))) - 1) & ((((((0xfff0000)) >>
8) >> 4)))) ^ ((((((0xfff0000)) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xfff0000
)) >> 8))) - 1) & (((((0xfff0000)) >> 8)))) ^
(((((0xfff0000)) >> 8))))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xfff0000)) >> 8)) >> 2)) - 1
) & ((((((0xfff0000)) >> 8)) >> 2))) ^ ((((((
0xfff0000)) >> 8)) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xfff0000)) >> 8)))) - 1
) & ((((((0xfff0000)) >> 8))))) ^ ((((((0xfff0000))
>> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xfff0000)))) - 1) & ((((0xfff0000))))) ^ ((((0xfff0000
)))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xfff0000
))) >> 4)) - 1) & (((((0xfff0000))) >> 4))) ^
(((((0xfff0000))) >> 4)))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xfff0000))) >> 4) >> 2)) - 1
) & ((((((0xfff0000))) >> 4) >> 2))) ^ ((((((
0xfff0000))) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xfff0000))) >> 4))) - 1
) & ((((((0xfff0000))) >> 4)))) ^ ((((((0xfff0000))
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0xfff0000))))) - 1) & (((((0xfff0000)))))) ^ (((
((0xfff0000))))))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xfff0000)))) >> 2)) - 1) & ((((((0xfff0000)))
) >> 2))) ^ ((((((0xfff0000)))) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfff0000)))))) -
1) & ((((((0xfff0000))))))) ^ ((((((0xfff0000)))))))) >>
(1)) != 0) ? 1 : 0)))))) | ((0xffff) << ((((u_long)(((
(((0xffff)) - 1) & ((0xffff))) ^ ((0xffff)))) >> (16
)) != 0) ? 16 + ((((u_long)(((((((0xffff) >> 16)) - 1) &
(((0xffff) >> 16))) ^ (((0xffff) >> 16)))) >>
(8)) != 0) ? 8 + ((((u_long)((((((((0xffff) >> 16) >>
8)) - 1) & ((((0xffff) >> 16) >> 8))) ^ ((((
0xffff) >> 16) >> 8)))) >> (4)) != 0) ? 4 +
((((u_long)(((((((((0xffff) >> 16) >> 8) >>
4)) - 1) & (((((0xffff) >> 16) >> 8) >>
4))) ^ (((((0xffff) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xffff) >> 16) >>
8) >> 4) >> 2)) - 1) & ((((((0xffff) >>
16) >> 8) >> 4) >> 2))) ^ ((((((0xffff) >>
16) >> 8) >> 4) >> 2)))) >> (1)) != 0
) ? 1 : 0) : ((((u_long)((((((((((0xffff) >> 16) >>
8) >> 4))) - 1) & ((((((0xffff) >> 16) >>
8) >> 4)))) ^ ((((((0xffff) >> 16) >> 8) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xffff
) >> 16) >> 8))) - 1) & (((((0xffff) >>
16) >> 8)))) ^ (((((0xffff) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xffff) >>
16) >> 8)) >> 2)) - 1) & ((((((0xffff) >>
16) >> 8)) >> 2))) ^ ((((((0xffff) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xffff) >> 16) >> 8)))) - 1) & (((
(((0xffff) >> 16) >> 8))))) ^ ((((((0xffff) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xffff) >> 16))) - 1) & ((((0xffff) >>
16)))) ^ ((((0xffff) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xffff) >> 16)) >> 4)) - 1
) & (((((0xffff) >> 16)) >> 4))) ^ (((((0xffff
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xffff) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xffff) >> 16)) >> 4) >>
2))) ^ ((((((0xffff) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff)
>> 16)) >> 4))) - 1) & ((((((0xffff) >>
16)) >> 4)))) ^ ((((((0xffff) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xffff
) >> 16)))) - 1) & (((((0xffff) >> 16))))) ^ (
((((0xffff) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xffff) >> 16))) >> 2)) - 1) & (((
(((0xffff) >> 16))) >> 2))) ^ ((((((0xffff) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xffff) >> 16))))) - 1) & ((((((0xffff) >>
16)))))) ^ ((((((0xffff) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xffff))) - 1) & (((0xffff
)))) ^ (((0xffff))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xffff)) >> 8)) - 1) & ((((0xffff)) >> 8
))) ^ ((((0xffff)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xffff)) >> 8) >> 4)) - 1) &
(((((0xffff)) >> 8) >> 4))) ^ (((((0xffff)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xffff)) >> 8) >> 4) >> 2)) - 1) &
((((((0xffff)) >> 8) >> 4) >> 2))) ^ (((((
(0xffff)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff)) >> 8) >>
4))) - 1) & ((((((0xffff)) >> 8) >> 4)))) ^ (
(((((0xffff)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xffff)) >> 8))) - 1) &
(((((0xffff)) >> 8)))) ^ (((((0xffff)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xffff)) >>
8)) >> 2)) - 1) & ((((((0xffff)) >> 8)) >>
2))) ^ ((((((0xffff)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff)) >> 8
)))) - 1) & ((((((0xffff)) >> 8))))) ^ ((((((0xffff
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xffff)))) - 1) & ((((0xffff))))) ^ ((((0xffff))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xffff))) >>
4)) - 1) & (((((0xffff))) >> 4))) ^ (((((0xffff)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xffff))) >> 4) >> 2)) - 1) & ((((((0xffff)
)) >> 4) >> 2))) ^ ((((((0xffff))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff
))) >> 4))) - 1) & ((((((0xffff))) >> 4)))) ^
((((((0xffff))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xffff))))) - 1) & (((((0xffff)))
))) ^ (((((0xffff))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xffff)))) >> 2)) - 1) & ((((((0xffff)))
) >> 2))) ^ ((((((0xffff)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff)))))) - 1) &
((((((0xffff))))))) ^ ((((((0xffff)))))))) >> (1)) != 0
) ? 1 : 0))))))))))
1279 LSHIFT(1, ATW_RMD_PCNT) | LSHIFT(0xffff, ATW_RMD_RMRD_MASK))(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xD4)), (((
(1) << ((((u_long)((((((0xfff0000)) - 1) & ((0xfff0000
))) ^ ((0xfff0000)))) >> (16)) != 0) ? 16 + ((((u_long)
(((((((0xfff0000) >> 16)) - 1) & (((0xfff0000) >>
16))) ^ (((0xfff0000) >> 16)))) >> (8)) != 0) ? 8
+ ((((u_long)((((((((0xfff0000) >> 16) >> 8)) - 1
) & ((((0xfff0000) >> 16) >> 8))) ^ ((((0xfff0000
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xfff0000) >> 16) >> 8) >> 4)) - 1
) & (((((0xfff0000) >> 16) >> 8) >> 4))
) ^ (((((0xfff0000) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfff0000) >> 16
) >> 8) >> 4) >> 2)) - 1) & ((((((0xfff0000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xfff0000) >> 16) >> 8) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfff0000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xfff0000
) >> 16) >> 8) >> 4)))) ^ ((((((0xfff0000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xfff0000) >> 16) >> 8)))
- 1) & (((((0xfff0000) >> 16) >> 8)))) ^ (((
((0xfff0000) >> 16) >> 8))))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xfff0000) >> 16) >> 8
)) >> 2)) - 1) & ((((((0xfff0000) >> 16) >>
8)) >> 2))) ^ ((((((0xfff0000) >> 16) >> 8
)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(
(((((((((0xfff0000) >> 16) >> 8)))) - 1) & ((
((((0xfff0000) >> 16) >> 8))))) ^ ((((((0xfff0000
) >> 16) >> 8)))))) >> (1)) != 0) ? 1 : 0))
) : ((((u_long)((((((((0xfff0000) >> 16))) - 1) & (
(((0xfff0000) >> 16)))) ^ ((((0xfff0000) >> 16)))
)) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xfff0000) >>
16)) >> 4)) - 1) & (((((0xfff0000) >> 16)) >>
4))) ^ (((((0xfff0000) >> 16)) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfff0000) >> 16
)) >> 4) >> 2)) - 1) & ((((((0xfff0000) >>
16)) >> 4) >> 2))) ^ ((((((0xfff0000) >> 16
)) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0xfff0000) >> 16)) >> 4))) - 1
) & ((((((0xfff0000) >> 16)) >> 4)))) ^ (((((
(0xfff0000) >> 16)) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xfff0000) >> 16)))) -
1) & (((((0xfff0000) >> 16))))) ^ (((((0xfff0000) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xfff0000
) >> 16))) >> 2)) - 1) & ((((((0xfff0000) >>
16))) >> 2))) ^ ((((((0xfff0000) >> 16))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfff0000
) >> 16))))) - 1) & ((((((0xfff0000) >> 16)))
))) ^ ((((((0xfff0000) >> 16))))))) >> (1)) != 0)
? 1 : 0)))) : ((((u_long)(((((((0xfff0000))) - 1) & (((0xfff0000
)))) ^ (((0xfff0000))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xfff0000)) >> 8)) - 1) & ((((0xfff0000)) >>
8))) ^ ((((0xfff0000)) >> 8)))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xfff0000)) >> 8) >> 4)) -
1) & (((((0xfff0000)) >> 8) >> 4))) ^ (((((0xfff0000
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xfff0000)) >> 8) >> 4) >> 2)) -
1) & ((((((0xfff0000)) >> 8) >> 4) >> 2
))) ^ ((((((0xfff0000)) >> 8) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfff0000
)) >> 8) >> 4))) - 1) & ((((((0xfff0000)) >>
8) >> 4)))) ^ ((((((0xfff0000)) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xfff0000
)) >> 8))) - 1) & (((((0xfff0000)) >> 8)))) ^
(((((0xfff0000)) >> 8))))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xfff0000)) >> 8)) >> 2)) - 1
) & ((((((0xfff0000)) >> 8)) >> 2))) ^ ((((((
0xfff0000)) >> 8)) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xfff0000)) >> 8)))) - 1
) & ((((((0xfff0000)) >> 8))))) ^ ((((((0xfff0000))
>> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xfff0000)))) - 1) & ((((0xfff0000))))) ^ ((((0xfff0000
)))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xfff0000
))) >> 4)) - 1) & (((((0xfff0000))) >> 4))) ^
(((((0xfff0000))) >> 4)))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xfff0000))) >> 4) >> 2)) - 1
) & ((((((0xfff0000))) >> 4) >> 2))) ^ ((((((
0xfff0000))) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xfff0000))) >> 4))) - 1
) & ((((((0xfff0000))) >> 4)))) ^ ((((((0xfff0000))
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0xfff0000))))) - 1) & (((((0xfff0000)))))) ^ (((
((0xfff0000))))))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xfff0000)))) >> 2)) - 1) & ((((((0xfff0000)))
) >> 2))) ^ ((((((0xfff0000)))) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfff0000)))))) -
1) & ((((((0xfff0000))))))) ^ ((((((0xfff0000)))))))) >>
(1)) != 0) ? 1 : 0)))))) | ((0xffff) << ((((u_long)(((
(((0xffff)) - 1) & ((0xffff))) ^ ((0xffff)))) >> (16
)) != 0) ? 16 + ((((u_long)(((((((0xffff) >> 16)) - 1) &
(((0xffff) >> 16))) ^ (((0xffff) >> 16)))) >>
(8)) != 0) ? 8 + ((((u_long)((((((((0xffff) >> 16) >>
8)) - 1) & ((((0xffff) >> 16) >> 8))) ^ ((((
0xffff) >> 16) >> 8)))) >> (4)) != 0) ? 4 +
((((u_long)(((((((((0xffff) >> 16) >> 8) >>
4)) - 1) & (((((0xffff) >> 16) >> 8) >>
4))) ^ (((((0xffff) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xffff) >> 16) >>
8) >> 4) >> 2)) - 1) & ((((((0xffff) >>
16) >> 8) >> 4) >> 2))) ^ ((((((0xffff) >>
16) >> 8) >> 4) >> 2)))) >> (1)) != 0
) ? 1 : 0) : ((((u_long)((((((((((0xffff) >> 16) >>
8) >> 4))) - 1) & ((((((0xffff) >> 16) >>
8) >> 4)))) ^ ((((((0xffff) >> 16) >> 8) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xffff
) >> 16) >> 8))) - 1) & (((((0xffff) >>
16) >> 8)))) ^ (((((0xffff) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xffff) >>
16) >> 8)) >> 2)) - 1) & ((((((0xffff) >>
16) >> 8)) >> 2))) ^ ((((((0xffff) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xffff) >> 16) >> 8)))) - 1) & (((
(((0xffff) >> 16) >> 8))))) ^ ((((((0xffff) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xffff) >> 16))) - 1) & ((((0xffff) >>
16)))) ^ ((((0xffff) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xffff) >> 16)) >> 4)) - 1
) & (((((0xffff) >> 16)) >> 4))) ^ (((((0xffff
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xffff) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xffff) >> 16)) >> 4) >>
2))) ^ ((((((0xffff) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff)
>> 16)) >> 4))) - 1) & ((((((0xffff) >>
16)) >> 4)))) ^ ((((((0xffff) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xffff
) >> 16)))) - 1) & (((((0xffff) >> 16))))) ^ (
((((0xffff) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xffff) >> 16))) >> 2)) - 1) & (((
(((0xffff) >> 16))) >> 2))) ^ ((((((0xffff) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xffff) >> 16))))) - 1) & ((((((0xffff) >>
16)))))) ^ ((((((0xffff) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xffff))) - 1) & (((0xffff
)))) ^ (((0xffff))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xffff)) >> 8)) - 1) & ((((0xffff)) >> 8
))) ^ ((((0xffff)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xffff)) >> 8) >> 4)) - 1) &
(((((0xffff)) >> 8) >> 4))) ^ (((((0xffff)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xffff)) >> 8) >> 4) >> 2)) - 1) &
((((((0xffff)) >> 8) >> 4) >> 2))) ^ (((((
(0xffff)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff)) >> 8) >>
4))) - 1) & ((((((0xffff)) >> 8) >> 4)))) ^ (
(((((0xffff)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xffff)) >> 8))) - 1) &
(((((0xffff)) >> 8)))) ^ (((((0xffff)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xffff)) >>
8)) >> 2)) - 1) & ((((((0xffff)) >> 8)) >>
2))) ^ ((((((0xffff)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff)) >> 8
)))) - 1) & ((((((0xffff)) >> 8))))) ^ ((((((0xffff
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xffff)))) - 1) & ((((0xffff))))) ^ ((((0xffff))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xffff))) >>
4)) - 1) & (((((0xffff))) >> 4))) ^ (((((0xffff)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xffff))) >> 4) >> 2)) - 1) & ((((((0xffff)
)) >> 4) >> 2))) ^ ((((((0xffff))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff
))) >> 4))) - 1) & ((((((0xffff))) >> 4)))) ^
((((((0xffff))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xffff))))) - 1) & (((((0xffff)))
))) ^ (((((0xffff))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xffff)))) >> 2)) - 1) & ((((((0xffff)))
) >> 2))) ^ ((((((0xffff)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xffff)))))) - 1) &
((((((0xffff))))))) ^ ((((((0xffff)))))))) >> (1)) != 0
) ? 1 : 0))))))))))
;
1280
1281 atw_response_times_init(sc);
1282
1283 atw_bbp_io_init(sc);
1284
1285 ATW_WRITE(sc, ATW_STSR, 0xffffffff)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x28)), ((0xffffffff
))))
;
1286
1287 if ((error = atw_rf3000_init(sc)) != 0)
1288 goto out;
1289
1290 ATW_WRITE(sc, ATW_PAR, sc->sc_busmode)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x00)), ((sc
->sc_busmode))))
;
1291 DPRINTF(sc, ("%s: ATW_PAR %08x busmode %08x\n", sc->sc_dev.dv_xname,
1292 ATW_READ(sc, ATW_PAR), sc->sc_busmode));
1293
1294 /*
1295 * Initialize the transmit descriptor ring.
1296 */
1297 memset(sc->sc_txdescs, 0, sizeof(sc->sc_txdescs))__builtin_memset((sc->sc_control_data->acd_txdescs), (0
), (sizeof(sc->sc_control_data->acd_txdescs)))
;
1298 for (i = 0; i < ATW_NTXDESC(64 * 16); i++) {
1299 sc->sc_txdescssc_control_data->acd_txdescs[i].at_ctl = 0;
1300 /* no transmit chaining */
1301 sc->sc_txdescssc_control_data->acd_txdescs[i].at_flags = 0 /* ATW_TXFLAG_TCH */;
1302 sc->sc_txdescssc_control_data->acd_txdescs[i].at_buf2 =
1303 htole32(ATW_CDTXADDR(sc, ATW_NEXTTX(i)))((__uint32_t)(((sc)->sc_cddmamap->dm_segs[0].ds_addr + __builtin_offsetof
(struct atw_control_data, acd_txdescs[((((i + 1) & ((64 *
16) - 1))))]))))
;
1304 }
1305 /* use ring mode */
1306 sc->sc_txdescssc_control_data->acd_txdescs[ATW_NTXDESC(64 * 16) - 1].at_flags |= htole32(ATW_TXFLAG_TER)((__uint32_t)((1<<25)));
1307 ATW_CDTXSYNC(sc, 0, ATW_NTXDESC,do { int __x, __n; __x = (0); __n = ((64 * 16)); if ((__x + __n
) > (64 * 16)) { (*((sc)->sc_dmat)->_dmamap_sync)(((
sc)->sc_dmat), ((sc)->sc_cddmamap), (__builtin_offsetof
(struct atw_control_data, acd_txdescs[(__x)])), (sizeof(struct
atw_txdesc) * ((64 * 16) - __x)), ((0x01|0x04))); __n -= ((64
* 16) - __x); __x = 0; } (*((sc)->sc_dmat)->_dmamap_sync
)(((sc)->sc_dmat), ((sc)->sc_cddmamap), (__builtin_offsetof
(struct atw_control_data, acd_txdescs[(__x)])), (sizeof(struct
atw_txdesc) * __n), ((0x01|0x04))); } while (0)
1308 BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE)do { int __x, __n; __x = (0); __n = ((64 * 16)); if ((__x + __n
) > (64 * 16)) { (*((sc)->sc_dmat)->_dmamap_sync)(((
sc)->sc_dmat), ((sc)->sc_cddmamap), (__builtin_offsetof
(struct atw_control_data, acd_txdescs[(__x)])), (sizeof(struct
atw_txdesc) * ((64 * 16) - __x)), ((0x01|0x04))); __n -= ((64
* 16) - __x); __x = 0; } (*((sc)->sc_dmat)->_dmamap_sync
)(((sc)->sc_dmat), ((sc)->sc_cddmamap), (__builtin_offsetof
(struct atw_control_data, acd_txdescs[(__x)])), (sizeof(struct
atw_txdesc) * __n), ((0x01|0x04))); } while (0)
;
1309 sc->sc_txfree = ATW_NTXDESC(64 * 16);
1310 sc->sc_txnext = 0;
1311
1312 /*
1313 * Initialize the transmit job descriptors.
1314 */
1315 SIMPLEQ_INIT(&sc->sc_txfreeq)do { (&sc->sc_txfreeq)->sqh_first = ((void *)0); (&
sc->sc_txfreeq)->sqh_last = &(&sc->sc_txfreeq
)->sqh_first; } while (0)
;
1316 SIMPLEQ_INIT(&sc->sc_txdirtyq)do { (&sc->sc_txdirtyq)->sqh_first = ((void *)0); (
&sc->sc_txdirtyq)->sqh_last = &(&sc->sc_txdirtyq
)->sqh_first; } while (0)
;
1317 for (i = 0; i < ATW_TXQUEUELEN64; i++) {
1318 txs = &sc->sc_txsoft[i];
1319 txs->txs_mbuf = NULL((void *)0);
1320 SIMPLEQ_INSERT_TAIL(&sc->sc_txfreeq, txs, txs_q)do { (txs)->txs_q.sqe_next = ((void *)0); *(&sc->sc_txfreeq
)->sqh_last = (txs); (&sc->sc_txfreeq)->sqh_last
= &(txs)->txs_q.sqe_next; } while (0)
;
1321 }
1322
1323 /*
1324 * Initialize the receive descriptor and receive job
1325 * descriptor rings.
1326 */
1327 for (i = 0; i < ATW_NRXDESC64; i++) {
1328 rxs = &sc->sc_rxsoft[i];
1329 if (rxs->rxs_mbuf == NULL((void *)0)) {
1330 if ((error = atw_add_rxbuf(sc, i)) != 0) {
1331 printf("%s: unable to allocate or map rx "
1332 "buffer %d, error = %d\n",
1333 sc->sc_dev.dv_xname, i, error);
1334 /*
1335 * XXX Should attempt to run with fewer receive
1336 * XXX buffers instead of just failing.
1337 */
1338 atw_rxdrain(sc);
1339 goto out;
1340 }
1341 } else
1342 ATW_INIT_RXDESC(sc, i)do { struct atw_rxsoft *__rxs = &sc->sc_rxsoft[(i)]; struct
atw_rxdesc *__rxd = &sc->sc_control_data->acd_rxdescs
[(i)]; struct mbuf *__m = __rxs->rxs_mbuf; __rxd->ar_buf1
= ((__uint32_t)(__rxs->rxs_dmamap->dm_segs[0].ds_addr)
); __rxd->ar_buf2 = ((__uint32_t)((((sc))->sc_cddmamap->
dm_segs[0].ds_addr + __builtin_offsetof(struct atw_control_data
, acd_rxdescs[(((((i) + 1) & (64 - 1))))])))); __rxd->
ar_ctl = ((__uint32_t)(((((__m->M_dat.MH.MH_dat.MH_ext.ext_size
- 1) & ~0x3U)) << ((((u_long)((((((0xfff)) - 1) &
((0xfff))) ^ ((0xfff)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0xfff) >> 16)) - 1) & (((0xfff) >> 16
))) ^ (((0xfff) >> 16)))) >> (8)) != 0) ? 8 + (((
(u_long)((((((((0xfff) >> 16) >> 8)) - 1) & (
(((0xfff) >> 16) >> 8))) ^ ((((0xfff) >> 16
) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((
((0xfff) >> 16) >> 8) >> 4)) - 1) & (((
((0xfff) >> 16) >> 8) >> 4))) ^ (((((0xfff)
>> 16) >> 8) >> 4)))) >> (2)) != 0) ?
2 + ((((u_long)((((((((((0xfff) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xfff) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xfff) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xfff) >> 16) >> 8) >>
4))) - 1) & ((((((0xfff) >> 16) >> 8) >>
4)))) ^ ((((((0xfff) >> 16) >> 8) >> 4))))
) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xfff) >>
16) >> 8))) - 1) & (((((0xfff) >> 16) >>
8)))) ^ (((((0xfff) >> 16) >> 8))))) >> (2
)) != 0) ? 2 + ((((u_long)((((((((((0xfff) >> 16) >>
8)) >> 2)) - 1) & ((((((0xfff) >> 16) >>
8)) >> 2))) ^ ((((((0xfff) >> 16) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfff
) >> 16) >> 8)))) - 1) & ((((((0xfff) >>
16) >> 8))))) ^ ((((((0xfff) >> 16) >> 8))
)))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xfff
) >> 16))) - 1) & ((((0xfff) >> 16)))) ^ ((((
0xfff) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)
(((((((((0xfff) >> 16)) >> 4)) - 1) & (((((0xfff
) >> 16)) >> 4))) ^ (((((0xfff) >> 16)) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xfff) >>
16)) >> 4) >> 2)) - 1) & ((((((0xfff) >>
16)) >> 4) >> 2))) ^ ((((((0xfff) >> 16)) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xfff) >> 16)) >> 4))) - 1) & (((((
(0xfff) >> 16)) >> 4)))) ^ ((((((0xfff) >> 16
)) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0xfff) >> 16)))) - 1) & (((((0xfff) >>
16))))) ^ (((((0xfff) >> 16)))))) >> (2)) != 0) ?
2 + ((((u_long)((((((((((0xfff) >> 16))) >> 2)) -
1) & ((((((0xfff) >> 16))) >> 2))) ^ ((((((0xfff
) >> 16))) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xfff) >> 16))))) - 1) & ((((
((0xfff) >> 16)))))) ^ ((((((0xfff) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xfff))) - 1) &
(((0xfff)))) ^ (((0xfff))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xfff)) >> 8)) - 1) & ((((0xfff)) >>
8))) ^ ((((0xfff)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xfff)) >> 8) >> 4)) - 1) &
(((((0xfff)) >> 8) >> 4))) ^ (((((0xfff)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xfff)) >> 8) >> 4) >> 2)) - 1) & (
(((((0xfff)) >> 8) >> 4) >> 2))) ^ ((((((0xfff
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xfff)) >> 8) >>
4))) - 1) & ((((((0xfff)) >> 8) >> 4)))) ^ (
(((((0xfff)) >> 8) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xfff)) >> 8))) - 1) &
(((((0xfff)) >> 8)))) ^ (((((0xfff)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfff)) >> 8)) >>
2)) - 1) & ((((((0xfff)) >> 8)) >> 2))) ^ ((
((((0xfff)) >> 8)) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xfff)) >> 8)))) - 1) &
((((((0xfff)) >> 8))))) ^ ((((((0xfff)) >> 8))))
)) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xfff)
))) - 1) & ((((0xfff))))) ^ ((((0xfff)))))) >> (4))
!= 0) ? 4 + ((((u_long)(((((((((0xfff))) >> 4)) - 1) &
(((((0xfff))) >> 4))) ^ (((((0xfff))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfff))) >> 4) >>
2)) - 1) & ((((((0xfff))) >> 4) >> 2))) ^ ((
((((0xfff))) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xfff))) >> 4))) - 1) &
((((((0xfff))) >> 4)))) ^ ((((((0xfff))) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xfff)
)))) - 1) & (((((0xfff)))))) ^ (((((0xfff))))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfff)))) >> 2))
- 1) & ((((((0xfff)))) >> 2))) ^ ((((((0xfff)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfff
)))))) - 1) & ((((((0xfff))))))) ^ ((((((0xfff)))))))) >>
(1)) != 0) ? 1 : 0)))))) | 0 | ((i) == (64 - 1) ? (1<<
25) : 0))); __rxd->ar_stat = ((__uint32_t)((1<<31)))
; (*(((sc))->sc_dmat)->_dmamap_sync)((((sc))->sc_dmat
), (((sc))->sc_cddmamap), (__builtin_offsetof(struct atw_control_data
, acd_rxdescs[(((i)))])), (sizeof(struct atw_rxdesc)), ((0x01
|0x04))); } while (0)
;
1343 }
1344 sc->sc_rxptr = 0;
1345
1346 /*
1347 * Initialize the interrupt mask and enable interrupts.
1348 */
1349 /* normal interrupts */
1350 sc->sc_inten = ATW_INTR_TCI(1<<0) | ATW_INTR_TDU(1<<2) | ATW_INTR_RCI(1<<6) |
1351 ATW_INTR_NISS(1<<16) | ATW_INTR_LINKON(1<<24) | ATW_INTR_BCNTC(1<<30);
1352
1353 /* abnormal interrupts */
1354 sc->sc_inten |= ATW_INTR_TPS(1<<1) | ATW_INTR_TLT(1<<3) | ATW_INTR_TRT(1<<4) |
1355 ATW_INTR_TUF(1<<5) | ATW_INTR_RDU(1<<7) | ATW_INTR_RPS(1<<8) | ATW_INTR_AISS(1<<15) |
1356 ATW_INTR_FBE(1<<13) | ATW_INTR_LINKOFF(1<<28) | ATW_INTR_TSFTF(1<<26) | ATW_INTR_TSCZ(1<<25);
1357
1358 sc->sc_linkint_mask = ATW_INTR_LINKON(1<<24) | ATW_INTR_LINKOFF(1<<28) |
1359 ATW_INTR_BCNTC(1<<30) | ATW_INTR_TSFTF(1<<26) | ATW_INTR_TSCZ(1<<25);
1360 sc->sc_rxint_mask = ATW_INTR_RCI(1<<6) | ATW_INTR_RDU(1<<7);
1361 sc->sc_txint_mask = ATW_INTR_TCI(1<<0) | ATW_INTR_TUF(1<<5) | ATW_INTR_TLT(1<<3) |
1362 ATW_INTR_TRT(1<<4);
1363
1364 sc->sc_linkint_mask &= sc->sc_inten;
1365 sc->sc_rxint_mask &= sc->sc_inten;
1366 sc->sc_txint_mask &= sc->sc_inten;
1367
1368 ATW_WRITE(sc, ATW_IER, sc->sc_inten)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x38)), ((sc
->sc_inten))))
;
1369 ATW_WRITE(sc, ATW_STSR, 0xffffffff)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x28)), ((0xffffffff
))))
;
1370
1371 DPRINTF(sc, ("%s: ATW_IER %08x, inten %08x\n",
1372 sc->sc_dev.dv_xname, ATW_READ(sc, ATW_IER), sc->sc_inten));
1373
1374 /*
1375 * Give the transmit and receive rings to the ADM8211.
1376 */
1377 ATW_WRITE(sc, ATW_RDB, ATW_CDRXADDR(sc, sc->sc_rxptr))(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x18)), (((
(sc)->sc_cddmamap->dm_segs[0].ds_addr + __builtin_offsetof
(struct atw_control_data, acd_rxdescs[((sc->sc_rxptr))])))
)))
;
1378 ATW_WRITE(sc, ATW_TDBD, ATW_CDTXADDR(sc, sc->sc_txnext))(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x20)), (((
(sc)->sc_cddmamap->dm_segs[0].ds_addr + __builtin_offsetof
(struct atw_control_data, acd_txdescs[((sc->sc_txnext))]))
))))
;
1379
1380 sc->sc_txthresh = 0;
1381 sc->sc_opmode = ATW_NAR_SR(1<<1) | ATW_NAR_ST(1<<13) |
1382 sc->sc_txth[sc->sc_txthresh].txth_opmode;
1383
1384 /* common 802.11 configuration */
1385 ic->ic_flags &= ~IEEE80211_F_IBSSON0x00000200;
1386 switch (ic->ic_opmode) {
1387 case IEEE80211_M_STA:
1388 break;
1389#ifndef IEEE80211_STA_ONLY
1390 case IEEE80211_M_AHDEMO: /* XXX */
1391 case IEEE80211_M_IBSS:
1392 ic->ic_flags |= IEEE80211_F_IBSSON0x00000200;
1393 /*FALLTHROUGH*/
1394#endif
1395 default: /* XXX */
1396 break;
1397 }
1398
1399#ifndef IEEE80211_STA_ONLY
1400 switch (ic->ic_opmode) {
1401 case IEEE80211_M_AHDEMO:
1402 ic->ic_bss->ni_intval = ic->ic_lintval;
1403 ic->ic_bss->ni_rssi = 0;
1404 ic->ic_bss->ni_rstamp = 0;
1405 break;
1406 default: /* XXX */
1407 break;
1408 }
1409#endif
1410 sc->sc_wepctl = 0;
1411
1412 atw_write_ssid(sc);
1413 atw_write_sup_rates(sc);
1414 if (ic->ic_caps & IEEE80211_C_WEP0x00000001)
1415 atw_write_wep(sc);
1416
1417 ic->ic_state = IEEE80211_S_INIT;
1418
1419 /*
1420 * Set the receive filter. This will start the transmit and
1421 * receive processes.
1422 */
1423 atw_filter_setup(sc);
1424
1425 /*
1426 * Start the receive process.
1427 */
1428 ATW_WRITE(sc, ATW_RDR, 0x1)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x10)), ((0x1
))))
;
1429
1430 /*
1431 * Note that the interface is now running.
1432 */
1433 ifp->if_flags |= IFF_RUNNING0x40;
1434 ifq_clr_oactive(&ifp->if_snd);
1435
1436 /* send no beacons, yet. */
1437 atw_start_beacon(sc, 0);
1438
1439 if (ic->ic_opmode == IEEE80211_M_MONITOR)
1440 error = ieee80211_new_state(ic, IEEE80211_S_RUN, -1)(((ic)->ic_newstate)((ic), (IEEE80211_S_RUN), (-1)));
1441 else
1442 error = ieee80211_new_state(ic, IEEE80211_S_SCAN, -1)(((ic)->ic_newstate)((ic), (IEEE80211_S_SCAN), (-1)));
1443 out:
1444 if (error) {
1445 ifp->if_flags &= ~IFF_RUNNING0x40;
1446 ifq_clr_oactive(&ifp->if_snd);
1447 ifp->if_timer = 0;
1448 printf("%s: interface not running\n", sc->sc_dev.dv_xname);
1449 }
1450#ifdef ATW_DEBUG
1451 atw_print_regs(sc, "end of init");
1452#endif /* ATW_DEBUG */
1453
1454 return (error);
1455}
1456
1457/* enable == 1: host control of RF3000/Si4126 through ATW_SYNCTL.
1458 * 0: MAC control of RF3000/Si4126.
1459 *
1460 * Applies power, or selects RF front-end? Sets reset condition.
1461 *
1462 * TBD support non-RFMD BBP, non-SiLabs synth.
1463 */
1464void
1465atw_bbp_io_enable(struct atw_softc *sc, int enable)
1466{
1467 if (enable) {
1468 ATW_WRITE(sc, ATW_SYNRF,(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xC4)), (((
1<<30)|(1<<25)|(1<<18)))))
1469 ATW_SYNRF_SELRF|ATW_SYNRF_PE1|ATW_SYNRF_PHYRST)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xC4)), (((
1<<30)|(1<<25)|(1<<18)))))
;
1470 DELAY(atw_bbp_io_enable_delay)(*delay_func)(atw_bbp_io_enable_delay);
1471 } else {
1472 ATW_WRITE(sc, ATW_SYNRF, 0)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xC4)), ((0
))))
;
1473 DELAY(atw_bbp_io_disable_delay)(*delay_func)(atw_bbp_io_disable_delay); /* shorter for some reason */
1474 }
1475}
1476
1477int
1478atw_tune(struct atw_softc *sc)
1479{
1480 int rc;
1481 u_int chan;
1482 struct ieee80211com *ic = &sc->sc_ic;
1483
1484 chan = ieee80211_chan2ieee(ic, ic->ic_bss->ni_chan);
1485 if (chan == 0 || chan == IEEE80211_CHAN_ANY0xffff)
1486 return 0;
1487
1488 if (chan == sc->sc_cur_chan)
1489 return 0;
1490
1491 DPRINTF(sc, ("%s: chan %d -> %d\n", sc->sc_dev.dv_xname,
1492 sc->sc_cur_chan, chan));
1493
1494 atw_idle(sc, ATW_NAR_SR(1<<1)|ATW_NAR_ST(1<<13));
1495
1496 atw_si4126_tune(sc, chan);
1497 if ((rc = atw_rf3000_tune(sc, chan)) != 0)
1498 printf("%s: failed to tune channel %d\n", sc->sc_dev.dv_xname,
1499 chan);
1500
1501 ATW_WRITE(sc, ATW_NAR, sc->sc_opmode)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x30)), ((sc
->sc_opmode))))
;
1502 DELAY(20 * 1000)(*delay_func)(20 * 1000);
1503 ATW_WRITE(sc, ATW_RDR, 0x1)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x10)), ((0x1
))))
;
1504
1505 if (rc == 0)
1506 sc->sc_cur_chan = chan;
1507
1508 return rc;
1509}
1510
1511#ifdef ATW_SYNDEBUG
1512void
1513atw_si4126_print(struct atw_softc *sc)
1514{
1515 struct ifnet *ifp = &sc->sc_ic.ic_ific_ac.ac_if;
1516 u_int addr, val;
1517
1518 if (atw_debug < 3 || (ifp->if_flags & IFF_DEBUG0x4) == 0)
1519 return;
1520
1521 for (addr = 0; addr <= 8; addr++) {
1522 printf("%s: synth[%d] = ", sc->sc_dev.dv_xname, addr);
1523 if (atw_si4126_read(sc, addr, &val) == 0) {
1524 printf("<unknown> (quitting print-out)\n");
1525 break;
1526 }
1527 printf("%05x\n", val);
1528 }
1529}
1530#endif /* ATW_SYNDEBUG */
1531
1532/* Tune to channel chan by adjusting the Si4126 RF/IF synthesizer.
1533 *
1534 * The RF/IF synthesizer produces two reference frequencies for
1535 * the RF2948B transceiver. The first frequency the RF2948B requires
1536 * is two times the so-called "intermediate frequency" (IF). Since
1537 * a SAW filter on the radio fixes the IF at 374MHz, I program the
1538 * Si4126 to generate IF LO = 374MHz x 2 = 748MHz. The second
1539 * frequency required by the transceiver is the radio frequency
1540 * (RF). This is a superheterodyne transceiver; for f(chan) the
1541 * center frequency of the channel we are tuning, RF = f(chan) -
1542 * IF.
1543 *
1544 * XXX I am told by SiLabs that the Si4126 will accept a broader range
1545 * of XIN than the 2-25MHz mentioned by the datasheet, even *without*
1546 * XINDIV2 = 1. I've tried this (it is necessary to double R) and it
1547 * works, but I have still programmed for XINDIV2 = 1 to be safe.
1548 */
1549void
1550atw_si4126_tune(struct atw_softc *sc, u_int chan)
1551{
1552 u_int mhz;
1553 u_int R;
1554 u_int32_t gpio;
1555 u_int16_t gain;
1556
1557#ifdef ATW_SYNDEBUG
1558 atw_si4126_print(sc);
1559#endif /* ATW_SYNDEBUG */
1560
1561 if (sc->sc_rev >= ATW_REVISION_BA) {
1562 atw_si4126_write(sc, SI4126_MAIN0, 0x04007);
1563 atw_si4126_write(sc, SI4126_POWER2, 0x00033);
1564 atw_si4126_write(sc, SI4126_IFN5,
1565 atw_rfmd2958_ifn[chan - 1]);
1566 atw_si4126_write(sc, SI4126_RF1R6,
1567 atw_rfmd2958_rf1r[chan - 1]);
1568#ifdef NOTYET
1569 /* set TX POWER? */
1570 atw_si4126_write(sc, 0x0a,
1571 (sc->sc_srom[ATW_SR_CSR20(0x16/2)] & mask) |
1572 power << 9);
1573#endif
1574 /* set TX GAIN */
1575 atw_si4126_write(sc, 0x09, 0x00050 |
1576 sc->sc_srom[ATW_SR_TXPOWER(chan - 1)(0x54/2 + ((chan - 1) - 1)/2)]);
1577 /* wait 100us from power-up for RF, IF to settle */
1578 DELAY(100)(*delay_func)(100);
1579
1580 return;
1581 }
1582
1583 if (chan == 14)
1584 mhz = 2484;
1585 else
1586 mhz = 2412 + 5 * (chan - 1);
1587
1588 /* Tune IF to 748MHz to suit the IF LO input of the
1589 * RF2494B, which is 2 x IF. No need to set an IF divider
1590 * because an IF in 526MHz - 952MHz is allowed.
1591 *
1592 * XIN is 44.000MHz, so divide it by two to get allowable
1593 * range of 2-25MHz. SiLabs tells me that this is not
1594 * strictly necessary.
1595 */
1596
1597 if (atw_xindiv2)
1598 R = 44;
1599 else
1600 R = 88;
1601
1602 /* Power-up RF, IF synthesizers. */
1603 atw_si4126_write(sc, SI4126_POWER2,
1604 SI4126_POWER_PDIB(1<<1)|SI4126_POWER_PDRB(1<<0));
1605
1606 /* set LPWR, too? */
1607 atw_si4126_write(sc, SI4126_MAIN0,
1608 (atw_xindiv2) ? SI4126_MAIN_XINDIV2(1<<6) : 0);
1609
1610 /* Set the phase-locked loop gain. If RF2 N > 2047, then
1611 * set KP2 to 1.
1612 *
1613 * REFDIF This is different from the reference driver, which
1614 * always sets SI4126_GAIN to 0.
1615 */
1616 gain = LSHIFT(((mhz - 374) > 2047) ? 1 : 0, SI4126_GAIN_KP2_MASK)((((mhz - 374) > 2047) ? 1 : 0) << ((((u_long)((((((
0xc)) - 1) & ((0xc))) ^ ((0xc)))) >> (16)) != 0) ? 16
+ ((((u_long)(((((((0xc) >> 16)) - 1) & (((0xc) >>
16))) ^ (((0xc) >> 16)))) >> (8)) != 0) ? 8 + ((
((u_long)((((((((0xc) >> 16) >> 8)) - 1) & ((
((0xc) >> 16) >> 8))) ^ ((((0xc) >> 16) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xc) >>
16) >> 8) >> 4)) - 1) & (((((0xc) >> 16
) >> 8) >> 4))) ^ (((((0xc) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xc) >> 16) >> 8) >> 4) >> 2)) -
1) & ((((((0xc) >> 16) >> 8) >> 4) >>
2))) ^ ((((((0xc) >> 16) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc
) >> 16) >> 8) >> 4))) - 1) & ((((((0xc
) >> 16) >> 8) >> 4)))) ^ ((((((0xc) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xc) >> 16) >> 8))) - 1) &
(((((0xc) >> 16) >> 8)))) ^ (((((0xc) >> 16
) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((
((((0xc) >> 16) >> 8)) >> 2)) - 1) & ((
((((0xc) >> 16) >> 8)) >> 2))) ^ ((((((0xc)
>> 16) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xc) >> 16) >> 8
)))) - 1) & ((((((0xc) >> 16) >> 8))))) ^ (((
(((0xc) >> 16) >> 8)))))) >> (1)) != 0) ? 1
: 0))) : ((((u_long)((((((((0xc) >> 16))) - 1) & (
(((0xc) >> 16)))) ^ ((((0xc) >> 16))))) >> (
4)) != 0) ? 4 + ((((u_long)(((((((((0xc) >> 16)) >>
4)) - 1) & (((((0xc) >> 16)) >> 4))) ^ (((((
0xc) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xc) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xc) >> 16)) >> 4) >> 2
))) ^ ((((((0xc) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc) >> 16)
) >> 4))) - 1) & ((((((0xc) >> 16)) >> 4
)))) ^ ((((((0xc) >> 16)) >> 4))))) >> (1))
!= 0) ? 1 : 0)) : ((((u_long)(((((((((0xc) >> 16)))) -
1) & (((((0xc) >> 16))))) ^ (((((0xc) >> 16)
))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xc) >>
16))) >> 2)) - 1) & ((((((0xc) >> 16))) >>
2))) ^ ((((((0xc) >> 16))) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc) >> 16)))))
- 1) & ((((((0xc) >> 16)))))) ^ ((((((0xc) >>
16))))))) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((
((0xc))) - 1) & (((0xc)))) ^ (((0xc))))) >> (8)) !=
0) ? 8 + ((((u_long)((((((((0xc)) >> 8)) - 1) & ((
((0xc)) >> 8))) ^ ((((0xc)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xc)) >> 8) >> 4
)) - 1) & (((((0xc)) >> 8) >> 4))) ^ (((((0xc
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xc)) >> 8) >> 4) >> 2)) - 1) &
((((((0xc)) >> 8) >> 4) >> 2))) ^ ((((((0xc
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xc)) >> 8) >> 4
))) - 1) & ((((((0xc)) >> 8) >> 4)))) ^ (((((
(0xc)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0
)) : ((((u_long)(((((((((0xc)) >> 8))) - 1) & (((((
0xc)) >> 8)))) ^ (((((0xc)) >> 8))))) >> (2
)) != 0) ? 2 + ((((u_long)((((((((((0xc)) >> 8)) >>
2)) - 1) & ((((((0xc)) >> 8)) >> 2))) ^ ((((
((0xc)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 :
0) : ((((u_long)((((((((((0xc)) >> 8)))) - 1) & ((
((((0xc)) >> 8))))) ^ ((((((0xc)) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xc)))) - 1) &
((((0xc))))) ^ ((((0xc)))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xc))) >> 4)) - 1) & (((((0xc))) >>
4))) ^ (((((0xc))) >> 4)))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xc))) >> 4) >> 2)) - 1) &
((((((0xc))) >> 4) >> 2))) ^ ((((((0xc))) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xc))) >> 4))) - 1) & ((((((0xc))) >>
4)))) ^ ((((((0xc))) >> 4))))) >> (1)) != 0) ? 1
: 0)) : ((((u_long)(((((((((0xc))))) - 1) & (((((0xc))))
)) ^ (((((0xc))))))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xc)))) >> 2)) - 1) & ((((((0xc)))) >>
2))) ^ ((((((0xc)))) >> 2)))) >> (1)) != 0) ? 1 :
0) : ((((u_long)((((((((((0xc)))))) - 1) & ((((((0xc))))
))) ^ ((((((0xc)))))))) >> (1)) != 0) ? 1 : 0))))))
;
1617
1618 atw_si4126_write(sc, SI4126_GAIN1, gain);
1619
1620 /* XIN = 44MHz.
1621 *
1622 * If XINDIV2 = 1, IF = N/(2 * R) * XIN. I choose N = 1496,
1623 * R = 44 so that 1496/(2 * 44) * 44MHz = 748MHz.
1624 *
1625 * If XINDIV2 = 0, IF = N/R * XIN. I choose N = 1496, R = 88
1626 * so that 1496/88 * 44MHz = 748MHz.
1627 */
1628 atw_si4126_write(sc, SI4126_IFN5, 1496);
1629
1630 atw_si4126_write(sc, SI4126_IFR8, R);
1631
1632#ifndef ATW_REFSLAVE
1633 /* Set RF1 arbitrarily. DO NOT configure RF1 after RF2, because
1634 * then RF1 becomes the active RF synthesizer, even on the Si4126,
1635 * which has no RF1!
1636 */
1637 atw_si4126_write(sc, SI4126_RF1R6, R);
1638
1639 atw_si4126_write(sc, SI4126_RF1N3, mhz - 374);
1640#endif
1641
1642 /* N/R * XIN = RF. XIN = 44MHz. We desire RF = mhz - IF,
1643 * where IF = 374MHz. Let's divide XIN to 1MHz. So R = 44.
1644 * Now let's multiply it to mhz. So mhz - IF = N.
1645 */
1646 atw_si4126_write(sc, SI4126_RF2R7, R);
1647
1648 atw_si4126_write(sc, SI4126_RF2N4, mhz - 374);
1649
1650 /* wait 100us from power-up for RF, IF to settle */
1651 DELAY(100)(*delay_func)(100);
1652
1653 gpio = ATW_READ(sc, ATW_GPIO)(((sc)->sc_st)->read_4(((sc)->sc_sh), ((0x5C))));
1654 gpio &= ~(ATW_GPIO_EN_MASK0x3f000|ATW_GPIO_O_MASK0xfc0|ATW_GPIO_I_MASK0x3f);
1655 gpio |= LSHIFT(1, ATW_GPIO_EN_MASK)((1) << ((((u_long)((((((0x3f000)) - 1) & ((0x3f000
))) ^ ((0x3f000)))) >> (16)) != 0) ? 16 + ((((u_long)((
(((((0x3f000) >> 16)) - 1) & (((0x3f000) >> 16
))) ^ (((0x3f000) >> 16)))) >> (8)) != 0) ? 8 + (
(((u_long)((((((((0x3f000) >> 16) >> 8)) - 1) &
((((0x3f000) >> 16) >> 8))) ^ ((((0x3f000) >>
16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)((((
(((((0x3f000) >> 16) >> 8) >> 4)) - 1) &
(((((0x3f000) >> 16) >> 8) >> 4))) ^ (((((
0x3f000) >> 16) >> 8) >> 4)))) >> (2)
) != 0) ? 2 + ((((u_long)((((((((((0x3f000) >> 16) >>
8) >> 4) >> 2)) - 1) & ((((((0x3f000) >>
16) >> 8) >> 4) >> 2))) ^ ((((((0x3f000) >>
16) >> 8) >> 4) >> 2)))) >> (1)) != 0
) ? 1 : 0) : ((((u_long)((((((((((0x3f000) >> 16) >>
8) >> 4))) - 1) & ((((((0x3f000) >> 16) >>
8) >> 4)))) ^ ((((((0x3f000) >> 16) >> 8) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3f000
) >> 16) >> 8))) - 1) & (((((0x3f000) >>
16) >> 8)))) ^ (((((0x3f000) >> 16) >> 8))
))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3f000) >>
16) >> 8)) >> 2)) - 1) & ((((((0x3f000) >>
16) >> 8)) >> 2))) ^ ((((((0x3f000) >> 16)
>> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : (
(((u_long)((((((((((0x3f000) >> 16) >> 8)))) - 1)
& ((((((0x3f000) >> 16) >> 8))))) ^ ((((((0x3f000
) >> 16) >> 8)))))) >> (1)) != 0) ? 1 : 0))
) : ((((u_long)((((((((0x3f000) >> 16))) - 1) & (((
(0x3f000) >> 16)))) ^ ((((0x3f000) >> 16))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0x3f000) >> 16)) >>
4)) - 1) & (((((0x3f000) >> 16)) >> 4))) ^ (
((((0x3f000) >> 16)) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0x3f000) >> 16)) >> 4
) >> 2)) - 1) & ((((((0x3f000) >> 16)) >>
4) >> 2))) ^ ((((((0x3f000) >> 16)) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f000
) >> 16)) >> 4))) - 1) & ((((((0x3f000) >>
16)) >> 4)))) ^ ((((((0x3f000) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3f000
) >> 16)))) - 1) & (((((0x3f000) >> 16))))) ^
(((((0x3f000) >> 16)))))) >> (2)) != 0) ? 2 + ((
((u_long)((((((((((0x3f000) >> 16))) >> 2)) - 1) &
((((((0x3f000) >> 16))) >> 2))) ^ ((((((0x3f000)
>> 16))) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0x3f000) >> 16))))) - 1) & ((
((((0x3f000) >> 16)))))) ^ ((((((0x3f000) >> 16))
))))) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0x3f000
))) - 1) & (((0x3f000)))) ^ (((0x3f000))))) >> (8))
!= 0) ? 8 + ((((u_long)((((((((0x3f000)) >> 8)) - 1) &
((((0x3f000)) >> 8))) ^ ((((0x3f000)) >> 8)))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0x3f000)) >> 8) >>
4)) - 1) & (((((0x3f000)) >> 8) >> 4))) ^ ((
(((0x3f000)) >> 8) >> 4)))) >> (2)) != 0) ?
2 + ((((u_long)((((((((((0x3f000)) >> 8) >> 4) >>
2)) - 1) & ((((((0x3f000)) >> 8) >> 4) >>
2))) ^ ((((((0x3f000)) >> 8) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f000
)) >> 8) >> 4))) - 1) & ((((((0x3f000)) >>
8) >> 4)))) ^ ((((((0x3f000)) >> 8) >> 4))
))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3f000
)) >> 8))) - 1) & (((((0x3f000)) >> 8)))) ^ (
((((0x3f000)) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0x3f000)) >> 8)) >> 2)) - 1) & (((
(((0x3f000)) >> 8)) >> 2))) ^ ((((((0x3f000)) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0x3f000)) >> 8)))) - 1) & ((((((0x3f000)
) >> 8))))) ^ ((((((0x3f000)) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x3f000)))) - 1) &
((((0x3f000))))) ^ ((((0x3f000)))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0x3f000))) >> 4)) - 1) & (((
((0x3f000))) >> 4))) ^ (((((0x3f000))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x3f000))) >> 4)
>> 2)) - 1) & ((((((0x3f000))) >> 4) >>
2))) ^ ((((((0x3f000))) >> 4) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f000))) >>
4))) - 1) & ((((((0x3f000))) >> 4)))) ^ ((((((0x3f000
))) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0x3f000))))) - 1) & (((((0x3f000)))))) ^ (((((0x3f000
))))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3f000
)))) >> 2)) - 1) & ((((((0x3f000)))) >> 2))) ^
((((((0x3f000)))) >> 2)))) >> (1)) != 0) ? 1 : 0
) : ((((u_long)((((((((((0x3f000)))))) - 1) & ((((((0x3f000
))))))) ^ ((((((0x3f000)))))))) >> (1)) != 0) ? 1 : 0))
))))
;
1656
1657 if ((sc->sc_ifsc_ic.ic_ac.ac_if.if_flags & IFF_LINK10x2000) != 0 && chan != 14) {
1658 /* Set a Prism RF front-end to a special mode for channel 14?
1659 *
1660 * Apparently the SMC2635W needs this, although I don't think
1661 * it has a Prism RF.
1662 */
1663 gpio |= LSHIFT(1, ATW_GPIO_O_MASK)((1) << ((((u_long)((((((0xfc0)) - 1) & ((0xfc0))) ^
((0xfc0)))) >> (16)) != 0) ? 16 + ((((u_long)(((((((0xfc0
) >> 16)) - 1) & (((0xfc0) >> 16))) ^ (((0xfc0
) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long)((((((
((0xfc0) >> 16) >> 8)) - 1) & ((((0xfc0) >>
16) >> 8))) ^ ((((0xfc0) >> 16) >> 8)))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xfc0) >> 16) >>
8) >> 4)) - 1) & (((((0xfc0) >> 16) >>
8) >> 4))) ^ (((((0xfc0) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xfc0) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xfc0
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xfc0) >> 16) >> 8) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfc0) >> 16
) >> 8) >> 4))) - 1) & ((((((0xfc0) >> 16
) >> 8) >> 4)))) ^ ((((((0xfc0) >> 16) >>
8) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0xfc0) >> 16) >> 8))) - 1) & (((((0xfc0
) >> 16) >> 8)))) ^ (((((0xfc0) >> 16) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xfc0)
>> 16) >> 8)) >> 2)) - 1) & ((((((0xfc0
) >> 16) >> 8)) >> 2))) ^ ((((((0xfc0) >>
16) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0)
: ((((u_long)((((((((((0xfc0) >> 16) >> 8)))) - 1
) & ((((((0xfc0) >> 16) >> 8))))) ^ ((((((0xfc0
) >> 16) >> 8)))))) >> (1)) != 0) ? 1 : 0))
) : ((((u_long)((((((((0xfc0) >> 16))) - 1) & ((((0xfc0
) >> 16)))) ^ ((((0xfc0) >> 16))))) >> (4))
!= 0) ? 4 + ((((u_long)(((((((((0xfc0) >> 16)) >>
4)) - 1) & (((((0xfc0) >> 16)) >> 4))) ^ (((
((0xfc0) >> 16)) >> 4)))) >> (2)) != 0) ? 2
+ ((((u_long)((((((((((0xfc0) >> 16)) >> 4) >>
2)) - 1) & ((((((0xfc0) >> 16)) >> 4) >>
2))) ^ ((((((0xfc0) >> 16)) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfc0) >>
16)) >> 4))) - 1) & ((((((0xfc0) >> 16)) >>
4)))) ^ ((((((0xfc0) >> 16)) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xfc0) >> 16)
))) - 1) & (((((0xfc0) >> 16))))) ^ (((((0xfc0) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xfc0
) >> 16))) >> 2)) - 1) & ((((((0xfc0) >>
16))) >> 2))) ^ ((((((0xfc0) >> 16))) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfc0
) >> 16))))) - 1) & ((((((0xfc0) >> 16)))))) ^
((((((0xfc0) >> 16))))))) >> (1)) != 0) ? 1 : 0)
))) : ((((u_long)(((((((0xfc0))) - 1) & (((0xfc0)))) ^ ((
(0xfc0))))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xfc0
)) >> 8)) - 1) & ((((0xfc0)) >> 8))) ^ ((((0xfc0
)) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)((((((
(((0xfc0)) >> 8) >> 4)) - 1) & (((((0xfc0)) >>
8) >> 4))) ^ (((((0xfc0)) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfc0)) >> 8) >>
4) >> 2)) - 1) & ((((((0xfc0)) >> 8) >>
4) >> 2))) ^ ((((((0xfc0)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfc0
)) >> 8) >> 4))) - 1) & ((((((0xfc0)) >>
8) >> 4)))) ^ ((((((0xfc0)) >> 8) >> 4))))
) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xfc0))
>> 8))) - 1) & (((((0xfc0)) >> 8)))) ^ (((((
0xfc0)) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long)
((((((((((0xfc0)) >> 8)) >> 2)) - 1) & ((((((
0xfc0)) >> 8)) >> 2))) ^ ((((((0xfc0)) >> 8
)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(
(((((((((0xfc0)) >> 8)))) - 1) & ((((((0xfc0)) >>
8))))) ^ ((((((0xfc0)) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xfc0)))) - 1) & ((((0xfc0
))))) ^ ((((0xfc0)))))) >> (4)) != 0) ? 4 + ((((u_long)
(((((((((0xfc0))) >> 4)) - 1) & (((((0xfc0))) >>
4))) ^ (((((0xfc0))) >> 4)))) >> (2)) != 0) ? 2 +
((((u_long)((((((((((0xfc0))) >> 4) >> 2)) - 1) &
((((((0xfc0))) >> 4) >> 2))) ^ ((((((0xfc0))) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xfc0))) >> 4))) - 1) & ((((((0xfc0))) >>
4)))) ^ ((((((0xfc0))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xfc0))))) - 1) & (((((0xfc0
)))))) ^ (((((0xfc0))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xfc0)))) >> 2)) - 1) & ((((((0xfc0)))) >>
2))) ^ ((((((0xfc0)))) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xfc0)))))) - 1) & ((((((0xfc0
))))))) ^ ((((((0xfc0)))))))) >> (1)) != 0) ? 1 : 0))))
))
;
1664 }
1665 ATW_WRITE(sc, ATW_GPIO, gpio)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x5C)), ((gpio
))))
;
1666
1667#ifdef ATW_SYNDEBUG
1668 atw_si4126_print(sc);
1669#endif /* ATW_SYNDEBUG */
1670}
1671
1672/* Baseline initialization of RF3000 BBP: set CCA mode and enable antenna
1673 * diversity.
1674 *
1675 * !!!
1676 * !!! Call this w/ Tx/Rx suspended, atw_idle(, ATW_NAR_ST|ATW_NAR_SR).
1677 * !!!
1678 */
1679int
1680atw_rf3000_init(struct atw_softc *sc)
1681{
1682 int rc = 0;
1683
1684 atw_bbp_io_enable(sc, 1);
1685
1686 /* CCA is acquisition sensitive */
1687 rc = atw_rf3000_write(sc, RF3000_CCACTL0x02,
1688 LSHIFT(RF3000_CCACTL_MODE_BOTH, RF3000_CCACTL_MODE_MASK)((2) << ((((u_long)((((((0xc0)) - 1) & ((0xc0))) ^ (
(0xc0)))) >> (16)) != 0) ? 16 + ((((u_long)(((((((0xc0)
>> 16)) - 1) & (((0xc0) >> 16))) ^ (((0xc0) >>
16)))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xc0) >>
16) >> 8)) - 1) & ((((0xc0) >> 16) >> 8
))) ^ ((((0xc0) >> 16) >> 8)))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xc0) >> 16) >> 8) >>
4)) - 1) & (((((0xc0) >> 16) >> 8) >> 4
))) ^ (((((0xc0) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xc0) >> 16) >>
8) >> 4) >> 2)) - 1) & ((((((0xc0) >> 16
) >> 8) >> 4) >> 2))) ^ ((((((0xc0) >>
16) >> 8) >> 4) >> 2)))) >> (1)) != 0
) ? 1 : 0) : ((((u_long)((((((((((0xc0) >> 16) >>
8) >> 4))) - 1) & ((((((0xc0) >> 16) >>
8) >> 4)))) ^ ((((((0xc0) >> 16) >> 8) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xc0
) >> 16) >> 8))) - 1) & (((((0xc0) >> 16
) >> 8)))) ^ (((((0xc0) >> 16) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xc0) >> 16) >>
8)) >> 2)) - 1) & ((((((0xc0) >> 16) >>
8)) >> 2))) ^ ((((((0xc0) >> 16) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc0
) >> 16) >> 8)))) - 1) & ((((((0xc0) >>
16) >> 8))))) ^ ((((((0xc0) >> 16) >> 8)))
))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xc0)
>> 16))) - 1) & ((((0xc0) >> 16)))) ^ ((((0xc0
) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long)(((((
((((0xc0) >> 16)) >> 4)) - 1) & (((((0xc0) >>
16)) >> 4))) ^ (((((0xc0) >> 16)) >> 4))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xc0) >>
16)) >> 4) >> 2)) - 1) & ((((((0xc0) >>
16)) >> 4) >> 2))) ^ ((((((0xc0) >> 16)) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xc0) >> 16)) >> 4))) - 1) & ((((((
0xc0) >> 16)) >> 4)))) ^ ((((((0xc0) >> 16)
) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)
(((((((((0xc0) >> 16)))) - 1) & (((((0xc0) >>
16))))) ^ (((((0xc0) >> 16)))))) >> (2)) != 0) ?
2 + ((((u_long)((((((((((0xc0) >> 16))) >> 2)) -
1) & ((((((0xc0) >> 16))) >> 2))) ^ ((((((0xc0
) >> 16))) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xc0) >> 16))))) - 1) & (((((
(0xc0) >> 16)))))) ^ ((((((0xc0) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xc0))) - 1) &
(((0xc0)))) ^ (((0xc0))))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xc0)) >> 8)) - 1) & ((((0xc0)) >> 8
))) ^ ((((0xc0)) >> 8)))) >> (4)) != 0) ? 4 + (((
(u_long)(((((((((0xc0)) >> 8) >> 4)) - 1) & (
((((0xc0)) >> 8) >> 4))) ^ (((((0xc0)) >> 8
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xc0)) >> 8) >> 4) >> 2)) - 1) & (((
(((0xc0)) >> 8) >> 4) >> 2))) ^ ((((((0xc0)
) >> 8) >> 4) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xc0)) >> 8) >> 4)
)) - 1) & ((((((0xc0)) >> 8) >> 4)))) ^ (((((
(0xc0)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0xc0)) >> 8))) - 1) & ((
(((0xc0)) >> 8)))) ^ (((((0xc0)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xc0)) >> 8)) >>
2)) - 1) & ((((((0xc0)) >> 8)) >> 2))) ^ (((
(((0xc0)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xc0)) >> 8)))) - 1) &
((((((0xc0)) >> 8))))) ^ ((((((0xc0)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xc0))))
- 1) & ((((0xc0))))) ^ ((((0xc0)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xc0))) >> 4)) - 1) & (
((((0xc0))) >> 4))) ^ (((((0xc0))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xc0))) >> 4) >>
2)) - 1) & ((((((0xc0))) >> 4) >> 2))) ^ (((
(((0xc0))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xc0))) >> 4))) - 1) &
((((((0xc0))) >> 4)))) ^ ((((((0xc0))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xc0))))
) - 1) & (((((0xc0)))))) ^ (((((0xc0))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0xc0)))) >> 2)) - 1) &
((((((0xc0)))) >> 2))) ^ ((((((0xc0)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xc0))))
)) - 1) & ((((((0xc0))))))) ^ ((((((0xc0)))))))) >>
(1)) != 0) ? 1 : 0))))))
);
1689
1690 if (rc != 0)
1691 goto out;
1692
1693 /* enable diversity */
1694 rc = atw_rf3000_write(sc, RF3000_DIVCTL0x03, RF3000_DIVCTL_ENABLE(1<<7));
1695
1696 if (rc != 0)
1697 goto out;
1698
1699 /* sensible setting from a binary-only driver */
1700 rc = atw_rf3000_write(sc, RF3000_GAINCTL0x11,
1701 LSHIFT(0x1d, RF3000_GAINCTL_TXVGC_MASK)((0x1d) << ((((u_long)((((((0xfc)) - 1) & ((0xfc)))
^ ((0xfc)))) >> (16)) != 0) ? 16 + ((((u_long)(((((((0xfc
) >> 16)) - 1) & (((0xfc) >> 16))) ^ (((0xfc)
>> 16)))) >> (8)) != 0) ? 8 + ((((u_long)(((((((
(0xfc) >> 16) >> 8)) - 1) & ((((0xfc) >>
16) >> 8))) ^ ((((0xfc) >> 16) >> 8)))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xfc) >> 16) >>
8) >> 4)) - 1) & (((((0xfc) >> 16) >> 8
) >> 4))) ^ (((((0xfc) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xfc) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xfc
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xfc) >> 16) >> 8) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfc) >> 16
) >> 8) >> 4))) - 1) & ((((((0xfc) >> 16
) >> 8) >> 4)))) ^ ((((((0xfc) >> 16) >>
8) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0xfc) >> 16) >> 8))) - 1) & (((((0xfc
) >> 16) >> 8)))) ^ (((((0xfc) >> 16) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xfc) >>
16) >> 8)) >> 2)) - 1) & ((((((0xfc) >>
16) >> 8)) >> 2))) ^ ((((((0xfc) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xfc) >> 16) >> 8)))) - 1) & (((((
(0xfc) >> 16) >> 8))))) ^ ((((((0xfc) >> 16
) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xfc) >> 16))) - 1) & ((((0xfc) >> 16
)))) ^ ((((0xfc) >> 16))))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xfc) >> 16)) >> 4)) - 1) &
(((((0xfc) >> 16)) >> 4))) ^ (((((0xfc) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xfc) >> 16)) >> 4) >> 2)) - 1) &
((((((0xfc) >> 16)) >> 4) >> 2))) ^ ((((((
0xfc) >> 16)) >> 4) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0xfc) >> 16)) >>
4))) - 1) & ((((((0xfc) >> 16)) >> 4)))) ^ (
(((((0xfc) >> 16)) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xfc) >> 16)))) - 1) &
(((((0xfc) >> 16))))) ^ (((((0xfc) >> 16)))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfc) >> 16))) >>
2)) - 1) & ((((((0xfc) >> 16))) >> 2))) ^ ((
((((0xfc) >> 16))) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xfc) >> 16))))) - 1) &
((((((0xfc) >> 16)))))) ^ ((((((0xfc) >> 16)))))
)) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xfc))
) - 1) & (((0xfc)))) ^ (((0xfc))))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0xfc)) >> 8)) - 1) & ((((0xfc
)) >> 8))) ^ ((((0xfc)) >> 8)))) >> (4)) !=
0) ? 4 + ((((u_long)(((((((((0xfc)) >> 8) >> 4))
- 1) & (((((0xfc)) >> 8) >> 4))) ^ (((((0xfc
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xfc)) >> 8) >> 4) >> 2)) - 1) &
((((((0xfc)) >> 8) >> 4) >> 2))) ^ ((((((0xfc
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xfc)) >> 8) >> 4
))) - 1) & ((((((0xfc)) >> 8) >> 4)))) ^ ((((
((0xfc)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0xfc)) >> 8))) - 1) & ((
(((0xfc)) >> 8)))) ^ (((((0xfc)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfc)) >> 8)) >>
2)) - 1) & ((((((0xfc)) >> 8)) >> 2))) ^ (((
(((0xfc)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xfc)) >> 8)))) - 1) &
((((((0xfc)) >> 8))))) ^ ((((((0xfc)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xfc))))
- 1) & ((((0xfc))))) ^ ((((0xfc)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xfc))) >> 4)) - 1) & (
((((0xfc))) >> 4))) ^ (((((0xfc))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfc))) >> 4) >>
2)) - 1) & ((((((0xfc))) >> 4) >> 2))) ^ (((
(((0xfc))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xfc))) >> 4))) - 1) &
((((((0xfc))) >> 4)))) ^ ((((((0xfc))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xfc))))
) - 1) & (((((0xfc)))))) ^ (((((0xfc))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0xfc)))) >> 2)) - 1) &
((((((0xfc)))) >> 2))) ^ ((((((0xfc)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfc))))
)) - 1) & ((((((0xfc))))))) ^ ((((((0xfc)))))))) >>
(1)) != 0) ? 1 : 0))))))
);
1702
1703 if (rc != 0)
1704 goto out;
1705
1706 /* magic from a binary-only driver */
1707 rc = atw_rf3000_write(sc, RF3000_LOGAINCAL0x14,
1708 LSHIFT(0x38, RF3000_LOGAINCAL_CAL_MASK)((0x38) << ((((u_long)((((((0x3f)) - 1) & ((0x3f)))
^ ((0x3f)))) >> (16)) != 0) ? 16 + ((((u_long)(((((((0x3f
) >> 16)) - 1) & (((0x3f) >> 16))) ^ (((0x3f)
>> 16)))) >> (8)) != 0) ? 8 + ((((u_long)(((((((
(0x3f) >> 16) >> 8)) - 1) & ((((0x3f) >>
16) >> 8))) ^ ((((0x3f) >> 16) >> 8)))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0x3f) >> 16) >>
8) >> 4)) - 1) & (((((0x3f) >> 16) >> 8
) >> 4))) ^ (((((0x3f) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3f) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0x3f
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0x3f) >> 16) >> 8) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f) >> 16
) >> 8) >> 4))) - 1) & ((((((0x3f) >> 16
) >> 8) >> 4)))) ^ ((((((0x3f) >> 16) >>
8) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0x3f) >> 16) >> 8))) - 1) & (((((0x3f
) >> 16) >> 8)))) ^ (((((0x3f) >> 16) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3f) >>
16) >> 8)) >> 2)) - 1) & ((((((0x3f) >>
16) >> 8)) >> 2))) ^ ((((((0x3f) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0x3f) >> 16) >> 8)))) - 1) & (((((
(0x3f) >> 16) >> 8))))) ^ ((((((0x3f) >> 16
) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0x3f) >> 16))) - 1) & ((((0x3f) >> 16
)))) ^ ((((0x3f) >> 16))))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0x3f) >> 16)) >> 4)) - 1) &
(((((0x3f) >> 16)) >> 4))) ^ (((((0x3f) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0x3f) >> 16)) >> 4) >> 2)) - 1) &
((((((0x3f) >> 16)) >> 4) >> 2))) ^ ((((((
0x3f) >> 16)) >> 4) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0x3f) >> 16)) >>
4))) - 1) & ((((((0x3f) >> 16)) >> 4)))) ^ (
(((((0x3f) >> 16)) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0x3f) >> 16)))) - 1) &
(((((0x3f) >> 16))))) ^ (((((0x3f) >> 16)))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x3f) >> 16))) >>
2)) - 1) & ((((((0x3f) >> 16))) >> 2))) ^ ((
((((0x3f) >> 16))) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0x3f) >> 16))))) - 1) &
((((((0x3f) >> 16)))))) ^ ((((((0x3f) >> 16)))))
)) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0x3f))
) - 1) & (((0x3f)))) ^ (((0x3f))))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0x3f)) >> 8)) - 1) & ((((0x3f
)) >> 8))) ^ ((((0x3f)) >> 8)))) >> (4)) !=
0) ? 4 + ((((u_long)(((((((((0x3f)) >> 8) >> 4))
- 1) & (((((0x3f)) >> 8) >> 4))) ^ (((((0x3f
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0x3f)) >> 8) >> 4) >> 2)) - 1) &
((((((0x3f)) >> 8) >> 4) >> 2))) ^ ((((((0x3f
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0x3f)) >> 8) >> 4
))) - 1) & ((((((0x3f)) >> 8) >> 4)))) ^ ((((
((0x3f)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0x3f)) >> 8))) - 1) & ((
(((0x3f)) >> 8)))) ^ (((((0x3f)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x3f)) >> 8)) >>
2)) - 1) & ((((((0x3f)) >> 8)) >> 2))) ^ (((
(((0x3f)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0x3f)) >> 8)))) - 1) &
((((((0x3f)) >> 8))))) ^ ((((((0x3f)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x3f))))
- 1) & ((((0x3f))))) ^ ((((0x3f)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0x3f))) >> 4)) - 1) & (
((((0x3f))) >> 4))) ^ (((((0x3f))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x3f))) >> 4) >>
2)) - 1) & ((((((0x3f))) >> 4) >> 2))) ^ (((
(((0x3f))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0x3f))) >> 4))) - 1) &
((((((0x3f))) >> 4)))) ^ ((((((0x3f))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3f))))
) - 1) & (((((0x3f)))))) ^ (((((0x3f))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0x3f)))) >> 2)) - 1) &
((((((0x3f)))) >> 2))) ^ ((((((0x3f)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3f))))
)) - 1) & ((((((0x3f))))))) ^ ((((((0x3f)))))))) >>
(1)) != 0) ? 1 : 0))))))
);
1709
1710 if (rc != 0)
1711 goto out;
1712
1713 rc = atw_rf3000_write(sc, RF3000_HIGAINCAL0x15, RF3000_HIGAINCAL_DSSSPAD(1<<6));
1714
1715 if (rc != 0)
1716 goto out;
1717
1718 /*
1719 * XXX Reference driver remarks that Abocom sets this to 50.
1720 * Meaning 0x50, I think.... 50 = 0x32, which would set a bit
1721 * in the "reserved" area of register RF3000_OPTIONS1.
1722 */
1723 rc = atw_rf3000_write(sc, RF3000_OPTIONS10x1C, sc->sc_rf3000_options1);
1724
1725 if (rc != 0)
1726 goto out;
1727
1728 rc = atw_rf3000_write(sc, RF3000_OPTIONS20x1D, sc->sc_rf3000_options2);
1729
1730 if (rc != 0)
1731 goto out;
1732
1733out:
1734 atw_bbp_io_enable(sc, 0);
1735 return rc;
1736}
1737
1738#ifdef ATW_BBPDEBUG
1739void
1740atw_rf3000_print(struct atw_softc *sc)
1741{
1742 struct ifnet *ifp = &sc->sc_ic.ic_ific_ac.ac_if;
1743 u_int addr, val;
1744
1745 if (atw_debug < 3 || (ifp->if_flags & IFF_DEBUG0x4) == 0)
1746 return;
1747
1748 for (addr = 0x01; addr <= 0x15; addr++) {
1749 printf("%s: bbp[%d] = \n", sc->sc_dev.dv_xname, addr);
1750 if (atw_rf3000_read(sc, addr, &val) != 0) {
1751 printf("<unknown> (quitting print-out)\n");
1752 break;
1753 }
1754 printf("%08x\n", val);
1755 }
1756}
1757#endif /* ATW_BBPDEBUG */
1758
1759/* Set the power settings on the BBP for channel `chan'. */
1760int
1761atw_rf3000_tune(struct atw_softc *sc, u_int chan)
1762{
1763 int rc = 0;
1764 u_int32_t reg;
1765 u_int16_t txpower, lpf_cutoff, lna_gs_thresh;
1766
1767 txpower = sc->sc_srom[ATW_SR_TXPOWER(chan)(0x54/2 + ((chan) - 1)/2)];
1768 lpf_cutoff = sc->sc_srom[ATW_SR_LPF_CUTOFF(chan)(0x62/2 + ((chan) - 1)/2)];
1769 lna_gs_thresh = sc->sc_srom[ATW_SR_LNA_GS_THRESH(chan)(0x70/2 + ((chan) - 1)/2)];
1770
1771 /* odd channels: LSB, even channels: MSB */
1772 if (chan % 2 == 1) {
1773 txpower &= 0xFF;
1774 lpf_cutoff &= 0xFF;
1775 lna_gs_thresh &= 0xFF;
1776 } else {
1777 txpower >>= 8;
1778 lpf_cutoff >>= 8;
1779 lna_gs_thresh >>= 8;
1780 }
1781
1782#ifdef ATW_BBPDEBUG
1783 atw_rf3000_print(sc);
1784#endif /* ATW_BBPDEBUG */
1785
1786 DPRINTF(sc, ("%s: chan %d txpower %02x, lpf_cutoff %02x, "
1787 "lna_gs_thresh %02x\n",
1788 sc->sc_dev.dv_xname, chan, txpower, lpf_cutoff, lna_gs_thresh));
1789
1790 atw_bbp_io_enable(sc, 1);
1791
1792 if ((rc = atw_rf3000_write(sc, RF3000_GAINCTL0x11,
1793 LSHIFT(txpower, RF3000_GAINCTL_TXVGC_MASK)((txpower) << ((((u_long)((((((0xfc)) - 1) & ((0xfc
))) ^ ((0xfc)))) >> (16)) != 0) ? 16 + ((((u_long)(((((
((0xfc) >> 16)) - 1) & (((0xfc) >> 16))) ^ ((
(0xfc) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long)(
(((((((0xfc) >> 16) >> 8)) - 1) & ((((0xfc) >>
16) >> 8))) ^ ((((0xfc) >> 16) >> 8)))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xfc) >> 16) >>
8) >> 4)) - 1) & (((((0xfc) >> 16) >> 8
) >> 4))) ^ (((((0xfc) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xfc) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xfc
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xfc) >> 16) >> 8) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfc) >> 16
) >> 8) >> 4))) - 1) & ((((((0xfc) >> 16
) >> 8) >> 4)))) ^ ((((((0xfc) >> 16) >>
8) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0xfc) >> 16) >> 8))) - 1) & (((((0xfc
) >> 16) >> 8)))) ^ (((((0xfc) >> 16) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xfc) >>
16) >> 8)) >> 2)) - 1) & ((((((0xfc) >>
16) >> 8)) >> 2))) ^ ((((((0xfc) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xfc) >> 16) >> 8)))) - 1) & (((((
(0xfc) >> 16) >> 8))))) ^ ((((((0xfc) >> 16
) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xfc) >> 16))) - 1) & ((((0xfc) >> 16
)))) ^ ((((0xfc) >> 16))))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xfc) >> 16)) >> 4)) - 1) &
(((((0xfc) >> 16)) >> 4))) ^ (((((0xfc) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xfc) >> 16)) >> 4) >> 2)) - 1) &
((((((0xfc) >> 16)) >> 4) >> 2))) ^ ((((((
0xfc) >> 16)) >> 4) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0xfc) >> 16)) >>
4))) - 1) & ((((((0xfc) >> 16)) >> 4)))) ^ (
(((((0xfc) >> 16)) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xfc) >> 16)))) - 1) &
(((((0xfc) >> 16))))) ^ (((((0xfc) >> 16)))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfc) >> 16))) >>
2)) - 1) & ((((((0xfc) >> 16))) >> 2))) ^ ((
((((0xfc) >> 16))) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xfc) >> 16))))) - 1) &
((((((0xfc) >> 16)))))) ^ ((((((0xfc) >> 16)))))
)) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xfc))
) - 1) & (((0xfc)))) ^ (((0xfc))))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0xfc)) >> 8)) - 1) & ((((0xfc
)) >> 8))) ^ ((((0xfc)) >> 8)))) >> (4)) !=
0) ? 4 + ((((u_long)(((((((((0xfc)) >> 8) >> 4))
- 1) & (((((0xfc)) >> 8) >> 4))) ^ (((((0xfc
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xfc)) >> 8) >> 4) >> 2)) - 1) &
((((((0xfc)) >> 8) >> 4) >> 2))) ^ ((((((0xfc
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xfc)) >> 8) >> 4
))) - 1) & ((((((0xfc)) >> 8) >> 4)))) ^ ((((
((0xfc)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0xfc)) >> 8))) - 1) & ((
(((0xfc)) >> 8)))) ^ (((((0xfc)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfc)) >> 8)) >>
2)) - 1) & ((((((0xfc)) >> 8)) >> 2))) ^ (((
(((0xfc)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xfc)) >> 8)))) - 1) &
((((((0xfc)) >> 8))))) ^ ((((((0xfc)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xfc))))
- 1) & ((((0xfc))))) ^ ((((0xfc)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xfc))) >> 4)) - 1) & (
((((0xfc))) >> 4))) ^ (((((0xfc))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfc))) >> 4) >>
2)) - 1) & ((((((0xfc))) >> 4) >> 2))) ^ (((
(((0xfc))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xfc))) >> 4))) - 1) &
((((((0xfc))) >> 4)))) ^ ((((((0xfc))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xfc))))
) - 1) & (((((0xfc)))))) ^ (((((0xfc))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0xfc)))) >> 2)) - 1) &
((((((0xfc)))) >> 2))) ^ ((((((0xfc)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfc))))
)) - 1) & ((((((0xfc))))))) ^ ((((((0xfc)))))))) >>
(1)) != 0) ? 1 : 0))))))
)) != 0)
1794 goto out;
1795
1796 if ((rc = atw_rf3000_write(sc, RF3000_LOGAINCAL0x14, lpf_cutoff)) != 0)
1797 goto out;
1798
1799 if ((rc = atw_rf3000_write(sc, RF3000_HIGAINCAL0x15, lna_gs_thresh)) != 0)
1800 goto out;
1801
1802 if ((rc = atw_rf3000_write(sc, RF3000_OPTIONS10x1C, 0x0)) != 0)
1803 goto out;
1804
1805 rc = atw_rf3000_write(sc, RF3000_OPTIONS20x1D, RF3000_OPTIONS2_LNAGS_DELAY(1<<7));
1806 if (rc != 0)
1807 goto out;
1808
1809#ifdef ATW_BBPDEBUG
1810 atw_rf3000_print(sc);
1811#endif /* ATW_BBPDEBUG */
1812
1813out:
1814 atw_bbp_io_enable(sc, 0);
1815
1816 /* set beacon, rts, atim transmit power */
1817 reg = ATW_READ(sc, ATW_PLCPHD)(((sc)->sc_st)->read_4(((sc)->sc_sh), ((0x68))));
1818 reg &= ~ATW_PLCPHD_SERVICE_MASK0xff0000;
1819 reg |= LSHIFT(LSHIFT(txpower, RF3000_GAINCTL_TXVGC_MASK),((((txpower) << ((((u_long)((((((0xfc)) - 1) & ((0xfc
))) ^ ((0xfc)))) >> (16)) != 0) ? 16 + ((((u_long)(((((
((0xfc) >> 16)) - 1) & (((0xfc) >> 16))) ^ ((
(0xfc) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long)(
(((((((0xfc) >> 16) >> 8)) - 1) & ((((0xfc) >>
16) >> 8))) ^ ((((0xfc) >> 16) >> 8)))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xfc) >> 16) >>
8) >> 4)) - 1) & (((((0xfc) >> 16) >> 8
) >> 4))) ^ (((((0xfc) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xfc) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xfc
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xfc) >> 16) >> 8) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfc) >> 16
) >> 8) >> 4))) - 1) & ((((((0xfc) >> 16
) >> 8) >> 4)))) ^ ((((((0xfc) >> 16) >>
8) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0xfc) >> 16) >> 8))) - 1) & (((((0xfc
) >> 16) >> 8)))) ^ (((((0xfc) >> 16) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xfc) >>
16) >> 8)) >> 2)) - 1) & ((((((0xfc) >>
16) >> 8)) >> 2))) ^ ((((((0xfc) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xfc) >> 16) >> 8)))) - 1) & (((((
(0xfc) >> 16) >> 8))))) ^ ((((((0xfc) >> 16
) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xfc) >> 16))) - 1) & ((((0xfc) >> 16
)))) ^ ((((0xfc) >> 16))))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xfc) >> 16)) >> 4)) - 1) &
(((((0xfc) >> 16)) >> 4))) ^ (((((0xfc) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xfc) >> 16)) >> 4) >> 2)) - 1) &
((((((0xfc) >> 16)) >> 4) >> 2))) ^ ((((((
0xfc) >> 16)) >> 4) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0xfc) >> 16)) >>
4))) - 1) & ((((((0xfc) >> 16)) >> 4)))) ^ (
(((((0xfc) >> 16)) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xfc) >> 16)))) - 1) &
(((((0xfc) >> 16))))) ^ (((((0xfc) >> 16)))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfc) >> 16))) >>
2)) - 1) & ((((((0xfc) >> 16))) >> 2))) ^ ((
((((0xfc) >> 16))) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xfc) >> 16))))) - 1) &
((((((0xfc) >> 16)))))) ^ ((((((0xfc) >> 16)))))
)) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xfc))
) - 1) & (((0xfc)))) ^ (((0xfc))))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0xfc)) >> 8)) - 1) & ((((0xfc
)) >> 8))) ^ ((((0xfc)) >> 8)))) >> (4)) !=
0) ? 4 + ((((u_long)(((((((((0xfc)) >> 8) >> 4))
- 1) & (((((0xfc)) >> 8) >> 4))) ^ (((((0xfc
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xfc)) >> 8) >> 4) >> 2)) - 1) &
((((((0xfc)) >> 8) >> 4) >> 2))) ^ ((((((0xfc
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xfc)) >> 8) >> 4
))) - 1) & ((((((0xfc)) >> 8) >> 4)))) ^ ((((
((0xfc)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0xfc)) >> 8))) - 1) & ((
(((0xfc)) >> 8)))) ^ (((((0xfc)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfc)) >> 8)) >>
2)) - 1) & ((((((0xfc)) >> 8)) >> 2))) ^ (((
(((0xfc)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xfc)) >> 8)))) - 1) &
((((((0xfc)) >> 8))))) ^ ((((((0xfc)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xfc))))
- 1) & ((((0xfc))))) ^ ((((0xfc)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xfc))) >> 4)) - 1) & (
((((0xfc))) >> 4))) ^ (((((0xfc))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfc))) >> 4) >>
2)) - 1) & ((((((0xfc))) >> 4) >> 2))) ^ (((
(((0xfc))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xfc))) >> 4))) - 1) &
((((((0xfc))) >> 4)))) ^ ((((((0xfc))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xfc))))
) - 1) & (((((0xfc)))))) ^ (((((0xfc))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0xfc)))) >> 2)) - 1) &
((((((0xfc)))) >> 2))) ^ ((((((0xfc)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfc))))
)) - 1) & ((((((0xfc))))))) ^ ((((((0xfc)))))))) >>
(1)) != 0) ? 1 : 0))))))) << ((((u_long)((((((0xff0000
)) - 1) & ((0xff0000))) ^ ((0xff0000)))) >> (16)) !=
0) ? 16 + ((((u_long)(((((((0xff0000) >> 16)) - 1) &
(((0xff0000) >> 16))) ^ (((0xff0000) >> 16)))) >>
(8)) != 0) ? 8 + ((((u_long)((((((((0xff0000) >> 16) >>
8)) - 1) & ((((0xff0000) >> 16) >> 8))) ^ ((
((0xff0000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0xff0000) >> 16) >> 8) >>
4)) - 1) & (((((0xff0000) >> 16) >> 8) >>
4))) ^ (((((0xff0000) >> 16) >> 8) >> 4)))
) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff0000) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xff0000) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4)))) ^ ((((((0xff0000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff0000) >> 16) >> 8))) -
1) & (((((0xff0000) >> 16) >> 8)))) ^ (((((0xff0000
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000) >> 16) >> 8)) >>
2)) - 1) & ((((((0xff0000) >> 16) >> 8)) >>
2))) ^ ((((((0xff0000) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8)))) - 1) & ((((((0xff0000) >>
16) >> 8))))) ^ ((((((0xff0000) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
) >> 16))) - 1) & ((((0xff0000) >> 16)))) ^ (
(((0xff0000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff0000) >> 16)) >> 4)) - 1) & (((
((0xff0000) >> 16)) >> 4))) ^ (((((0xff0000) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff0000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff0000) >> 16)) >> 4) >> 2))) ^ ((
((((0xff0000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000) >>
16)) >> 4))) - 1) & ((((((0xff0000) >> 16)) >>
4)))) ^ ((((((0xff0000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000) >>
16)))) - 1) & (((((0xff0000) >> 16))))) ^ (((((0xff0000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0xff0000) >> 16))) >> 2)) - 1) & ((((((
0xff0000) >> 16))) >> 2))) ^ ((((((0xff0000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff0000) >> 16))))) - 1) & ((((((0xff0000
) >> 16)))))) ^ ((((((0xff0000) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff0000))) - 1) &
(((0xff0000)))) ^ (((0xff0000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0xff0000)) >> 8)) - 1) & ((((0xff0000
)) >> 8))) ^ ((((0xff0000)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xff0000)) >> 8) >>
4)) - 1) & (((((0xff0000)) >> 8) >> 4))) ^ (
((((0xff0000)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff0000)) >> 8) >> 4
) >> 2)) - 1) & ((((((0xff0000)) >> 8) >>
4) >> 2))) ^ ((((((0xff0000)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
)) >> 8) >> 4))) - 1) & ((((((0xff0000)) >>
8) >> 4)))) ^ ((((((0xff0000)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000
)) >> 8))) - 1) & (((((0xff0000)) >> 8)))) ^ (
((((0xff0000)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000)) >> 8)) >> 2)) - 1) &
((((((0xff0000)) >> 8)) >> 2))) ^ ((((((0xff0000
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff0000)) >> 8)))) - 1) & ((
((((0xff0000)) >> 8))))) ^ ((((((0xff0000)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
)))) - 1) & ((((0xff0000))))) ^ ((((0xff0000)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff0000))) >> 4)
) - 1) & (((((0xff0000))) >> 4))) ^ (((((0xff0000))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff0000))) >> 4) >> 2)) - 1) & ((((((0xff0000
))) >> 4) >> 2))) ^ ((((((0xff0000))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0xff0000))) >> 4))) - 1) & ((((((0xff0000)))
>> 4)))) ^ ((((((0xff0000))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000))))) - 1) &
(((((0xff0000)))))) ^ (((((0xff0000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xff0000)))) >> 2)) - 1) &
((((((0xff0000)))) >> 2))) ^ ((((((0xff0000)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
)))))) - 1) & ((((((0xff0000))))))) ^ ((((((0xff0000)))))
))) >> (1)) != 0) ? 1 : 0))))))
1820 ATW_PLCPHD_SERVICE_MASK)((((txpower) << ((((u_long)((((((0xfc)) - 1) & ((0xfc
))) ^ ((0xfc)))) >> (16)) != 0) ? 16 + ((((u_long)(((((
((0xfc) >> 16)) - 1) & (((0xfc) >> 16))) ^ ((
(0xfc) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long)(
(((((((0xfc) >> 16) >> 8)) - 1) & ((((0xfc) >>
16) >> 8))) ^ ((((0xfc) >> 16) >> 8)))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xfc) >> 16) >>
8) >> 4)) - 1) & (((((0xfc) >> 16) >> 8
) >> 4))) ^ (((((0xfc) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xfc) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xfc
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xfc) >> 16) >> 8) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfc) >> 16
) >> 8) >> 4))) - 1) & ((((((0xfc) >> 16
) >> 8) >> 4)))) ^ ((((((0xfc) >> 16) >>
8) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0xfc) >> 16) >> 8))) - 1) & (((((0xfc
) >> 16) >> 8)))) ^ (((((0xfc) >> 16) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xfc) >>
16) >> 8)) >> 2)) - 1) & ((((((0xfc) >>
16) >> 8)) >> 2))) ^ ((((((0xfc) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xfc) >> 16) >> 8)))) - 1) & (((((
(0xfc) >> 16) >> 8))))) ^ ((((((0xfc) >> 16
) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xfc) >> 16))) - 1) & ((((0xfc) >> 16
)))) ^ ((((0xfc) >> 16))))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xfc) >> 16)) >> 4)) - 1) &
(((((0xfc) >> 16)) >> 4))) ^ (((((0xfc) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xfc) >> 16)) >> 4) >> 2)) - 1) &
((((((0xfc) >> 16)) >> 4) >> 2))) ^ ((((((
0xfc) >> 16)) >> 4) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0xfc) >> 16)) >>
4))) - 1) & ((((((0xfc) >> 16)) >> 4)))) ^ (
(((((0xfc) >> 16)) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xfc) >> 16)))) - 1) &
(((((0xfc) >> 16))))) ^ (((((0xfc) >> 16)))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfc) >> 16))) >>
2)) - 1) & ((((((0xfc) >> 16))) >> 2))) ^ ((
((((0xfc) >> 16))) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xfc) >> 16))))) - 1) &
((((((0xfc) >> 16)))))) ^ ((((((0xfc) >> 16)))))
)) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xfc))
) - 1) & (((0xfc)))) ^ (((0xfc))))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0xfc)) >> 8)) - 1) & ((((0xfc
)) >> 8))) ^ ((((0xfc)) >> 8)))) >> (4)) !=
0) ? 4 + ((((u_long)(((((((((0xfc)) >> 8) >> 4))
- 1) & (((((0xfc)) >> 8) >> 4))) ^ (((((0xfc
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xfc)) >> 8) >> 4) >> 2)) - 1) &
((((((0xfc)) >> 8) >> 4) >> 2))) ^ ((((((0xfc
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xfc)) >> 8) >> 4
))) - 1) & ((((((0xfc)) >> 8) >> 4)))) ^ ((((
((0xfc)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0xfc)) >> 8))) - 1) & ((
(((0xfc)) >> 8)))) ^ (((((0xfc)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfc)) >> 8)) >>
2)) - 1) & ((((((0xfc)) >> 8)) >> 2))) ^ (((
(((0xfc)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xfc)) >> 8)))) - 1) &
((((((0xfc)) >> 8))))) ^ ((((((0xfc)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xfc))))
- 1) & ((((0xfc))))) ^ ((((0xfc)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xfc))) >> 4)) - 1) & (
((((0xfc))) >> 4))) ^ (((((0xfc))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xfc))) >> 4) >>
2)) - 1) & ((((((0xfc))) >> 4) >> 2))) ^ (((
(((0xfc))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xfc))) >> 4))) - 1) &
((((((0xfc))) >> 4)))) ^ ((((((0xfc))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xfc))))
) - 1) & (((((0xfc)))))) ^ (((((0xfc))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0xfc)))) >> 2)) - 1) &
((((((0xfc)))) >> 2))) ^ ((((((0xfc)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xfc))))
)) - 1) & ((((((0xfc))))))) ^ ((((((0xfc)))))))) >>
(1)) != 0) ? 1 : 0))))))) << ((((u_long)((((((0xff0000
)) - 1) & ((0xff0000))) ^ ((0xff0000)))) >> (16)) !=
0) ? 16 + ((((u_long)(((((((0xff0000) >> 16)) - 1) &
(((0xff0000) >> 16))) ^ (((0xff0000) >> 16)))) >>
(8)) != 0) ? 8 + ((((u_long)((((((((0xff0000) >> 16) >>
8)) - 1) & ((((0xff0000) >> 16) >> 8))) ^ ((
((0xff0000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0xff0000) >> 16) >> 8) >>
4)) - 1) & (((((0xff0000) >> 16) >> 8) >>
4))) ^ (((((0xff0000) >> 16) >> 8) >> 4)))
) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff0000) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xff0000) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4)))) ^ ((((((0xff0000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff0000) >> 16) >> 8))) -
1) & (((((0xff0000) >> 16) >> 8)))) ^ (((((0xff0000
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000) >> 16) >> 8)) >>
2)) - 1) & ((((((0xff0000) >> 16) >> 8)) >>
2))) ^ ((((((0xff0000) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8)))) - 1) & ((((((0xff0000) >>
16) >> 8))))) ^ ((((((0xff0000) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
) >> 16))) - 1) & ((((0xff0000) >> 16)))) ^ (
(((0xff0000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff0000) >> 16)) >> 4)) - 1) & (((
((0xff0000) >> 16)) >> 4))) ^ (((((0xff0000) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff0000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff0000) >> 16)) >> 4) >> 2))) ^ ((
((((0xff0000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000) >>
16)) >> 4))) - 1) & ((((((0xff0000) >> 16)) >>
4)))) ^ ((((((0xff0000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000) >>
16)))) - 1) & (((((0xff0000) >> 16))))) ^ (((((0xff0000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0xff0000) >> 16))) >> 2)) - 1) & ((((((
0xff0000) >> 16))) >> 2))) ^ ((((((0xff0000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff0000) >> 16))))) - 1) & ((((((0xff0000
) >> 16)))))) ^ ((((((0xff0000) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff0000))) - 1) &
(((0xff0000)))) ^ (((0xff0000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0xff0000)) >> 8)) - 1) & ((((0xff0000
)) >> 8))) ^ ((((0xff0000)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xff0000)) >> 8) >>
4)) - 1) & (((((0xff0000)) >> 8) >> 4))) ^ (
((((0xff0000)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff0000)) >> 8) >> 4
) >> 2)) - 1) & ((((((0xff0000)) >> 8) >>
4) >> 2))) ^ ((((((0xff0000)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
)) >> 8) >> 4))) - 1) & ((((((0xff0000)) >>
8) >> 4)))) ^ ((((((0xff0000)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000
)) >> 8))) - 1) & (((((0xff0000)) >> 8)))) ^ (
((((0xff0000)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000)) >> 8)) >> 2)) - 1) &
((((((0xff0000)) >> 8)) >> 2))) ^ ((((((0xff0000
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff0000)) >> 8)))) - 1) & ((
((((0xff0000)) >> 8))))) ^ ((((((0xff0000)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
)))) - 1) & ((((0xff0000))))) ^ ((((0xff0000)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff0000))) >> 4)
) - 1) & (((((0xff0000))) >> 4))) ^ (((((0xff0000))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff0000))) >> 4) >> 2)) - 1) & ((((((0xff0000
))) >> 4) >> 2))) ^ ((((((0xff0000))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0xff0000))) >> 4))) - 1) & ((((((0xff0000)))
>> 4)))) ^ ((((((0xff0000))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000))))) - 1) &
(((((0xff0000)))))) ^ (((((0xff0000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xff0000)))) >> 2)) - 1) &
((((((0xff0000)))) >> 2))) ^ ((((((0xff0000)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
)))))) - 1) & ((((((0xff0000))))))) ^ ((((((0xff0000)))))
))) >> (1)) != 0) ? 1 : 0))))))
;
1821 ATW_WRITE(sc, ATW_PLCPHD, reg)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x68)), ((reg
))))
;
1822 DELAY(2 * 1000)(*delay_func)(2 * 1000);
1823
1824 return rc;
1825}
1826
1827/* Write a register on the RF3000 baseband processor using the
1828 * registers provided by the ADM8211 for this purpose.
1829 *
1830 * Return 0 on success.
1831 */
1832int
1833atw_rf3000_write(struct atw_softc *sc, u_int addr, u_int val)
1834{
1835 u_int32_t reg;
1836 int i;
1837
1838 reg = sc->sc_bbpctl_wr |
1839 LSHIFT(val & 0xff, ATW_BBPCTL_DATA_MASK)((val & 0xff) << ((((u_long)((((((0xff)) - 1) &
((0xff))) ^ ((0xff)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0xff) >> 16)) - 1) & (((0xff) >> 16))
) ^ (((0xff) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xff) >> 16) >> 8)) - 1) & ((((0xff)
>> 16) >> 8))) ^ ((((0xff) >> 16) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >>
16) >> 8) >> 4)) - 1) & (((((0xff) >> 16
) >> 8) >> 4))) ^ (((((0xff) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff) >> 16) >> 8) >> 4) >> 2)) -
1) & ((((((0xff) >> 16) >> 8) >> 4) >>
2))) ^ ((((((0xff) >> 16) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff
) >> 16) >> 8) >> 4)))) ^ ((((((0xff) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff) >> 16) >> 8))) - 1)
& (((((0xff) >> 16) >> 8)))) ^ (((((0xff) >>
16) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff) >> 16) >> 8)) >> 2)) - 1) &
((((((0xff) >> 16) >> 8)) >> 2))) ^ ((((((
0xff) >> 16) >> 8)) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16) >>
8)))) - 1) & ((((((0xff) >> 16) >> 8))))) ^ (
(((((0xff) >> 16) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xff) >> 16))) - 1) &
((((0xff) >> 16)))) ^ ((((0xff) >> 16))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >> 16)) >>
4)) - 1) & (((((0xff) >> 16)) >> 4))) ^ ((((
(0xff) >> 16)) >> 4)))) >> (2)) != 0) ? 2 +
((((u_long)((((((((((0xff) >> 16)) >> 4) >>
2)) - 1) & ((((((0xff) >> 16)) >> 4) >>
2))) ^ ((((((0xff) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16
)) >> 4))) - 1) & ((((((0xff) >> 16)) >>
4)))) ^ ((((((0xff) >> 16)) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff) >> 16))
)) - 1) & (((((0xff) >> 16))))) ^ (((((0xff) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff
) >> 16))) >> 2)) - 1) & ((((((0xff) >>
16))) >> 2))) ^ ((((((0xff) >> 16))) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff)
>> 16))))) - 1) & ((((((0xff) >> 16)))))) ^ (
(((((0xff) >> 16))))))) >> (1)) != 0) ? 1 : 0))))
: ((((u_long)(((((((0xff))) - 1) & (((0xff)))) ^ (((0xff
))))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff)) >>
8)) - 1) & ((((0xff)) >> 8))) ^ ((((0xff)) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff)) >>
8) >> 4)) - 1) & (((((0xff)) >> 8) >> 4
))) ^ (((((0xff)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xff)) >> 8) >> 4)
>> 2)) - 1) & ((((((0xff)) >> 8) >> 4)
>> 2))) ^ ((((((0xff)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
)) >> 8) >> 4))) - 1) & ((((((0xff)) >>
8) >> 4)))) ^ ((((((0xff)) >> 8) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff)) >>
8))) - 1) & (((((0xff)) >> 8)))) ^ (((((0xff)) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff))
>> 8)) >> 2)) - 1) & ((((((0xff)) >> 8
)) >> 2))) ^ ((((((0xff)) >> 8)) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff)) >> 8
)))) - 1) & ((((((0xff)) >> 8))))) ^ ((((((0xff)) >>
8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((
0xff)))) - 1) & ((((0xff))))) ^ ((((0xff)))))) >> (
4)) != 0) ? 4 + ((((u_long)(((((((((0xff))) >> 4)) - 1)
& (((((0xff))) >> 4))) ^ (((((0xff))) >> 4))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff))) >>
4) >> 2)) - 1) & ((((((0xff))) >> 4) >>
2))) ^ ((((((0xff))) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff))) >> 4)))
- 1) & ((((((0xff))) >> 4)))) ^ ((((((0xff))) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff
))))) - 1) & (((((0xff)))))) ^ (((((0xff))))))) >> (
2)) != 0) ? 2 + ((((u_long)((((((((((0xff)))) >> 2)) - 1
) & ((((((0xff)))) >> 2))) ^ ((((((0xff)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
)))))) - 1) & ((((((0xff))))))) ^ ((((((0xff)))))))) >>
(1)) != 0) ? 1 : 0))))))
|
1840 LSHIFT(addr & 0x7f, ATW_BBPCTL_ADDR_MASK)((addr & 0x7f) << ((((u_long)((((((0xff00)) - 1) &
((0xff00))) ^ ((0xff00)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0xff00) >> 16)) - 1) & (((0xff00) >> 16
))) ^ (((0xff00) >> 16)))) >> (8)) != 0) ? 8 + ((
((u_long)((((((((0xff00) >> 16) >> 8)) - 1) &
((((0xff00) >> 16) >> 8))) ^ ((((0xff00) >>
16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)((((
(((((0xff00) >> 16) >> 8) >> 4)) - 1) &
(((((0xff00) >> 16) >> 8) >> 4))) ^ (((((0xff00
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xff00) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xff00) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4))) - 1) & ((((((0xff00) >> 16) >> 8) >>
4)))) ^ ((((((0xff00) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16) >> 8))) - 1) & (((((0xff00) >>
16) >> 8)))) ^ (((((0xff00) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00) >>
16) >> 8)) >> 2)) - 1) & ((((((0xff00) >>
16) >> 8)) >> 2))) ^ ((((((0xff00) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16) >> 8)))) - 1) & (((
(((0xff00) >> 16) >> 8))))) ^ ((((((0xff00) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00) >> 16))) - 1) & ((((0xff00) >>
16)))) ^ ((((0xff00) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff00) >> 16)) >> 4)) - 1
) & (((((0xff00) >> 16)) >> 4))) ^ (((((0xff00
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff00) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xff00) >> 16)) >> 4) >>
2))) ^ ((((((0xff00) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)
>> 16)) >> 4))) - 1) & ((((((0xff00) >>
16)) >> 4)))) ^ ((((((0xff00) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16)))) - 1) & (((((0xff00) >> 16))))) ^ (
((((0xff00) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00) >> 16))) >> 2)) - 1) & (((
(((0xff00) >> 16))) >> 2))) ^ ((((((0xff00) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16))))) - 1) & ((((((0xff00) >>
16)))))) ^ ((((((0xff00) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xff00))) - 1) & (((0xff00
)))) ^ (((0xff00))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xff00)) >> 8)) - 1) & ((((0xff00)) >> 8
))) ^ ((((0xff00)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xff00)) >> 8) >> 4)) - 1) &
(((((0xff00)) >> 8) >> 4))) ^ (((((0xff00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff00)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00)) >> 8) >> 4) >> 2))) ^ (((((
(0xff00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8) >>
4))) - 1) & ((((((0xff00)) >> 8) >> 4)))) ^ (
(((((0xff00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff00)) >> 8))) - 1) &
(((((0xff00)) >> 8)))) ^ (((((0xff00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)) >>
8)) >> 2)) - 1) & ((((((0xff00)) >> 8)) >>
2))) ^ ((((((0xff00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8
)))) - 1) & ((((((0xff00)) >> 8))))) ^ ((((((0xff00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00)))) - 1) & ((((0xff00))))) ^ ((((0xff00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff00))) >>
4)) - 1) & (((((0xff00))) >> 4))) ^ (((((0xff00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff00))) >> 4) >> 2)) - 1) & ((((((0xff00)
)) >> 4) >> 2))) ^ ((((((0xff00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
))) >> 4))) - 1) & ((((((0xff00))) >> 4)))) ^
((((((0xff00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00))))) - 1) & (((((0xff00)))
))) ^ (((((0xff00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00)))) >> 2)) - 1) & ((((((0xff00)))
) >> 2))) ^ ((((((0xff00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)))))) - 1) &
((((((0xff00))))))) ^ ((((((0xff00)))))))) >> (1)) != 0
) ? 1 : 0))))))
;
1841
1842 for (i = 10; --i >= 0; ) {
1843 ATW_WRITE(sc, ATW_BBPCTL, reg)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x60)), ((reg
))))
;
1844 DELAY(2000)(*delay_func)(2000);
1845 if (ATW_ISSET(sc, ATW_BBPCTL, ATW_BBPCTL_WR)(((((sc))->sc_st)->read_4((((sc))->sc_sh), (((0x60))
))) & ((1<<17)))
== 0)
1846 break;
1847 }
1848
1849 if (i < 0) {
1850 printf("%s: BBPCTL still busy\n", sc->sc_dev.dv_xname);
1851 return ETIMEDOUT60;
1852 }
1853 return 0;
1854}
1855
1856/* Read a register on the RF3000 baseband processor using the registers
1857 * the ADM8211 provides for this purpose.
1858 *
1859 * The 7-bit register address is addr. Record the 8-bit data in the register
1860 * in *val.
1861 *
1862 * Return 0 on success.
1863 *
1864 * XXX This does not seem to work. The ADM8211 must require more or
1865 * different magic to read the chip than to write it. Possibly some
1866 * of the magic I have derived from a binary-only driver concerns
1867 * the "chip address" (see the RF3000 manual).
1868 */
1869#ifdef ATW_BBPDEBUG
1870int
1871atw_rf3000_read(struct atw_softc *sc, u_int addr, u_int *val)
1872{
1873 u_int32_t reg;
1874 int i;
1875
1876 for (i = 1000; --i >= 0; ) {
1877 if (ATW_ISSET(sc, ATW_BBPCTL, ATW_BBPCTL_RD|ATW_BBPCTL_WR)(((((sc))->sc_st)->read_4((((sc))->sc_sh), (((0x60))
))) & ((1<<16)|(1<<17)))
== 0)
1878 break;
1879 DELAY(100)(*delay_func)(100);
1880 }
1881
1882 if (i < 0) {
1883 printf("%s: start atw_rf3000_read, BBPCTL busy\n",
1884 sc->sc_dev.dv_xname);
1885 return ETIMEDOUT60;
1886 }
1887
1888 reg = sc->sc_bbpctl_rd | LSHIFT(addr & 0x7f, ATW_BBPCTL_ADDR_MASK)((addr & 0x7f) << ((((u_long)((((((0xff00)) - 1) &
((0xff00))) ^ ((0xff00)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0xff00) >> 16)) - 1) & (((0xff00) >> 16
))) ^ (((0xff00) >> 16)))) >> (8)) != 0) ? 8 + ((
((u_long)((((((((0xff00) >> 16) >> 8)) - 1) &
((((0xff00) >> 16) >> 8))) ^ ((((0xff00) >>
16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)((((
(((((0xff00) >> 16) >> 8) >> 4)) - 1) &
(((((0xff00) >> 16) >> 8) >> 4))) ^ (((((0xff00
) >> 16) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4) >> 2)) - 1) & ((((((0xff00) >> 16) >>
8) >> 4) >> 2))) ^ ((((((0xff00) >> 16) >>
8) >> 4) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff00) >> 16) >> 8) >>
4))) - 1) & ((((((0xff00) >> 16) >> 8) >>
4)))) ^ ((((((0xff00) >> 16) >> 8) >> 4)))
)) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16) >> 8))) - 1) & (((((0xff00) >>
16) >> 8)))) ^ (((((0xff00) >> 16) >> 8)))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00) >>
16) >> 8)) >> 2)) - 1) & ((((((0xff00) >>
16) >> 8)) >> 2))) ^ ((((((0xff00) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16) >> 8)))) - 1) & (((
(((0xff00) >> 16) >> 8))))) ^ ((((((0xff00) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00) >> 16))) - 1) & ((((0xff00) >>
16)))) ^ ((((0xff00) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)(((((((((0xff00) >> 16)) >> 4)) - 1
) & (((((0xff00) >> 16)) >> 4))) ^ (((((0xff00
) >> 16)) >> 4)))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff00) >> 16)) >> 4) >> 2
)) - 1) & ((((((0xff00) >> 16)) >> 4) >>
2))) ^ ((((((0xff00) >> 16)) >> 4) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)
>> 16)) >> 4))) - 1) & ((((((0xff00) >>
16)) >> 4)))) ^ ((((((0xff00) >> 16)) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00
) >> 16)))) - 1) & (((((0xff00) >> 16))))) ^ (
((((0xff00) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00) >> 16))) >> 2)) - 1) & (((
(((0xff00) >> 16))) >> 2))) ^ ((((((0xff00) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff00) >> 16))))) - 1) & ((((((0xff00) >>
16)))))) ^ ((((((0xff00) >> 16))))))) >> (1)) !=
0) ? 1 : 0)))) : ((((u_long)(((((((0xff00))) - 1) & (((0xff00
)))) ^ (((0xff00))))) >> (8)) != 0) ? 8 + ((((u_long)((
((((((0xff00)) >> 8)) - 1) & ((((0xff00)) >> 8
))) ^ ((((0xff00)) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xff00)) >> 8) >> 4)) - 1) &
(((((0xff00)) >> 8) >> 4))) ^ (((((0xff00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff00)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00)) >> 8) >> 4) >> 2))) ^ (((((
(0xff00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8) >>
4))) - 1) & ((((((0xff00)) >> 8) >> 4)))) ^ (
(((((0xff00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff00)) >> 8))) - 1) &
(((((0xff00)) >> 8)))) ^ (((((0xff00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)) >>
8)) >> 2)) - 1) & ((((((0xff00)) >> 8)) >>
2))) ^ ((((((0xff00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8
)))) - 1) & ((((((0xff00)) >> 8))))) ^ ((((((0xff00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00)))) - 1) & ((((0xff00))))) ^ ((((0xff00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff00))) >>
4)) - 1) & (((((0xff00))) >> 4))) ^ (((((0xff00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff00))) >> 4) >> 2)) - 1) & ((((((0xff00)
)) >> 4) >> 2))) ^ ((((((0xff00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
))) >> 4))) - 1) & ((((((0xff00))) >> 4)))) ^
((((((0xff00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00))))) - 1) & (((((0xff00)))
))) ^ (((((0xff00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00)))) >> 2)) - 1) & ((((((0xff00)))
) >> 2))) ^ ((((((0xff00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)))))) - 1) &
((((((0xff00))))))) ^ ((((((0xff00)))))))) >> (1)) != 0
) ? 1 : 0))))))
;
1889
1890 ATW_WRITE(sc, ATW_BBPCTL, reg)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x60)), ((reg
))))
;
1891
1892 for (i = 1000; --i >= 0; ) {
1893 DELAY(100)(*delay_func)(100);
1894 if (ATW_ISSET(sc, ATW_BBPCTL, ATW_BBPCTL_RD)(((((sc))->sc_st)->read_4((((sc))->sc_sh), (((0x60))
))) & ((1<<16)))
== 0)
1895 break;
1896 }
1897
1898 ATW_CLR(sc, ATW_BBPCTL, ATW_BBPCTL_RD)((((sc))->sc_st)->write_4((((sc))->sc_sh), (((0x60))
), ((((((sc))->sc_st)->read_4((((sc))->sc_sh), (((0x60
))))) & ~((1<<16))))))
;
1899
1900 if (i < 0) {
1901 printf("%s: atw_rf3000_read wrote %08x; BBPCTL still busy\n",
1902 sc->sc_dev.dv_xname, reg);
1903 return ETIMEDOUT60;
1904 }
1905 if (val != NULL((void *)0))
1906 *val = MASK_AND_RSHIFT(reg, ATW_BBPCTL_DATA_MASK)(((reg) & (0xff)) >> ((((u_long)((((((0xff)) - 1) &
((0xff))) ^ ((0xff)))) >> (16)) != 0) ? 16 + ((((u_long
)(((((((0xff) >> 16)) - 1) & (((0xff) >> 16))
) ^ (((0xff) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xff) >> 16) >> 8)) - 1) & ((((0xff)
>> 16) >> 8))) ^ ((((0xff) >> 16) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >>
16) >> 8) >> 4)) - 1) & (((((0xff) >> 16
) >> 8) >> 4))) ^ (((((0xff) >> 16) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff) >> 16) >> 8) >> 4) >> 2)) -
1) & ((((((0xff) >> 16) >> 8) >> 4) >>
2))) ^ ((((((0xff) >> 16) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff
) >> 16) >> 8) >> 4)))) ^ ((((((0xff) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff) >> 16) >> 8))) - 1)
& (((((0xff) >> 16) >> 8)))) ^ (((((0xff) >>
16) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff) >> 16) >> 8)) >> 2)) - 1) &
((((((0xff) >> 16) >> 8)) >> 2))) ^ ((((((
0xff) >> 16) >> 8)) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16) >>
8)))) - 1) & ((((((0xff) >> 16) >> 8))))) ^ (
(((((0xff) >> 16) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)((((((((0xff) >> 16))) - 1) &
((((0xff) >> 16)))) ^ ((((0xff) >> 16))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >> 16)) >>
4)) - 1) & (((((0xff) >> 16)) >> 4))) ^ ((((
(0xff) >> 16)) >> 4)))) >> (2)) != 0) ? 2 +
((((u_long)((((((((((0xff) >> 16)) >> 4) >>
2)) - 1) & ((((((0xff) >> 16)) >> 4) >>
2))) ^ ((((((0xff) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16
)) >> 4))) - 1) & ((((((0xff) >> 16)) >>
4)))) ^ ((((((0xff) >> 16)) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff) >> 16))
)) - 1) & (((((0xff) >> 16))))) ^ (((((0xff) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff
) >> 16))) >> 2)) - 1) & ((((((0xff) >>
16))) >> 2))) ^ ((((((0xff) >> 16))) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff)
>> 16))))) - 1) & ((((((0xff) >> 16)))))) ^ (
(((((0xff) >> 16))))))) >> (1)) != 0) ? 1 : 0))))
: ((((u_long)(((((((0xff))) - 1) & (((0xff)))) ^ (((0xff
))))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff)) >>
8)) - 1) & ((((0xff)) >> 8))) ^ ((((0xff)) >>
8)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff)) >>
8) >> 4)) - 1) & (((((0xff)) >> 8) >> 4
))) ^ (((((0xff)) >> 8) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xff)) >> 8) >> 4)
>> 2)) - 1) & ((((((0xff)) >> 8) >> 4)
>> 2))) ^ ((((((0xff)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
)) >> 8) >> 4))) - 1) & ((((((0xff)) >>
8) >> 4)))) ^ ((((((0xff)) >> 8) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff)) >>
8))) - 1) & (((((0xff)) >> 8)))) ^ (((((0xff)) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff))
>> 8)) >> 2)) - 1) & ((((((0xff)) >> 8
)) >> 2))) ^ ((((((0xff)) >> 8)) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff)) >> 8
)))) - 1) & ((((((0xff)) >> 8))))) ^ ((((((0xff)) >>
8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((
0xff)))) - 1) & ((((0xff))))) ^ ((((0xff)))))) >> (
4)) != 0) ? 4 + ((((u_long)(((((((((0xff))) >> 4)) - 1)
& (((((0xff))) >> 4))) ^ (((((0xff))) >> 4))
)) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff))) >>
4) >> 2)) - 1) & ((((((0xff))) >> 4) >>
2))) ^ ((((((0xff))) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff))) >> 4)))
- 1) & ((((((0xff))) >> 4)))) ^ ((((((0xff))) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff
))))) - 1) & (((((0xff)))))) ^ (((((0xff))))))) >> (
2)) != 0) ? 2 + ((((u_long)((((((((((0xff)))) >> 2)) - 1
) & ((((((0xff)))) >> 2))) ^ ((((((0xff)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff
)))))) - 1) & ((((((0xff))))))) ^ ((((((0xff)))))))) >>
(1)) != 0) ? 1 : 0))))))
;
1907 return 0;
1908}
1909#endif /* ATW_BBPDEBUG */
1910
1911/* Write a register on the Si4126 RF/IF synthesizer using the registers
1912 * provided by the ADM8211 for that purpose.
1913 *
1914 * val is 18 bits of data, and val is the 4-bit address of the register.
1915 *
1916 * Return 0 on success.
1917 */
1918void
1919atw_si4126_write(struct atw_softc *sc, u_int addr, u_int val)
1920{
1921 uint32_t bits, mask, reg;
1922 int nbits;
1923
1924 if (sc->sc_rev >= ATW_REVISION_BA) {
1925 nbits = 24;
1926
1927 val &= 0x3ffff;
1928 addr &= 0x1f;
1929 bits = val | (addr << 18);
1930 } else {
1931 nbits = 22;
1932
1933 KASSERT((addr & ~PRESHIFT(SI4126_TWI_ADDR_MASK)) == 0)(((addr & ~((((0xf)) & ((0xf))) >> ((((u_long)(
((((((0xf))) - 1) & (((0xf)))) ^ (((0xf))))) >> (16
)) != 0) ? 16 + ((((u_long)((((((((0xf)) >> 16)) - 1) &
((((0xf)) >> 16))) ^ ((((0xf)) >> 16)))) >>
(8)) != 0) ? 8 + ((((u_long)(((((((((0xf)) >> 16) >>
8)) - 1) & (((((0xf)) >> 16) >> 8))) ^ (((((
0xf)) >> 16) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)((((((((((0xf)) >> 16) >> 8) >> 4
)) - 1) & ((((((0xf)) >> 16) >> 8) >> 4
))) ^ ((((((0xf)) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)(((((((((((0xf)) >> 16) >>
8) >> 4) >> 2)) - 1) & (((((((0xf)) >>
16) >> 8) >> 4) >> 2))) ^ (((((((0xf)) >>
16) >> 8) >> 4) >> 2)))) >> (1)) != 0
) ? 1 : 0) : ((((u_long)(((((((((((0xf)) >> 16) >>
8) >> 4))) - 1) & (((((((0xf)) >> 16) >>
8) >> 4)))) ^ (((((((0xf)) >> 16) >> 8) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)((((((((((
0xf)) >> 16) >> 8))) - 1) & ((((((0xf)) >>
16) >> 8)))) ^ ((((((0xf)) >> 16) >> 8))))
) >> (2)) != 0) ? 2 + ((((u_long)(((((((((((0xf)) >>
16) >> 8)) >> 2)) - 1) & (((((((0xf)) >>
16) >> 8)) >> 2))) ^ (((((((0xf)) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)(((((((((((0xf)) >> 16) >> 8)))) - 1) & ((((
(((0xf)) >> 16) >> 8))))) ^ (((((((0xf)) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)(((((((((0xf)) >> 16))) - 1) & (((((0xf)) >>
16)))) ^ (((((0xf)) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)((((((((((0xf)) >> 16)) >> 4)) - 1)
& ((((((0xf)) >> 16)) >> 4))) ^ ((((((0xf)) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
((((((((0xf)) >> 16)) >> 4) >> 2)) - 1) &
(((((((0xf)) >> 16)) >> 4) >> 2))) ^ (((((
((0xf)) >> 16)) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)(((((((((((0xf)) >> 16)) >>
4))) - 1) & (((((((0xf)) >> 16)) >> 4)))) ^ (
((((((0xf)) >> 16)) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)((((((((((0xf)) >> 16)))) - 1) &
((((((0xf)) >> 16))))) ^ ((((((0xf)) >> 16))))))
>> (2)) != 0) ? 2 + ((((u_long)(((((((((((0xf)) >>
16))) >> 2)) - 1) & (((((((0xf)) >> 16))) >>
2))) ^ (((((((0xf)) >> 16))) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)(((((((((((0xf)) >> 16)
)))) - 1) & (((((((0xf)) >> 16)))))) ^ (((((((0xf))
>> 16))))))) >> (1)) != 0) ? 1 : 0)))) : ((((u_long
)((((((((0xf)))) - 1) & ((((0xf))))) ^ ((((0xf)))))) >>
(8)) != 0) ? 8 + ((((u_long)(((((((((0xf))) >> 8)) - 1
) & (((((0xf))) >> 8))) ^ (((((0xf))) >> 8)))
) >> (4)) != 0) ? 4 + ((((u_long)((((((((((0xf))) >>
8) >> 4)) - 1) & ((((((0xf))) >> 8) >>
4))) ^ ((((((0xf))) >> 8) >> 4)))) >> (2))
!= 0) ? 2 + ((((u_long)(((((((((((0xf))) >> 8) >>
4) >> 2)) - 1) & (((((((0xf))) >> 8) >>
4) >> 2))) ^ (((((((0xf))) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((((((((((0xf
))) >> 8) >> 4))) - 1) & (((((((0xf))) >>
8) >> 4)))) ^ (((((((0xf))) >> 8) >> 4))))
) >> (1)) != 0) ? 1 : 0)) : ((((u_long)((((((((((0xf)))
>> 8))) - 1) & ((((((0xf))) >> 8)))) ^ (((((
(0xf))) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long)
(((((((((((0xf))) >> 8)) >> 2)) - 1) & ((((((
(0xf))) >> 8)) >> 2))) ^ (((((((0xf))) >> 8
)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(
((((((((((0xf))) >> 8)))) - 1) & (((((((0xf))) >>
8))))) ^ (((((((0xf))) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)(((((((((0xf))))) - 1) & (((((0xf)
))))) ^ (((((0xf))))))) >> (4)) != 0) ? 4 + ((((u_long)
((((((((((0xf)))) >> 4)) - 1) & ((((((0xf)))) >>
4))) ^ ((((((0xf)))) >> 4)))) >> (2)) != 0) ? 2 +
((((u_long)(((((((((((0xf)))) >> 4) >> 2)) - 1) &
(((((((0xf)))) >> 4) >> 2))) ^ (((((((0xf)))) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
(((((((((((0xf)))) >> 4))) - 1) & (((((((0xf)))) >>
4)))) ^ (((((((0xf)))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)((((((((((0xf)))))) - 1) & ((((((0xf
))))))) ^ ((((((0xf)))))))) >> (2)) != 0) ? 2 + ((((u_long
)(((((((((((0xf))))) >> 2)) - 1) & (((((((0xf))))) >>
2))) ^ (((((((0xf))))) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)(((((((((((0xf))))))) - 1) & (((((((0xf
)))))))) ^ (((((((0xf))))))))) >> (1)) != 0) ? 1 : 0)))
)))) == 0) ? (void)0 : __assert("diagnostic ", "/usr/src/sys/dev/ic/atw.c"
, 1933, "(addr & ~PRESHIFT(SI4126_TWI_ADDR_MASK)) == 0"))
;
1934 KASSERT((val & ~PRESHIFT(SI4126_TWI_DATA_MASK)) == 0)(((val & ~((((0x3ffff0)) & ((0x3ffff0))) >> (((
(u_long)(((((((0x3ffff0))) - 1) & (((0x3ffff0)))) ^ (((0x3ffff0
))))) >> (16)) != 0) ? 16 + ((((u_long)((((((((0x3ffff0
)) >> 16)) - 1) & ((((0x3ffff0)) >> 16))) ^ (
(((0x3ffff0)) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long
)(((((((((0x3ffff0)) >> 16) >> 8)) - 1) & (((
((0x3ffff0)) >> 16) >> 8))) ^ (((((0x3ffff0)) >>
16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)((((
((((((0x3ffff0)) >> 16) >> 8) >> 4)) - 1) &
((((((0x3ffff0)) >> 16) >> 8) >> 4))) ^ ((
((((0x3ffff0)) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)(((((((((((0x3ffff0)) >> 16
) >> 8) >> 4) >> 2)) - 1) & (((((((0x3ffff0
)) >> 16) >> 8) >> 4) >> 2))) ^ (((((
((0x3ffff0)) >> 16) >> 8) >> 4) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((((((((((0x3ffff0
)) >> 16) >> 8) >> 4))) - 1) & (((((((0x3ffff0
)) >> 16) >> 8) >> 4)))) ^ (((((((0x3ffff0)
) >> 16) >> 8) >> 4))))) >> (1)) != 0
) ? 1 : 0)) : ((((u_long)((((((((((0x3ffff0)) >> 16) >>
8))) - 1) & ((((((0x3ffff0)) >> 16) >> 8))))
^ ((((((0x3ffff0)) >> 16) >> 8))))) >> (2)
) != 0) ? 2 + ((((u_long)(((((((((((0x3ffff0)) >> 16) >>
8)) >> 2)) - 1) & (((((((0x3ffff0)) >> 16) >>
8)) >> 2))) ^ (((((((0x3ffff0)) >> 16) >> 8
)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(
((((((((((0x3ffff0)) >> 16) >> 8)))) - 1) & (
((((((0x3ffff0)) >> 16) >> 8))))) ^ (((((((0x3ffff0
)) >> 16) >> 8)))))) >> (1)) != 0) ? 1 : 0)
)) : ((((u_long)(((((((((0x3ffff0)) >> 16))) - 1) &
(((((0x3ffff0)) >> 16)))) ^ (((((0x3ffff0)) >> 16
))))) >> (4)) != 0) ? 4 + ((((u_long)((((((((((0x3ffff0
)) >> 16)) >> 4)) - 1) & ((((((0x3ffff0)) >>
16)) >> 4))) ^ ((((((0x3ffff0)) >> 16)) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((((((0x3ffff0
)) >> 16)) >> 4) >> 2)) - 1) & (((((((0x3ffff0
)) >> 16)) >> 4) >> 2))) ^ (((((((0x3ffff0)
) >> 16)) >> 4) >> 2)))) >> (1)) != 0
) ? 1 : 0) : ((((u_long)(((((((((((0x3ffff0)) >> 16)) >>
4))) - 1) & (((((((0x3ffff0)) >> 16)) >> 4))
)) ^ (((((((0x3ffff0)) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)((((((((((0x3ffff0)) >>
16)))) - 1) & ((((((0x3ffff0)) >> 16))))) ^ ((((((
0x3ffff0)) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long
)(((((((((((0x3ffff0)) >> 16))) >> 2)) - 1) &
(((((((0x3ffff0)) >> 16))) >> 2))) ^ (((((((0x3ffff0
)) >> 16))) >> 2)))) >> (1)) != 0) ? 1 : 0)
: ((((u_long)(((((((((((0x3ffff0)) >> 16))))) - 1) &
(((((((0x3ffff0)) >> 16)))))) ^ (((((((0x3ffff0)) >>
16))))))) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((
(((0x3ffff0)))) - 1) & ((((0x3ffff0))))) ^ ((((0x3ffff0))
)))) >> (8)) != 0) ? 8 + ((((u_long)(((((((((0x3ffff0))
) >> 8)) - 1) & (((((0x3ffff0))) >> 8))) ^ ((
(((0x3ffff0))) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)((((((((((0x3ffff0))) >> 8) >> 4)) - 1) & ((
((((0x3ffff0))) >> 8) >> 4))) ^ ((((((0x3ffff0)))
>> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)(((((((((((0x3ffff0))) >> 8) >> 4) >> 2)) -
1) & (((((((0x3ffff0))) >> 8) >> 4) >>
2))) ^ (((((((0x3ffff0))) >> 8) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((((((((((0x3ffff0
))) >> 8) >> 4))) - 1) & (((((((0x3ffff0))) >>
8) >> 4)))) ^ (((((((0x3ffff0))) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)((((((((((0x3ffff0
))) >> 8))) - 1) & ((((((0x3ffff0))) >> 8))))
^ ((((((0x3ffff0))) >> 8))))) >> (2)) != 0) ? 2 +
((((u_long)(((((((((((0x3ffff0))) >> 8)) >> 2)) -
1) & (((((((0x3ffff0))) >> 8)) >> 2))) ^ (((
((((0x3ffff0))) >> 8)) >> 2)))) >> (1)) != 0
) ? 1 : 0) : ((((u_long)(((((((((((0x3ffff0))) >> 8))))
- 1) & (((((((0x3ffff0))) >> 8))))) ^ (((((((0x3ffff0
))) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)(((((((((0x3ffff0))))) - 1) & (((((0x3ffff0)))))) ^ ((((
(0x3ffff0))))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((
(((0x3ffff0)))) >> 4)) - 1) & ((((((0x3ffff0)))) >>
4))) ^ ((((((0x3ffff0)))) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)(((((((((((0x3ffff0)))) >> 4) >>
2)) - 1) & (((((((0x3ffff0)))) >> 4) >> 2)))
^ (((((((0x3ffff0)))) >> 4) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)(((((((((((0x3ffff0)))) >>
4))) - 1) & (((((((0x3ffff0)))) >> 4)))) ^ (((((((
0x3ffff0)))) >> 4))))) >> (1)) != 0) ? 1 : 0)) : (
(((u_long)((((((((((0x3ffff0)))))) - 1) & ((((((0x3ffff0)
)))))) ^ ((((((0x3ffff0)))))))) >> (2)) != 0) ? 2 + (((
(u_long)(((((((((((0x3ffff0))))) >> 2)) - 1) & ((((
(((0x3ffff0))))) >> 2))) ^ (((((((0x3ffff0))))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((((((((((0x3ffff0
))))))) - 1) & (((((((0x3ffff0)))))))) ^ (((((((0x3ffff0)
)))))))) >> (1)) != 0) ? 1 : 0))))))) == 0) ? (void)0 :
__assert("diagnostic ", "/usr/src/sys/dev/ic/atw.c", 1934, "(val & ~PRESHIFT(SI4126_TWI_DATA_MASK)) == 0"
))
;
1935
1936 bits = LSHIFT(val, SI4126_TWI_DATA_MASK)((val) << ((((u_long)((((((0x3ffff0)) - 1) & ((0x3ffff0
))) ^ ((0x3ffff0)))) >> (16)) != 0) ? 16 + ((((u_long)(
((((((0x3ffff0) >> 16)) - 1) & (((0x3ffff0) >>
16))) ^ (((0x3ffff0) >> 16)))) >> (8)) != 0) ? 8
+ ((((u_long)((((((((0x3ffff0) >> 16) >> 8)) - 1
) & ((((0x3ffff0) >> 16) >> 8))) ^ ((((0x3ffff0
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0x3ffff0) >> 16) >> 8) >> 4)) - 1
) & (((((0x3ffff0) >> 16) >> 8) >> 4)))
^ (((((0x3ffff0) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x3ffff0) >> 16)
>> 8) >> 4) >> 2)) - 1) & ((((((0x3ffff0
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0x3ffff0) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3ffff0
) >> 16) >> 8) >> 4))) - 1) & ((((((0x3ffff0
) >> 16) >> 8) >> 4)))) ^ ((((((0x3ffff0) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0x3ffff0) >> 16) >> 8))) -
1) & (((((0x3ffff0) >> 16) >> 8)))) ^ (((((0x3ffff0
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x3ffff0) >> 16) >> 8)) >>
2)) - 1) & ((((((0x3ffff0) >> 16) >> 8)) >>
2))) ^ ((((((0x3ffff0) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3ffff0
) >> 16) >> 8)))) - 1) & ((((((0x3ffff0) >>
16) >> 8))))) ^ ((((((0x3ffff0) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x3ffff0
) >> 16))) - 1) & ((((0x3ffff0) >> 16)))) ^ (
(((0x3ffff0) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0x3ffff0) >> 16)) >> 4)) - 1) & (((
((0x3ffff0) >> 16)) >> 4))) ^ (((((0x3ffff0) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0x3ffff0) >> 16)) >> 4) >> 2)) - 1) &
((((((0x3ffff0) >> 16)) >> 4) >> 2))) ^ ((
((((0x3ffff0) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3ffff0) >>
16)) >> 4))) - 1) & ((((((0x3ffff0) >> 16)) >>
4)))) ^ ((((((0x3ffff0) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3ffff0) >>
16)))) - 1) & (((((0x3ffff0) >> 16))))) ^ (((((0x3ffff0
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0x3ffff0) >> 16))) >> 2)) - 1) & ((((((
0x3ffff0) >> 16))) >> 2))) ^ ((((((0x3ffff0) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0x3ffff0) >> 16))))) - 1) & ((((((0x3ffff0
) >> 16)))))) ^ ((((((0x3ffff0) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0x3ffff0))) - 1) &
(((0x3ffff0)))) ^ (((0x3ffff0))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0x3ffff0)) >> 8)) - 1) & ((((0x3ffff0
)) >> 8))) ^ ((((0x3ffff0)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0x3ffff0)) >> 8) >>
4)) - 1) & (((((0x3ffff0)) >> 8) >> 4))) ^ (
((((0x3ffff0)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0x3ffff0)) >> 8) >> 4
) >> 2)) - 1) & ((((((0x3ffff0)) >> 8) >>
4) >> 2))) ^ ((((((0x3ffff0)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3ffff0
)) >> 8) >> 4))) - 1) & ((((((0x3ffff0)) >>
8) >> 4)))) ^ ((((((0x3ffff0)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3ffff0
)) >> 8))) - 1) & (((((0x3ffff0)) >> 8)))) ^ (
((((0x3ffff0)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x3ffff0)) >> 8)) >> 2)) - 1) &
((((((0x3ffff0)) >> 8)) >> 2))) ^ ((((((0x3ffff0
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0x3ffff0)) >> 8)))) - 1) & ((
((((0x3ffff0)) >> 8))))) ^ ((((((0x3ffff0)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x3ffff0
)))) - 1) & ((((0x3ffff0))))) ^ ((((0x3ffff0)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0x3ffff0))) >> 4)
) - 1) & (((((0x3ffff0))) >> 4))) ^ (((((0x3ffff0))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0x3ffff0))) >> 4) >> 2)) - 1) & ((((((0x3ffff0
))) >> 4) >> 2))) ^ ((((((0x3ffff0))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0x3ffff0))) >> 4))) - 1) & ((((((0x3ffff0)))
>> 4)))) ^ ((((((0x3ffff0))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3ffff0))))) - 1) &
(((((0x3ffff0)))))) ^ (((((0x3ffff0))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0x3ffff0)))) >> 2)) - 1) &
((((((0x3ffff0)))) >> 2))) ^ ((((((0x3ffff0)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3ffff0
)))))) - 1) & ((((((0x3ffff0))))))) ^ ((((((0x3ffff0)))))
))) >> (1)) != 0) ? 1 : 0))))))
|
1937 LSHIFT(addr, SI4126_TWI_ADDR_MASK)((addr) << ((((u_long)((((((0xf)) - 1) & ((0xf))) ^
((0xf)))) >> (16)) != 0) ? 16 + ((((u_long)(((((((0xf)
>> 16)) - 1) & (((0xf) >> 16))) ^ (((0xf) >>
16)))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xf) >>
16) >> 8)) - 1) & ((((0xf) >> 16) >> 8
))) ^ ((((0xf) >> 16) >> 8)))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xf) >> 16) >> 8) >>
4)) - 1) & (((((0xf) >> 16) >> 8) >> 4
))) ^ (((((0xf) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf) >> 16) >>
8) >> 4) >> 2)) - 1) & ((((((0xf) >> 16
) >> 8) >> 4) >> 2))) ^ ((((((0xf) >>
16) >> 8) >> 4) >> 2)))) >> (1)) != 0
) ? 1 : 0) : ((((u_long)((((((((((0xf) >> 16) >> 8
) >> 4))) - 1) & ((((((0xf) >> 16) >> 8
) >> 4)))) ^ ((((((0xf) >> 16) >> 8) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf
) >> 16) >> 8))) - 1) & (((((0xf) >> 16
) >> 8)))) ^ (((((0xf) >> 16) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xf) >> 16) >>
8)) >> 2)) - 1) & ((((((0xf) >> 16) >>
8)) >> 2))) ^ ((((((0xf) >> 16) >> 8)) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf
) >> 16) >> 8)))) - 1) & ((((((0xf) >> 16
) >> 8))))) ^ ((((((0xf) >> 16) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf) >> 16)
)) - 1) & ((((0xf) >> 16)))) ^ ((((0xf) >> 16
))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xf) >>
16)) >> 4)) - 1) & (((((0xf) >> 16)) >>
4))) ^ (((((0xf) >> 16)) >> 4)))) >> (2)) !=
0) ? 2 + ((((u_long)((((((((((0xf) >> 16)) >> 4)
>> 2)) - 1) & ((((((0xf) >> 16)) >> 4)
>> 2))) ^ ((((((0xf) >> 16)) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf
) >> 16)) >> 4))) - 1) & ((((((0xf) >> 16
)) >> 4)))) ^ ((((((0xf) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xf) >> 16)
))) - 1) & (((((0xf) >> 16))))) ^ (((((0xf) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xf)
>> 16))) >> 2)) - 1) & ((((((0xf) >> 16
))) >> 2))) ^ ((((((0xf) >> 16))) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xf) >> 16)
)))) - 1) & ((((((0xf) >> 16)))))) ^ ((((((0xf) >>
16))))))) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((
((0xf))) - 1) & (((0xf)))) ^ (((0xf))))) >> (8)) !=
0) ? 8 + ((((u_long)((((((((0xf)) >> 8)) - 1) & ((
((0xf)) >> 8))) ^ ((((0xf)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xf)) >> 8) >> 4
)) - 1) & (((((0xf)) >> 8) >> 4))) ^ (((((0xf
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xf)) >> 8) >> 4) >> 2)) - 1) &
((((((0xf)) >> 8) >> 4) >> 2))) ^ ((((((0xf
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xf)) >> 8) >> 4
))) - 1) & ((((((0xf)) >> 8) >> 4)))) ^ (((((
(0xf)) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0
)) : ((((u_long)(((((((((0xf)) >> 8))) - 1) & (((((
0xf)) >> 8)))) ^ (((((0xf)) >> 8))))) >> (2
)) != 0) ? 2 + ((((u_long)((((((((((0xf)) >> 8)) >>
2)) - 1) & ((((((0xf)) >> 8)) >> 2))) ^ ((((
((0xf)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 :
0) : ((((u_long)((((((((((0xf)) >> 8)))) - 1) & ((
((((0xf)) >> 8))))) ^ ((((((0xf)) >> 8)))))) >>
(1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xf)))) - 1) &
((((0xf))))) ^ ((((0xf)))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xf))) >> 4)) - 1) & (((((0xf))) >>
4))) ^ (((((0xf))) >> 4)))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xf))) >> 4) >> 2)) - 1) &
((((((0xf))) >> 4) >> 2))) ^ ((((((0xf))) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
((((((((((0xf))) >> 4))) - 1) & ((((((0xf))) >>
4)))) ^ ((((((0xf))) >> 4))))) >> (1)) != 0) ? 1
: 0)) : ((((u_long)(((((((((0xf))))) - 1) & (((((0xf))))
)) ^ (((((0xf))))))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xf)))) >> 2)) - 1) & ((((((0xf)))) >>
2))) ^ ((((((0xf)))) >> 2)))) >> (1)) != 0) ? 1 :
0) : ((((u_long)((((((((((0xf)))))) - 1) & ((((((0xf))))
))) ^ ((((((0xf)))))))) >> (1)) != 0) ? 1 : 0))))))
;
1938 }
1939
1940 reg = ATW_SYNRF_SELSYN(1<<31);
1941 /* reference driver: reset Si4126 serial bus to initial
1942 * conditions?
1943 */
1944 ATW_WRITE(sc, ATW_SYNRF, reg | ATW_SYNRF_LEIF)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xC4)), ((reg
| (1<<28)))))
;
1945 ATW_WRITE(sc, ATW_SYNRF, reg)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xC4)), ((reg
))))
;
1946
1947 for (mask = (1 << (nbits - 1)); mask != 0; mask >>= 1) {
1948 if ((bits & mask) != 0)
1949 reg |= ATW_SYNRF_SYNDATA(1<<26);
1950 else
1951 reg &= ~ATW_SYNRF_SYNDATA(1<<26);
1952 ATW_WRITE(sc, ATW_SYNRF, reg)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xC4)), ((reg
))))
;
1953 ATW_WRITE(sc, ATW_SYNRF, reg | ATW_SYNRF_SYNCLK)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xC4)), ((reg
| (1<<27)))))
;
1954 ATW_WRITE(sc, ATW_SYNRF, reg)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xC4)), ((reg
))))
;
1955 }
1956 ATW_WRITE(sc, ATW_SYNRF, reg | ATW_SYNRF_LEIF)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xC4)), ((reg
| (1<<28)))))
;
1957 ATW_WRITE(sc, ATW_SYNRF, 0x0)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xC4)), ((0x0
))))
;
1958}
1959
1960/* Read 18-bit data from the 4-bit address addr in Si4126
1961 * RF synthesizer and write the data to *val. Return 0 on success.
1962 *
1963 * XXX This does not seem to work. The ADM8211 must require more or
1964 * different magic to read the chip than to write it.
1965 */
1966#ifdef ATW_SYNDEBUG
1967int
1968atw_si4126_read(struct atw_softc *sc, u_int addr, u_int *val)
1969{
1970 u_int32_t reg;
1971 int i;
1972
1973 KASSERT((addr & ~PRESHIFT(SI4126_TWI_ADDR_MASK)) == 0)(((addr & ~((((0xf)) & ((0xf))) >> ((((u_long)(
((((((0xf))) - 1) & (((0xf)))) ^ (((0xf))))) >> (16
)) != 0) ? 16 + ((((u_long)((((((((0xf)) >> 16)) - 1) &
((((0xf)) >> 16))) ^ ((((0xf)) >> 16)))) >>
(8)) != 0) ? 8 + ((((u_long)(((((((((0xf)) >> 16) >>
8)) - 1) & (((((0xf)) >> 16) >> 8))) ^ (((((
0xf)) >> 16) >> 8)))) >> (4)) != 0) ? 4 + (
(((u_long)((((((((((0xf)) >> 16) >> 8) >> 4
)) - 1) & ((((((0xf)) >> 16) >> 8) >> 4
))) ^ ((((((0xf)) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)(((((((((((0xf)) >> 16) >>
8) >> 4) >> 2)) - 1) & (((((((0xf)) >>
16) >> 8) >> 4) >> 2))) ^ (((((((0xf)) >>
16) >> 8) >> 4) >> 2)))) >> (1)) != 0
) ? 1 : 0) : ((((u_long)(((((((((((0xf)) >> 16) >>
8) >> 4))) - 1) & (((((((0xf)) >> 16) >>
8) >> 4)))) ^ (((((((0xf)) >> 16) >> 8) >>
4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)((((((((((
0xf)) >> 16) >> 8))) - 1) & ((((((0xf)) >>
16) >> 8)))) ^ ((((((0xf)) >> 16) >> 8))))
) >> (2)) != 0) ? 2 + ((((u_long)(((((((((((0xf)) >>
16) >> 8)) >> 2)) - 1) & (((((((0xf)) >>
16) >> 8)) >> 2))) ^ (((((((0xf)) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)(((((((((((0xf)) >> 16) >> 8)))) - 1) & ((((
(((0xf)) >> 16) >> 8))))) ^ (((((((0xf)) >>
16) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)(((((((((0xf)) >> 16))) - 1) & (((((0xf)) >>
16)))) ^ (((((0xf)) >> 16))))) >> (4)) != 0) ? 4
+ ((((u_long)((((((((((0xf)) >> 16)) >> 4)) - 1)
& ((((((0xf)) >> 16)) >> 4))) ^ ((((((0xf)) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
((((((((0xf)) >> 16)) >> 4) >> 2)) - 1) &
(((((((0xf)) >> 16)) >> 4) >> 2))) ^ (((((
((0xf)) >> 16)) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)(((((((((((0xf)) >> 16)) >>
4))) - 1) & (((((((0xf)) >> 16)) >> 4)))) ^ (
((((((0xf)) >> 16)) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)((((((((((0xf)) >> 16)))) - 1) &
((((((0xf)) >> 16))))) ^ ((((((0xf)) >> 16))))))
>> (2)) != 0) ? 2 + ((((u_long)(((((((((((0xf)) >>
16))) >> 2)) - 1) & (((((((0xf)) >> 16))) >>
2))) ^ (((((((0xf)) >> 16))) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)(((((((((((0xf)) >> 16)
)))) - 1) & (((((((0xf)) >> 16)))))) ^ (((((((0xf))
>> 16))))))) >> (1)) != 0) ? 1 : 0)))) : ((((u_long
)((((((((0xf)))) - 1) & ((((0xf))))) ^ ((((0xf)))))) >>
(8)) != 0) ? 8 + ((((u_long)(((((((((0xf))) >> 8)) - 1
) & (((((0xf))) >> 8))) ^ (((((0xf))) >> 8)))
) >> (4)) != 0) ? 4 + ((((u_long)((((((((((0xf))) >>
8) >> 4)) - 1) & ((((((0xf))) >> 8) >>
4))) ^ ((((((0xf))) >> 8) >> 4)))) >> (2))
!= 0) ? 2 + ((((u_long)(((((((((((0xf))) >> 8) >>
4) >> 2)) - 1) & (((((((0xf))) >> 8) >>
4) >> 2))) ^ (((((((0xf))) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((((((((((0xf
))) >> 8) >> 4))) - 1) & (((((((0xf))) >>
8) >> 4)))) ^ (((((((0xf))) >> 8) >> 4))))
) >> (1)) != 0) ? 1 : 0)) : ((((u_long)((((((((((0xf)))
>> 8))) - 1) & ((((((0xf))) >> 8)))) ^ (((((
(0xf))) >> 8))))) >> (2)) != 0) ? 2 + ((((u_long)
(((((((((((0xf))) >> 8)) >> 2)) - 1) & ((((((
(0xf))) >> 8)) >> 2))) ^ (((((((0xf))) >> 8
)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(
((((((((((0xf))) >> 8)))) - 1) & (((((((0xf))) >>
8))))) ^ (((((((0xf))) >> 8)))))) >> (1)) != 0) ?
1 : 0))) : ((((u_long)(((((((((0xf))))) - 1) & (((((0xf)
))))) ^ (((((0xf))))))) >> (4)) != 0) ? 4 + ((((u_long)
((((((((((0xf)))) >> 4)) - 1) & ((((((0xf)))) >>
4))) ^ ((((((0xf)))) >> 4)))) >> (2)) != 0) ? 2 +
((((u_long)(((((((((((0xf)))) >> 4) >> 2)) - 1) &
(((((((0xf)))) >> 4) >> 2))) ^ (((((((0xf)))) >>
4) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)
(((((((((((0xf)))) >> 4))) - 1) & (((((((0xf)))) >>
4)))) ^ (((((((0xf)))) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)((((((((((0xf)))))) - 1) & ((((((0xf
))))))) ^ ((((((0xf)))))))) >> (2)) != 0) ? 2 + ((((u_long
)(((((((((((0xf))))) >> 2)) - 1) & (((((((0xf))))) >>
2))) ^ (((((((0xf))))) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)(((((((((((0xf))))))) - 1) & (((((((0xf
)))))))) ^ (((((((0xf))))))))) >> (1)) != 0) ? 1 : 0)))
)))) == 0) ? (void)0 : __assert("diagnostic ", "/usr/src/sys/dev/ic/atw.c"
, 1973, "(addr & ~PRESHIFT(SI4126_TWI_ADDR_MASK)) == 0"))
;
1974
1975 for (i = 1000; --i >= 0; ) {
1976 if (ATW_ISSET(sc, ATW_SYNCTL, ATW_SYNCTL_RD|ATW_SYNCTL_WR)(((((sc))->sc_st)->read_4((((sc))->sc_sh), (((0x64))
))) & ((1<<30)|(1<<31)))
== 0)
1977 break;
1978 DELAY(100)(*delay_func)(100);
1979 }
1980
1981 if (i < 0) {
1982 printf("%s: start atw_si4126_read, SYNCTL busy\n",
1983 sc->sc_dev.dv_xname);
1984 return ETIMEDOUT60;
1985 }
1986
1987 reg = sc->sc_synctl_rd | LSHIFT(addr, ATW_SYNCTL_DATA_MASK)((addr) << ((((u_long)((((((0x3fffff)) - 1) & ((0x3fffff
))) ^ ((0x3fffff)))) >> (16)) != 0) ? 16 + ((((u_long)(
((((((0x3fffff) >> 16)) - 1) & (((0x3fffff) >>
16))) ^ (((0x3fffff) >> 16)))) >> (8)) != 0) ? 8
+ ((((u_long)((((((((0x3fffff) >> 16) >> 8)) - 1
) & ((((0x3fffff) >> 16) >> 8))) ^ ((((0x3fffff
) >> 16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0x3fffff) >> 16) >> 8) >> 4)) - 1
) & (((((0x3fffff) >> 16) >> 8) >> 4)))
^ (((((0x3fffff) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0x3fffff) >> 16)
>> 8) >> 4) >> 2)) - 1) & ((((((0x3fffff
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0x3fffff) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3fffff
) >> 16) >> 8) >> 4))) - 1) & ((((((0x3fffff
) >> 16) >> 8) >> 4)))) ^ ((((((0x3fffff) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0x3fffff) >> 16) >> 8))) -
1) & (((((0x3fffff) >> 16) >> 8)))) ^ (((((0x3fffff
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x3fffff) >> 16) >> 8)) >>
2)) - 1) & ((((((0x3fffff) >> 16) >> 8)) >>
2))) ^ ((((((0x3fffff) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3fffff
) >> 16) >> 8)))) - 1) & ((((((0x3fffff) >>
16) >> 8))))) ^ ((((((0x3fffff) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x3fffff
) >> 16))) - 1) & ((((0x3fffff) >> 16)))) ^ (
(((0x3fffff) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0x3fffff) >> 16)) >> 4)) - 1) & (((
((0x3fffff) >> 16)) >> 4))) ^ (((((0x3fffff) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0x3fffff) >> 16)) >> 4) >> 2)) - 1) &
((((((0x3fffff) >> 16)) >> 4) >> 2))) ^ ((
((((0x3fffff) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3fffff) >>
16)) >> 4))) - 1) & ((((((0x3fffff) >> 16)) >>
4)))) ^ ((((((0x3fffff) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3fffff) >>
16)))) - 1) & (((((0x3fffff) >> 16))))) ^ (((((0x3fffff
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0x3fffff) >> 16))) >> 2)) - 1) & ((((((
0x3fffff) >> 16))) >> 2))) ^ ((((((0x3fffff) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0x3fffff) >> 16))))) - 1) & ((((((0x3fffff
) >> 16)))))) ^ ((((((0x3fffff) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0x3fffff))) - 1) &
(((0x3fffff)))) ^ (((0x3fffff))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0x3fffff)) >> 8)) - 1) & ((((0x3fffff
)) >> 8))) ^ ((((0x3fffff)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0x3fffff)) >> 8) >>
4)) - 1) & (((((0x3fffff)) >> 8) >> 4))) ^ (
((((0x3fffff)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0x3fffff)) >> 8) >> 4
) >> 2)) - 1) & ((((((0x3fffff)) >> 8) >>
4) >> 2))) ^ ((((((0x3fffff)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3fffff
)) >> 8) >> 4))) - 1) & ((((((0x3fffff)) >>
8) >> 4)))) ^ ((((((0x3fffff)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3fffff
)) >> 8))) - 1) & (((((0x3fffff)) >> 8)))) ^ (
((((0x3fffff)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x3fffff)) >> 8)) >> 2)) - 1) &
((((((0x3fffff)) >> 8)) >> 2))) ^ ((((((0x3fffff
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0x3fffff)) >> 8)))) - 1) & ((
((((0x3fffff)) >> 8))))) ^ ((((((0x3fffff)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x3fffff
)))) - 1) & ((((0x3fffff))))) ^ ((((0x3fffff)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0x3fffff))) >> 4)
) - 1) & (((((0x3fffff))) >> 4))) ^ (((((0x3fffff))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0x3fffff))) >> 4) >> 2)) - 1) & ((((((0x3fffff
))) >> 4) >> 2))) ^ ((((((0x3fffff))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0x3fffff))) >> 4))) - 1) & ((((((0x3fffff)))
>> 4)))) ^ ((((((0x3fffff))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3fffff))))) - 1) &
(((((0x3fffff)))))) ^ (((((0x3fffff))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0x3fffff)))) >> 2)) - 1) &
((((((0x3fffff)))) >> 2))) ^ ((((((0x3fffff)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3fffff
)))))) - 1) & ((((((0x3fffff))))))) ^ ((((((0x3fffff)))))
))) >> (1)) != 0) ? 1 : 0))))))
;
1988
1989 ATW_WRITE(sc, ATW_SYNCTL, reg)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x64)), ((reg
))))
;
1990
1991 for (i = 1000; --i >= 0; ) {
1992 DELAY(100)(*delay_func)(100);
1993 if (ATW_ISSET(sc, ATW_SYNCTL, ATW_SYNCTL_RD)(((((sc))->sc_st)->read_4((((sc))->sc_sh), (((0x64))
))) & ((1<<30)))
== 0)
1994 break;
1995 }
1996
1997 ATW_CLR(sc, ATW_SYNCTL, ATW_SYNCTL_RD)((((sc))->sc_st)->write_4((((sc))->sc_sh), (((0x64))
), ((((((sc))->sc_st)->read_4((((sc))->sc_sh), (((0x64
))))) & ~((1<<30))))))
;
1998
1999 if (i < 0) {
2000 printf("%s: atw_si4126_read wrote %#08x, SYNCTL still busy\n",
2001 sc->sc_dev.dv_xname, reg);
2002 return ETIMEDOUT60;
2003 }
2004 if (val != NULL((void *)0))
2005 *val = MASK_AND_RSHIFT(ATW_READ(sc, ATW_SYNCTL),((((((sc)->sc_st)->read_4(((sc)->sc_sh), ((0x64)))))
& (0x3fffff)) >> ((((u_long)((((((0x3fffff)) - 1) &
((0x3fffff))) ^ ((0x3fffff)))) >> (16)) != 0) ? 16 + (
(((u_long)(((((((0x3fffff) >> 16)) - 1) & (((0x3fffff
) >> 16))) ^ (((0x3fffff) >> 16)))) >> (8))
!= 0) ? 8 + ((((u_long)((((((((0x3fffff) >> 16) >>
8)) - 1) & ((((0x3fffff) >> 16) >> 8))) ^ ((
((0x3fffff) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0x3fffff) >> 16) >> 8) >>
4)) - 1) & (((((0x3fffff) >> 16) >> 8) >>
4))) ^ (((((0x3fffff) >> 16) >> 8) >> 4)))
) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3fffff) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0x3fffff
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0x3fffff) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3fffff
) >> 16) >> 8) >> 4))) - 1) & ((((((0x3fffff
) >> 16) >> 8) >> 4)))) ^ ((((((0x3fffff) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0x3fffff) >> 16) >> 8))) -
1) & (((((0x3fffff) >> 16) >> 8)))) ^ (((((0x3fffff
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x3fffff) >> 16) >> 8)) >>
2)) - 1) & ((((((0x3fffff) >> 16) >> 8)) >>
2))) ^ ((((((0x3fffff) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3fffff
) >> 16) >> 8)))) - 1) & ((((((0x3fffff) >>
16) >> 8))))) ^ ((((((0x3fffff) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x3fffff
) >> 16))) - 1) & ((((0x3fffff) >> 16)))) ^ (
(((0x3fffff) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0x3fffff) >> 16)) >> 4)) - 1) & (((
((0x3fffff) >> 16)) >> 4))) ^ (((((0x3fffff) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0x3fffff) >> 16)) >> 4) >> 2)) - 1) &
((((((0x3fffff) >> 16)) >> 4) >> 2))) ^ ((
((((0x3fffff) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3fffff) >>
16)) >> 4))) - 1) & ((((((0x3fffff) >> 16)) >>
4)))) ^ ((((((0x3fffff) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3fffff) >>
16)))) - 1) & (((((0x3fffff) >> 16))))) ^ (((((0x3fffff
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0x3fffff) >> 16))) >> 2)) - 1) & ((((((
0x3fffff) >> 16))) >> 2))) ^ ((((((0x3fffff) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0x3fffff) >> 16))))) - 1) & ((((((0x3fffff
) >> 16)))))) ^ ((((((0x3fffff) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0x3fffff))) - 1) &
(((0x3fffff)))) ^ (((0x3fffff))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0x3fffff)) >> 8)) - 1) & ((((0x3fffff
)) >> 8))) ^ ((((0x3fffff)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0x3fffff)) >> 8) >>
4)) - 1) & (((((0x3fffff)) >> 8) >> 4))) ^ (
((((0x3fffff)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0x3fffff)) >> 8) >> 4
) >> 2)) - 1) & ((((((0x3fffff)) >> 8) >>
4) >> 2))) ^ ((((((0x3fffff)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3fffff
)) >> 8) >> 4))) - 1) & ((((((0x3fffff)) >>
8) >> 4)))) ^ ((((((0x3fffff)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3fffff
)) >> 8))) - 1) & (((((0x3fffff)) >> 8)))) ^ (
((((0x3fffff)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x3fffff)) >> 8)) >> 2)) - 1) &
((((((0x3fffff)) >> 8)) >> 2))) ^ ((((((0x3fffff
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0x3fffff)) >> 8)))) - 1) & ((
((((0x3fffff)) >> 8))))) ^ ((((((0x3fffff)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x3fffff
)))) - 1) & ((((0x3fffff))))) ^ ((((0x3fffff)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0x3fffff))) >> 4)
) - 1) & (((((0x3fffff))) >> 4))) ^ (((((0x3fffff))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0x3fffff))) >> 4) >> 2)) - 1) & ((((((0x3fffff
))) >> 4) >> 2))) ^ ((((((0x3fffff))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0x3fffff))) >> 4))) - 1) & ((((((0x3fffff)))
>> 4)))) ^ ((((((0x3fffff))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3fffff))))) - 1) &
(((((0x3fffff)))))) ^ (((((0x3fffff))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0x3fffff)))) >> 2)) - 1) &
((((((0x3fffff)))) >> 2))) ^ ((((((0x3fffff)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3fffff
)))))) - 1) & ((((((0x3fffff))))))) ^ ((((((0x3fffff)))))
))) >> (1)) != 0) ? 1 : 0))))))
2006 ATW_SYNCTL_DATA_MASK)((((((sc)->sc_st)->read_4(((sc)->sc_sh), ((0x64)))))
& (0x3fffff)) >> ((((u_long)((((((0x3fffff)) - 1) &
((0x3fffff))) ^ ((0x3fffff)))) >> (16)) != 0) ? 16 + (
(((u_long)(((((((0x3fffff) >> 16)) - 1) & (((0x3fffff
) >> 16))) ^ (((0x3fffff) >> 16)))) >> (8))
!= 0) ? 8 + ((((u_long)((((((((0x3fffff) >> 16) >>
8)) - 1) & ((((0x3fffff) >> 16) >> 8))) ^ ((
((0x3fffff) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0x3fffff) >> 16) >> 8) >>
4)) - 1) & (((((0x3fffff) >> 16) >> 8) >>
4))) ^ (((((0x3fffff) >> 16) >> 8) >> 4)))
) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0x3fffff) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0x3fffff
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0x3fffff) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3fffff
) >> 16) >> 8) >> 4))) - 1) & ((((((0x3fffff
) >> 16) >> 8) >> 4)))) ^ ((((((0x3fffff) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0x3fffff) >> 16) >> 8))) -
1) & (((((0x3fffff) >> 16) >> 8)))) ^ (((((0x3fffff
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x3fffff) >> 16) >> 8)) >>
2)) - 1) & ((((((0x3fffff) >> 16) >> 8)) >>
2))) ^ ((((((0x3fffff) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3fffff
) >> 16) >> 8)))) - 1) & ((((((0x3fffff) >>
16) >> 8))))) ^ ((((((0x3fffff) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x3fffff
) >> 16))) - 1) & ((((0x3fffff) >> 16)))) ^ (
(((0x3fffff) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0x3fffff) >> 16)) >> 4)) - 1) & (((
((0x3fffff) >> 16)) >> 4))) ^ (((((0x3fffff) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0x3fffff) >> 16)) >> 4) >> 2)) - 1) &
((((((0x3fffff) >> 16)) >> 4) >> 2))) ^ ((
((((0x3fffff) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3fffff) >>
16)) >> 4))) - 1) & ((((((0x3fffff) >> 16)) >>
4)))) ^ ((((((0x3fffff) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3fffff) >>
16)))) - 1) & (((((0x3fffff) >> 16))))) ^ (((((0x3fffff
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0x3fffff) >> 16))) >> 2)) - 1) & ((((((
0x3fffff) >> 16))) >> 2))) ^ ((((((0x3fffff) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0x3fffff) >> 16))))) - 1) & ((((((0x3fffff
) >> 16)))))) ^ ((((((0x3fffff) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0x3fffff))) - 1) &
(((0x3fffff)))) ^ (((0x3fffff))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0x3fffff)) >> 8)) - 1) & ((((0x3fffff
)) >> 8))) ^ ((((0x3fffff)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0x3fffff)) >> 8) >>
4)) - 1) & (((((0x3fffff)) >> 8) >> 4))) ^ (
((((0x3fffff)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0x3fffff)) >> 8) >> 4
) >> 2)) - 1) & ((((((0x3fffff)) >> 8) >>
4) >> 2))) ^ ((((((0x3fffff)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3fffff
)) >> 8) >> 4))) - 1) & ((((((0x3fffff)) >>
8) >> 4)))) ^ ((((((0x3fffff)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3fffff
)) >> 8))) - 1) & (((((0x3fffff)) >> 8)))) ^ (
((((0x3fffff)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0x3fffff)) >> 8)) >> 2)) - 1) &
((((((0x3fffff)) >> 8)) >> 2))) ^ ((((((0x3fffff
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0x3fffff)) >> 8)))) - 1) & ((
((((0x3fffff)) >> 8))))) ^ ((((((0x3fffff)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0x3fffff
)))) - 1) & ((((0x3fffff))))) ^ ((((0x3fffff)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0x3fffff))) >> 4)
) - 1) & (((((0x3fffff))) >> 4))) ^ (((((0x3fffff))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0x3fffff))) >> 4) >> 2)) - 1) & ((((((0x3fffff
))) >> 4) >> 2))) ^ ((((((0x3fffff))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0x3fffff))) >> 4))) - 1) & ((((((0x3fffff)))
>> 4)))) ^ ((((((0x3fffff))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0x3fffff))))) - 1) &
(((((0x3fffff)))))) ^ (((((0x3fffff))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0x3fffff)))) >> 2)) - 1) &
((((((0x3fffff)))) >> 2))) ^ ((((((0x3fffff)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0x3fffff
)))))) - 1) & ((((((0x3fffff))))))) ^ ((((((0x3fffff)))))
))) >> (1)) != 0) ? 1 : 0))))))
;
2007 return 0;
2008}
2009#endif /* ATW_SYNDEBUG */
2010
2011/* XXX is the endianness correct? test. */
2012#define atw_calchash(addr)(ether_crc32_le((addr), 6) & 0x3f) \
2013 (ether_crc32_le((addr), IEEE80211_ADDR_LEN6) & 0x3f)
2014
2015/*
2016 * atw_filter_setup:
2017 *
2018 * Set the ADM8211's receive filter.
2019 */
2020void
2021atw_filter_setup(struct atw_softc *sc)
2022{
2023 struct ieee80211com *ic = &sc->sc_ic;
2024 struct arpcom *ac = &ic->ic_ac;
2025 struct ifnet *ifp = &sc->sc_ic.ic_ific_ac.ac_if;
2026 int hash;
2027 u_int32_t hashes[2];
2028 struct ether_multi *enm;
2029 struct ether_multistep step;
2030
2031 /* According to comments in tlp_al981_filter_setup
2032 * (dev/ic/tulip.c) the ADMtek AL981 does not like for its
2033 * multicast filter to be set while it is running. Hopefully
2034 * the ADM8211 is not the same!
2035 */
2036 if ((ifp->if_flags & IFF_RUNNING0x40) != 0)
2037 atw_idle(sc, ATW_NAR_SR(1<<1));
2038
2039 sc->sc_opmode &= ~(ATW_NAR_PR(1<<6)|ATW_NAR_MM(1<<7));
2040
2041 /* XXX in scan mode, do not filter packets. Maybe this is
2042 * unnecessary.
2043 */
2044 if (ic->ic_state == IEEE80211_S_SCAN ||
2045 (ifp->if_flags & IFF_PROMISC0x100) != 0) {
2046 sc->sc_opmode |= ATW_NAR_PR(1<<6);
2047 goto allmulti;
2048 }
2049
2050 hashes[0] = hashes[1] = 0x0;
2051
2052 if (ac->ac_multirangecnt > 0)
2053 goto allmulti;
2054
2055 /*
2056 * Program the 64-bit multicast hash filter.
2057 */
2058 ETHER_FIRST_MULTI(step, ac, enm)do { (step).e_enm = ((&(ac)->ac_multiaddrs)->lh_first
); do { if ((((enm)) = ((step)).e_enm) != ((void *)0)) ((step
)).e_enm = ((((enm)))->enm_list.le_next); } while ( 0); } while
( 0)
;
2059 while (enm != NULL((void *)0)) {
2060 hash = atw_calchash(enm->enm_addrlo)(ether_crc32_le((enm->enm_addrlo), 6) & 0x3f);
2061 hashes[hash >> 5] |= 1 << (hash & 0x1f);
2062 ETHER_NEXT_MULTI(step, enm)do { if (((enm) = (step).e_enm) != ((void *)0)) (step).e_enm =
(((enm))->enm_list.le_next); } while ( 0)
;
2063 sc->sc_opmode |= ATW_NAR_MM(1<<7);
2064 }
2065 ifp->if_flags &= ~IFF_ALLMULTI0x200;
2066 goto setit;
2067
2068allmulti:
2069 sc->sc_opmode |= ATW_NAR_MM(1<<7);
2070 ifp->if_flags |= IFF_ALLMULTI0x200;
2071 hashes[0] = hashes[1] = 0xffffffff;
2072
2073setit:
2074 ATW_WRITE(sc, ATW_MAR0, hashes[0])(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x9C)), ((hashes
[0]))))
;
2075 ATW_WRITE(sc, ATW_MAR1, hashes[1])(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xA0)), ((hashes
[1]))))
;
2076 ATW_WRITE(sc, ATW_NAR, sc->sc_opmode)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x30)), ((sc
->sc_opmode))))
;
2077 DELAY(20 * 1000)(*delay_func)(20 * 1000);
2078 ATW_WRITE(sc, ATW_RDR, 0x1)(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0x10)), ((0x1
))))
;
2079
2080 DPRINTF(sc, ("%s: ATW_NAR %08x opmode %08x\n", sc->sc_dev.dv_xname,
2081 ATW_READ(sc, ATW_NAR), sc->sc_opmode));
2082}
2083
2084/* Tell the ADM8211 our preferred BSSID. The ADM8211 must match
2085 * a beacon's BSSID and SSID against the preferred BSSID and SSID
2086 * before it will raise ATW_INTR_LINKON. When the ADM8211 receives
2087 * no beacon with the preferred BSSID and SSID in the number of
2088 * beacon intervals given in ATW_BPLI, then it raises ATW_INTR_LINKOFF.
2089 */
2090void
2091atw_write_bssid(struct atw_softc *sc)
2092{
2093 struct ieee80211com *ic = &sc->sc_ic;
2094 u_int8_t *bssid;
2095
2096 bssid = ic->ic_bss->ni_bssid;
2097
2098 ATW_WRITE(sc, ATW_BSSID0,(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xAC)), (((
(bssid[0]) << ((((u_long)((((((0xff)) - 1) & ((0xff
))) ^ ((0xff)))) >> (16)) != 0) ? 16 + ((((u_long)(((((
((0xff) >> 16)) - 1) & (((0xff) >> 16))) ^ ((
(0xff) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long)(
(((((((0xff) >> 16) >> 8)) - 1) & ((((0xff) >>
16) >> 8))) ^ ((((0xff) >> 16) >> 8)))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >> 16) >>
8) >> 4)) - 1) & (((((0xff) >> 16) >> 8
) >> 4))) ^ (((((0xff) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xff
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xff) >> 16) >> 8) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16
) >> 8) >> 4))) - 1) & ((((((0xff) >> 16
) >> 8) >> 4)))) ^ ((((((0xff) >> 16) >>
8) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0xff) >> 16) >> 8))) - 1) & (((((0xff
) >> 16) >> 8)))) ^ (((((0xff) >> 16) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff) >>
16) >> 8)) >> 2)) - 1) & ((((((0xff) >>
16) >> 8)) >> 2))) ^ ((((((0xff) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff) >> 16) >> 8)))) - 1) & (((((
(0xff) >> 16) >> 8))))) ^ ((((((0xff) >> 16
) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff) >> 16))) - 1) & ((((0xff) >> 16
)))) ^ ((((0xff) >> 16))))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xff) >> 16)) >> 4)) - 1) &
(((((0xff) >> 16)) >> 4))) ^ (((((0xff) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff) >> 16)) >> 4) >> 2))) ^ ((((((
0xff) >> 16)) >> 4) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16)) >>
4))) - 1) & ((((((0xff) >> 16)) >> 4)))) ^ (
(((((0xff) >> 16)) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xff) >> 16)))) - 1) &
(((((0xff) >> 16))))) ^ (((((0xff) >> 16)))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff) >> 16))) >>
2)) - 1) & ((((((0xff) >> 16))) >> 2))) ^ ((
((((0xff) >> 16))) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xff) >> 16))))) - 1) &
((((((0xff) >> 16)))))) ^ ((((((0xff) >> 16)))))
)) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff))
) - 1) & (((0xff)))) ^ (((0xff))))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0xff)) >> 8)) - 1) & ((((0xff
)) >> 8))) ^ ((((0xff)) >> 8)))) >> (4)) !=
0) ? 4 + ((((u_long)(((((((((0xff)) >> 8) >> 4))
- 1) & (((((0xff)) >> 8) >> 4))) ^ (((((0xff
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff)) >> 8) >> 4) >> 2))) ^ ((((((0xff
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xff)) >> 8) >> 4
))) - 1) & ((((((0xff)) >> 8) >> 4)))) ^ ((((
((0xff)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0xff)) >> 8))) - 1) & ((
(((0xff)) >> 8)))) ^ (((((0xff)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff)) >> 8)) >>
2)) - 1) & ((((((0xff)) >> 8)) >> 2))) ^ (((
(((0xff)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xff)) >> 8)))) - 1) &
((((((0xff)) >> 8))))) ^ ((((((0xff)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff))))
- 1) & ((((0xff))))) ^ ((((0xff)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xff))) >> 4)) - 1) & (
((((0xff))) >> 4))) ^ (((((0xff))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff))) >> 4) >>
2)) - 1) & ((((((0xff))) >> 4) >> 2))) ^ (((
(((0xff))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xff))) >> 4))) - 1) &
((((((0xff))) >> 4)))) ^ ((((((0xff))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff))))
) - 1) & (((((0xff)))))) ^ (((((0xff))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0xff)))) >> 2)) - 1) &
((((((0xff)))) >> 2))) ^ ((((((0xff)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff))))
)) - 1) & ((((((0xff))))))) ^ ((((((0xff)))))))) >>
(1)) != 0) ? 1 : 0)))))) | ((bssid[1]) << ((((u_long)(
(((((0xff00)) - 1) & ((0xff00))) ^ ((0xff00)))) >> (
16)) != 0) ? 16 + ((((u_long)(((((((0xff00) >> 16)) - 1
) & (((0xff00) >> 16))) ^ (((0xff00) >> 16)))
) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff00) >>
16) >> 8)) - 1) & ((((0xff00) >> 16) >>
8))) ^ ((((0xff00) >> 16) >> 8)))) >> (4))
!= 0) ? 4 + ((((u_long)(((((((((0xff00) >> 16) >>
8) >> 4)) - 1) & (((((0xff00) >> 16) >>
8) >> 4))) ^ (((((0xff00) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)
>> 16) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00) >> 16) >> 8) >> 4) >> 2
))) ^ ((((((0xff00) >> 16) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff00
) >> 16) >> 8) >> 4)))) ^ ((((((0xff00) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00) >> 16) >> 8))) - 1
) & (((((0xff00) >> 16) >> 8)))) ^ (((((0xff00
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff00) >> 16) >> 8)) >> 2
)) - 1) & ((((((0xff00) >> 16) >> 8)) >>
2))) ^ ((((((0xff00) >> 16) >> 8)) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)
>> 16) >> 8)))) - 1) & ((((((0xff00) >>
16) >> 8))))) ^ ((((((0xff00) >> 16) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff00
) >> 16))) - 1) & ((((0xff00) >> 16)))) ^ (((
(0xff00) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff00) >> 16)) >> 4)) - 1) & (((((
0xff00) >> 16)) >> 4))) ^ (((((0xff00) >> 16
)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((
((((0xff00) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff00) >> 16)) >> 4) >> 2))) ^ ((((
((0xff00) >> 16)) >> 4) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00) >> 16
)) >> 4))) - 1) & ((((((0xff00) >> 16)) >>
4)))) ^ ((((((0xff00) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00) >> 16
)))) - 1) & (((((0xff00) >> 16))))) ^ (((((0xff00) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00
) >> 16))) >> 2)) - 1) & ((((((0xff00) >>
16))) >> 2))) ^ ((((((0xff00) >> 16))) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
) >> 16))))) - 1) & ((((((0xff00) >> 16))))))
^ ((((((0xff00) >> 16))))))) >> (1)) != 0) ? 1 :
0)))) : ((((u_long)(((((((0xff00))) - 1) & (((0xff00))))
^ (((0xff00))))) >> (8)) != 0) ? 8 + ((((u_long)((((((
((0xff00)) >> 8)) - 1) & ((((0xff00)) >> 8)))
^ ((((0xff00)) >> 8)))) >> (4)) != 0) ? 4 + ((((
u_long)(((((((((0xff00)) >> 8) >> 4)) - 1) & (
((((0xff00)) >> 8) >> 4))) ^ (((((0xff00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff00)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00)) >> 8) >> 4) >> 2))) ^ (((((
(0xff00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8) >>
4))) - 1) & ((((((0xff00)) >> 8) >> 4)))) ^ (
(((((0xff00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff00)) >> 8))) - 1) &
(((((0xff00)) >> 8)))) ^ (((((0xff00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)) >>
8)) >> 2)) - 1) & ((((((0xff00)) >> 8)) >>
2))) ^ ((((((0xff00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8
)))) - 1) & ((((((0xff00)) >> 8))))) ^ ((((((0xff00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00)))) - 1) & ((((0xff00))))) ^ ((((0xff00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff00))) >>
4)) - 1) & (((((0xff00))) >> 4))) ^ (((((0xff00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff00))) >> 4) >> 2)) - 1) & ((((((0xff00)
)) >> 4) >> 2))) ^ ((((((0xff00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
))) >> 4))) - 1) & ((((((0xff00))) >> 4)))) ^
((((((0xff00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00))))) - 1) & (((((0xff00)))
))) ^ (((((0xff00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00)))) >> 2)) - 1) & ((((((0xff00)))
) >> 2))) ^ ((((((0xff00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)))))) - 1) &
((((((0xff00))))))) ^ ((((((0xff00)))))))) >> (1)) != 0
) ? 1 : 0)))))) | ((bssid[2]) << ((((u_long)((((((0xff0000
)) - 1) & ((0xff0000))) ^ ((0xff0000)))) >> (16)) !=
0) ? 16 + ((((u_long)(((((((0xff0000) >> 16)) - 1) &
(((0xff0000) >> 16))) ^ (((0xff0000) >> 16)))) >>
(8)) != 0) ? 8 + ((((u_long)((((((((0xff0000) >> 16) >>
8)) - 1) & ((((0xff0000) >> 16) >> 8))) ^ ((
((0xff0000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0xff0000) >> 16) >> 8) >>
4)) - 1) & (((((0xff0000) >> 16) >> 8) >>
4))) ^ (((((0xff0000) >> 16) >> 8) >> 4)))
) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff0000) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xff0000) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4)))) ^ ((((((0xff0000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff0000) >> 16) >> 8))) -
1) & (((((0xff0000) >> 16) >> 8)))) ^ (((((0xff0000
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000) >> 16) >> 8)) >>
2)) - 1) & ((((((0xff0000) >> 16) >> 8)) >>
2))) ^ ((((((0xff0000) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8)))) - 1) & ((((((0xff0000) >>
16) >> 8))))) ^ ((((((0xff0000) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
) >> 16))) - 1) & ((((0xff0000) >> 16)))) ^ (
(((0xff0000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff0000) >> 16)) >> 4)) - 1) & (((
((0xff0000) >> 16)) >> 4))) ^ (((((0xff0000) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff0000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff0000) >> 16)) >> 4) >> 2))) ^ ((
((((0xff0000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000) >>
16)) >> 4))) - 1) & ((((((0xff0000) >> 16)) >>
4)))) ^ ((((((0xff0000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000) >>
16)))) - 1) & (((((0xff0000) >> 16))))) ^ (((((0xff0000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0xff0000) >> 16))) >> 2)) - 1) & ((((((
0xff0000) >> 16))) >> 2))) ^ ((((((0xff0000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff0000) >> 16))))) - 1) & ((((((0xff0000
) >> 16)))))) ^ ((((((0xff0000) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff0000))) - 1) &
(((0xff0000)))) ^ (((0xff0000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0xff0000)) >> 8)) - 1) & ((((0xff0000
)) >> 8))) ^ ((((0xff0000)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xff0000)) >> 8) >>
4)) - 1) & (((((0xff0000)) >> 8) >> 4))) ^ (
((((0xff0000)) >> 8) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff0000)) >> 8) >> 4
) >> 2)) - 1) & ((((((0xff0000)) >> 8) >>
4) >> 2))) ^ ((((((0xff0000)) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
)) >> 8) >> 4))) - 1) & ((((((0xff0000)) >>
8) >> 4)))) ^ ((((((0xff0000)) >> 8) >> 4)
)))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000
)) >> 8))) - 1) & (((((0xff0000)) >> 8)))) ^ (
((((0xff0000)) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000)) >> 8)) >> 2)) - 1) &
((((((0xff0000)) >> 8)) >> 2))) ^ ((((((0xff0000
)) >> 8)) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff0000)) >> 8)))) - 1) & ((
((((0xff0000)) >> 8))))) ^ ((((((0xff0000)) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
)))) - 1) & ((((0xff0000))))) ^ ((((0xff0000)))))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff0000))) >> 4)
) - 1) & (((((0xff0000))) >> 4))) ^ (((((0xff0000))
) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((((
(((0xff0000))) >> 4) >> 2)) - 1) & ((((((0xff0000
))) >> 4) >> 2))) ^ ((((((0xff0000))) >> 4)
>> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(((
(((((((0xff0000))) >> 4))) - 1) & ((((((0xff0000)))
>> 4)))) ^ ((((((0xff0000))) >> 4))))) >> (
1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000))))) - 1) &
(((((0xff0000)))))) ^ (((((0xff0000))))))) >> (2)) != 0
) ? 2 + ((((u_long)((((((((((0xff0000)))) >> 2)) - 1) &
((((((0xff0000)))) >> 2))) ^ ((((((0xff0000)))) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
)))))) - 1) & ((((((0xff0000))))))) ^ ((((((0xff0000)))))
))) >> (1)) != 0) ? 1 : 0)))))) | ((bssid[3]) << (
(((u_long)((((((0xff000000)) - 1) & ((0xff000000))) ^ ((0xff000000
)))) >> (16)) != 0) ? 16 + ((((u_long)(((((((0xff000000
) >> 16)) - 1) & (((0xff000000) >> 16))) ^ ((
(0xff000000) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long
)((((((((0xff000000) >> 16) >> 8)) - 1) & (((
(0xff000000) >> 16) >> 8))) ^ ((((0xff000000) >>
16) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long)((((
(((((0xff000000) >> 16) >> 8) >> 4)) - 1) &
(((((0xff000000) >> 16) >> 8) >> 4))) ^ ((
(((0xff000000) >> 16) >> 8) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000) >> 16
) >> 8) >> 4) >> 2)) - 1) & ((((((0xff000000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xff000000) >> 16) >> 8) >> 4) >> 2))
)) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff000000
) >> 16) >> 8) >> 4)))) ^ ((((((0xff000000)
>> 16) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff000000) >> 16) >>
8))) - 1) & (((((0xff000000) >> 16) >> 8))))
^ (((((0xff000000) >> 16) >> 8))))) >> (2)
) != 0) ? 2 + ((((u_long)((((((((((0xff000000) >> 16) >>
8)) >> 2)) - 1) & ((((((0xff000000) >> 16) >>
8)) >> 2))) ^ ((((((0xff000000) >> 16) >> 8
)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)(
(((((((((0xff000000) >> 16) >> 8)))) - 1) & (
(((((0xff000000) >> 16) >> 8))))) ^ ((((((0xff000000
) >> 16) >> 8)))))) >> (1)) != 0) ? 1 : 0))
) : ((((u_long)((((((((0xff000000) >> 16))) - 1) & (
(((0xff000000) >> 16)))) ^ ((((0xff000000) >> 16)
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff000000
) >> 16)) >> 4)) - 1) & (((((0xff000000) >>
16)) >> 4))) ^ (((((0xff000000) >> 16)) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff000000
) >> 16)) >> 4) >> 2)) - 1) & ((((((0xff000000
) >> 16)) >> 4) >> 2))) ^ ((((((0xff000000)
>> 16)) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xff000000) >> 16)) >>
4))) - 1) & ((((((0xff000000) >> 16)) >> 4))
)) ^ ((((((0xff000000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff000000) >>
16)))) - 1) & (((((0xff000000) >> 16))))) ^ (((((0xff000000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0xff000000) >> 16))) >> 2)) - 1) & ((((
((0xff000000) >> 16))) >> 2))) ^ ((((((0xff000000
) >> 16))) >> 2)))) >> (1)) != 0) ? 1 : 0) :
((((u_long)((((((((((0xff000000) >> 16))))) - 1) &
((((((0xff000000) >> 16)))))) ^ ((((((0xff000000) >>
16))))))) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((
((0xff000000))) - 1) & (((0xff000000)))) ^ (((0xff000000)
)))) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff000000)
) >> 8)) - 1) & ((((0xff000000)) >> 8))) ^ ((
((0xff000000)) >> 8)))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff000000)) >> 8) >> 4)) - 1) & ((
(((0xff000000)) >> 8) >> 4))) ^ (((((0xff000000))
>> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff000000)) >> 8) >> 4) >> 2)) -
1) & ((((((0xff000000)) >> 8) >> 4) >>
2))) ^ ((((((0xff000000)) >> 8) >> 4) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000
)) >> 8) >> 4))) - 1) & ((((((0xff000000)) >>
8) >> 4)))) ^ ((((((0xff000000)) >> 8) >> 4
))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff000000
)) >> 8))) - 1) & (((((0xff000000)) >> 8)))) ^
(((((0xff000000)) >> 8))))) >> (2)) != 0) ? 2 + (
(((u_long)((((((((((0xff000000)) >> 8)) >> 2)) - 1
) & ((((((0xff000000)) >> 8)) >> 2))) ^ (((((
(0xff000000)) >> 8)) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xff000000)) >> 8)))) -
1) & ((((((0xff000000)) >> 8))))) ^ ((((((0xff000000
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff000000)))) - 1) & ((((0xff000000))))) ^ ((((
0xff000000)))))) >> (4)) != 0) ? 4 + ((((u_long)(((((((
((0xff000000))) >> 4)) - 1) & (((((0xff000000))) >>
4))) ^ (((((0xff000000))) >> 4)))) >> (2)) != 0)
? 2 + ((((u_long)((((((((((0xff000000))) >> 4) >>
2)) - 1) & ((((((0xff000000))) >> 4) >> 2)))
^ ((((((0xff000000))) >> 4) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000))) >>
4))) - 1) & ((((((0xff000000))) >> 4)))) ^ ((((((0xff000000
))) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0xff000000))))) - 1) & (((((0xff000000)))))) ^ (
((((0xff000000))))))) >> (2)) != 0) ? 2 + ((((u_long)((
((((((((0xff000000)))) >> 2)) - 1) & ((((((0xff000000
)))) >> 2))) ^ ((((((0xff000000)))) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff000000)))))) -
1) & ((((((0xff000000))))))) ^ ((((((0xff000000)))))))) >>
(1)) != 0) ? 1 : 0))))))))))
2099 LSHIFT(bssid[0], ATW_BSSID0_BSSIDB0_MASK) |(((sc)->sc_st)->write_4(((sc)->sc_sh), ((0xAC)), (((
(bssid[0]) << ((((u_long)((((((0xff)) - 1) & ((0xff
))) ^ ((0xff)))) >> (16)) != 0) ? 16 + ((((u_long)(((((
((0xff) >> 16)) - 1) & (((0xff) >> 16))) ^ ((
(0xff) >> 16)))) >> (8)) != 0) ? 8 + ((((u_long)(
(((((((0xff) >> 16) >> 8)) - 1) & ((((0xff) >>
16) >> 8))) ^ ((((0xff) >> 16) >> 8)))) >>
(4)) != 0) ? 4 + ((((u_long)(((((((((0xff) >> 16) >>
8) >> 4)) - 1) & (((((0xff) >> 16) >> 8
) >> 4))) ^ (((((0xff) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xff
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xff) >> 16) >> 8) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16
) >> 8) >> 4))) - 1) & ((((((0xff) >> 16
) >> 8) >> 4)))) ^ ((((((0xff) >> 16) >>
8) >> 4))))) >> (1)) != 0) ? 1 : 0)) : ((((u_long
)(((((((((0xff) >> 16) >> 8))) - 1) & (((((0xff
) >> 16) >> 8)))) ^ (((((0xff) >> 16) >>
8))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff) >>
16) >> 8)) >> 2)) - 1) & ((((((0xff) >>
16) >> 8)) >> 2))) ^ ((((((0xff) >> 16) >>
8)) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff) >> 16) >> 8)))) - 1) & (((((
(0xff) >> 16) >> 8))))) ^ ((((((0xff) >> 16
) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff) >> 16))) - 1) & ((((0xff) >> 16
)))) ^ ((((0xff) >> 16))))) >> (4)) != 0) ? 4 + (
(((u_long)(((((((((0xff) >> 16)) >> 4)) - 1) &
(((((0xff) >> 16)) >> 4))) ^ (((((0xff) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff) >> 16)) >> 4) >> 2))) ^ ((((((
0xff) >> 16)) >> 4) >> 2)))) >> (1)) !=
0) ? 1 : 0) : ((((u_long)((((((((((0xff) >> 16)) >>
4))) - 1) & ((((((0xff) >> 16)) >> 4)))) ^ (
(((((0xff) >> 16)) >> 4))))) >> (1)) != 0) ?
1 : 0)) : ((((u_long)(((((((((0xff) >> 16)))) - 1) &
(((((0xff) >> 16))))) ^ (((((0xff) >> 16)))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff) >> 16))) >>
2)) - 1) & ((((((0xff) >> 16))) >> 2))) ^ ((
((((0xff) >> 16))) >> 2)))) >> (1)) != 0) ?
1 : 0) : ((((u_long)((((((((((0xff) >> 16))))) - 1) &
((((((0xff) >> 16)))))) ^ ((((((0xff) >> 16)))))
)) >> (1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff))
) - 1) & (((0xff)))) ^ (((0xff))))) >> (8)) != 0) ?
8 + ((((u_long)((((((((0xff)) >> 8)) - 1) & ((((0xff
)) >> 8))) ^ ((((0xff)) >> 8)))) >> (4)) !=
0) ? 4 + ((((u_long)(((((((((0xff)) >> 8) >> 4))
- 1) & (((((0xff)) >> 8) >> 4))) ^ (((((0xff
)) >> 8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff)) >> 8) >> 4) >> 2))) ^ ((((((0xff
)) >> 8) >> 4) >> 2)))) >> (1)) != 0)
? 1 : 0) : ((((u_long)((((((((((0xff)) >> 8) >> 4
))) - 1) & ((((((0xff)) >> 8) >> 4)))) ^ ((((
((0xff)) >> 8) >> 4))))) >> (1)) != 0) ? 1 :
0)) : ((((u_long)(((((((((0xff)) >> 8))) - 1) & ((
(((0xff)) >> 8)))) ^ (((((0xff)) >> 8))))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff)) >> 8)) >>
2)) - 1) & ((((((0xff)) >> 8)) >> 2))) ^ (((
(((0xff)) >> 8)) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xff)) >> 8)))) - 1) &
((((((0xff)) >> 8))))) ^ ((((((0xff)) >> 8))))))
>> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff))))
- 1) & ((((0xff))))) ^ ((((0xff)))))) >> (4)) != 0
) ? 4 + ((((u_long)(((((((((0xff))) >> 4)) - 1) & (
((((0xff))) >> 4))) ^ (((((0xff))) >> 4)))) >>
(2)) != 0) ? 2 + ((((u_long)((((((((((0xff))) >> 4) >>
2)) - 1) & ((((((0xff))) >> 4) >> 2))) ^ (((
(((0xff))) >> 4) >> 2)))) >> (1)) != 0) ? 1
: 0) : ((((u_long)((((((((((0xff))) >> 4))) - 1) &
((((((0xff))) >> 4)))) ^ ((((((0xff))) >> 4)))))
>> (1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff))))
) - 1) & (((((0xff)))))) ^ (((((0xff))))))) >> (2))
!= 0) ? 2 + ((((u_long)((((((((((0xff)))) >> 2)) - 1) &
((((((0xff)))) >> 2))) ^ ((((((0xff)))) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff))))
)) - 1) & ((((((0xff))))))) ^ ((((((0xff)))))))) >>
(1)) != 0) ? 1 : 0)))))) | ((bssid[1]) << ((((u_long)(
(((((0xff00)) - 1) & ((0xff00))) ^ ((0xff00)))) >> (
16)) != 0) ? 16 + ((((u_long)(((((((0xff00) >> 16)) - 1
) & (((0xff00) >> 16))) ^ (((0xff00) >> 16)))
) >> (8)) != 0) ? 8 + ((((u_long)((((((((0xff00) >>
16) >> 8)) - 1) & ((((0xff00) >> 16) >>
8))) ^ ((((0xff00) >> 16) >> 8)))) >> (4))
!= 0) ? 4 + ((((u_long)(((((((((0xff00) >> 16) >>
8) >> 4)) - 1) & (((((0xff00) >> 16) >>
8) >> 4))) ^ (((((0xff00) >> 16) >> 8) >>
4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)
>> 16) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00) >> 16) >> 8) >> 4) >> 2
))) ^ ((((((0xff00) >> 16) >> 8) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff00
) >> 16) >> 8) >> 4)))) ^ ((((((0xff00) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00) >> 16) >> 8))) - 1
) & (((((0xff00) >> 16) >> 8)))) ^ (((((0xff00
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff00) >> 16) >> 8)) >> 2
)) - 1) & ((((((0xff00) >> 16) >> 8)) >>
2))) ^ ((((((0xff00) >> 16) >> 8)) >> 2)))
) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)
>> 16) >> 8)))) - 1) & ((((((0xff00) >>
16) >> 8))))) ^ ((((((0xff00) >> 16) >> 8)
))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff00
) >> 16))) - 1) & ((((0xff00) >> 16)))) ^ (((
(0xff00) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff00) >> 16)) >> 4)) - 1) & (((((
0xff00) >> 16)) >> 4))) ^ (((((0xff00) >> 16
)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((
((((0xff00) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff00) >> 16)) >> 4) >> 2))) ^ ((((
((0xff00) >> 16)) >> 4) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00) >> 16
)) >> 4))) - 1) & ((((((0xff00) >> 16)) >>
4)))) ^ ((((((0xff00) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff00) >> 16
)))) - 1) & (((((0xff00) >> 16))))) ^ (((((0xff00) >>
16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00
) >> 16))) >> 2)) - 1) & ((((((0xff00) >>
16))) >> 2))) ^ ((((((0xff00) >> 16))) >> 2
)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
) >> 16))))) - 1) & ((((((0xff00) >> 16))))))
^ ((((((0xff00) >> 16))))))) >> (1)) != 0) ? 1 :
0)))) : ((((u_long)(((((((0xff00))) - 1) & (((0xff00))))
^ (((0xff00))))) >> (8)) != 0) ? 8 + ((((u_long)((((((
((0xff00)) >> 8)) - 1) & ((((0xff00)) >> 8)))
^ ((((0xff00)) >> 8)))) >> (4)) != 0) ? 4 + ((((
u_long)(((((((((0xff00)) >> 8) >> 4)) - 1) & (
((((0xff00)) >> 8) >> 4))) ^ (((((0xff00)) >>
8) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((((
(((((0xff00)) >> 8) >> 4) >> 2)) - 1) &
((((((0xff00)) >> 8) >> 4) >> 2))) ^ (((((
(0xff00)) >> 8) >> 4) >> 2)))) >> (1)
) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8) >>
4))) - 1) & ((((((0xff00)) >> 8) >> 4)))) ^ (
(((((0xff00)) >> 8) >> 4))))) >> (1)) != 0)
? 1 : 0)) : ((((u_long)(((((((((0xff00)) >> 8))) - 1) &
(((((0xff00)) >> 8)))) ^ (((((0xff00)) >> 8)))))
>> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff00)) >>
8)) >> 2)) - 1) & ((((((0xff00)) >> 8)) >>
2))) ^ ((((((0xff00)) >> 8)) >> 2)))) >> (
1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)) >> 8
)))) - 1) & ((((((0xff00)) >> 8))))) ^ ((((((0xff00
)) >> 8)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long
)((((((((0xff00)))) - 1) & ((((0xff00))))) ^ ((((0xff00))
)))) >> (4)) != 0) ? 4 + ((((u_long)(((((((((0xff00))) >>
4)) - 1) & (((((0xff00))) >> 4))) ^ (((((0xff00)))
>> 4)))) >> (2)) != 0) ? 2 + ((((u_long)((((((((
((0xff00))) >> 4) >> 2)) - 1) & ((((((0xff00)
)) >> 4) >> 2))) ^ ((((((0xff00))) >> 4) >>
2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00
))) >> 4))) - 1) & ((((((0xff00))) >> 4)))) ^
((((((0xff00))) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff00))))) - 1) & (((((0xff00)))
))) ^ (((((0xff00))))))) >> (2)) != 0) ? 2 + ((((u_long
)((((((((((0xff00)))) >> 2)) - 1) & ((((((0xff00)))
) >> 2))) ^ ((((((0xff00)))) >> 2)))) >> (1
)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff00)))))) - 1) &
((((((0xff00))))))) ^ ((((((0xff00)))))))) >> (1)) != 0
) ? 1 : 0)))))) | ((bssid[2]) << ((((u_long)((((((0xff0000
)) - 1) & ((0xff0000))) ^ ((0xff0000)))) >> (16)) !=
0) ? 16 + ((((u_long)(((((((0xff0000) >> 16)) - 1) &
(((0xff0000) >> 16))) ^ (((0xff0000) >> 16)))) >>
(8)) != 0) ? 8 + ((((u_long)((((((((0xff0000) >> 16) >>
8)) - 1) & ((((0xff0000) >> 16) >> 8))) ^ ((
((0xff0000) >> 16) >> 8)))) >> (4)) != 0) ?
4 + ((((u_long)(((((((((0xff0000) >> 16) >> 8) >>
4)) - 1) & (((((0xff0000) >> 16) >> 8) >>
4))) ^ (((((0xff0000) >> 16) >> 8) >> 4)))
) >> (2)) != 0) ? 2 + ((((u_long)((((((((((0xff0000) >>
16) >> 8) >> 4) >> 2)) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4) >> 2))) ^ ((((((
0xff0000) >> 16) >> 8) >> 4) >> 2))))
>> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8) >> 4))) - 1) & ((((((0xff0000
) >> 16) >> 8) >> 4)))) ^ ((((((0xff0000) >>
16) >> 8) >> 4))))) >> (1)) != 0) ? 1 : 0)
) : ((((u_long)(((((((((0xff0000) >> 16) >> 8))) -
1) & (((((0xff0000) >> 16) >> 8)))) ^ (((((0xff0000
) >> 16) >> 8))))) >> (2)) != 0) ? 2 + ((((
u_long)((((((((((0xff0000) >> 16) >> 8)) >>
2)) - 1) & ((((((0xff0000) >> 16) >> 8)) >>
2))) ^ ((((((0xff0000) >> 16) >> 8)) >> 2)
))) >> (1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000
) >> 16) >> 8)))) - 1) & ((((((0xff0000) >>
16) >> 8))))) ^ ((((((0xff0000) >> 16) >> 8
)))))) >> (1)) != 0) ? 1 : 0))) : ((((u_long)((((((((0xff0000
) >> 16))) - 1) & ((((0xff0000) >> 16)))) ^ (
(((0xff0000) >> 16))))) >> (4)) != 0) ? 4 + ((((u_long
)(((((((((0xff0000) >> 16)) >> 4)) - 1) & (((
((0xff0000) >> 16)) >> 4))) ^ (((((0xff0000) >>
16)) >> 4)))) >> (2)) != 0) ? 2 + ((((u_long)(((
(((((((0xff0000) >> 16)) >> 4) >> 2)) - 1) &
((((((0xff0000) >> 16)) >> 4) >> 2))) ^ ((
((((0xff0000) >> 16)) >> 4) >> 2)))) >>
(1)) != 0) ? 1 : 0) : ((((u_long)((((((((((0xff0000) >>
16)) >> 4))) - 1) & ((((((0xff0000) >> 16)) >>
4)))) ^ ((((((0xff0000) >> 16)) >> 4))))) >>
(1)) != 0) ? 1 : 0)) : ((((u_long)(((((((((0xff0000) >>
16)))) - 1) & (((((0xff0000) >> 16))))) ^ (((((0xff0000
) >> 16)))))) >> (2)) != 0) ? 2 + ((((u_long)((((
((((((0xff0000) >> 16))) >> 2)) - 1) & ((((((
0xff0000) >> 16))) >> 2))) ^ ((((((0xff0000) >>
16))) >> 2)))) >> (1)) != 0) ? 1 : 0) : ((((u_long
)((((((((((0xff0000) >> 16))))) - 1) & ((((((0xff0000
) >> 16)))))) ^ ((((((0xff0000) >> 16))))))) >>
(1)) != 0) ? 1 : 0)))) : ((((u_long)(((((((0xff0000))) - 1) &
(((0xff0000)))) ^ (((0xff0000))))) >> (8)) != 0) ? 8 +
((((u_long)((((((((0xff0000)) >> 8)) - 1) & ((((0xff0000
)) >> 8))) ^ ((((0xff0000)) >> 8)))) >> (4)
) != 0) ? 4 + ((((u_long)(((((((((0xff0000)) >> 8) >>
4)) - 1) & (((((0xff0000)) >> 8) >> 4))) ^ (
((((0xff0000)) >> 8) >> 4)))) >> (2)) !=