]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/modules/ath/Makefile
Dtrace: Add SUN MDB-like type-aware print() action.
[FreeBSD/FreeBSD.git] / sys / modules / ath / Makefile
1 #
2 # Copyright (c) 2002-2008 Sam Leffler, Errno Consulting
3 # All rights reserved.
4 #
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
7 # are met:
8 # 1. Redistributions of source code must retain the above copyright
9 #    notice, this list of conditions and the following disclaimer,
10 #    without modification.
11 # 2. Redistributions in binary form must reproduce at minimum a disclaimer
12 #    similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
13 #    redistribution must be conditioned upon including a substantially
14 #    similar Disclaimer requirement for further binary redistribution.
15 #
16 # NO WARRANTY
17 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 # LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
20 # AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
21 # THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
22 # OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
25 # IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27 # THE POSSIBILITY OF SUCH DAMAGES.
28 #
29 # $FreeBSD$
30 #
31
32 ATH_RATE?=      sample          # tx rate control algorithm
33
34 .PATH:  ${.CURDIR}/../../dev/ath
35 .PATH:  ${.CURDIR}/../../dev/ath/ath_hal
36
37 KMOD=   if_ath
38 SRCS=   if_ath.c if_ath_alq.c if_ath_debug.c if_ath_keycache.c if_ath_sysctl.c
39 SRCS+=  if_ath_tx.c if_ath_tx_ht.c if_ath_led.c if_ath_rx.c if_ath_tdma.c
40 SRCS+=  if_ath_beacon.c if_ath_rx_edma.c if_ath_tx_edma.c if_ath_spectral.c
41 # NB: v3 eeprom support used by both AR5211 and AR5212; just include it
42 SRCS+=  ah_osdep.c ah.c ah_regdomain.c ah_eeprom_v3.c
43 SRCS+=  device_if.h bus_if.h pci_if.h opt_inet.h opt_ath.h opt_ah.h opt_wlan.h
44
45 #
46 # AR5210 support; these are first generation 11a-only devices.
47 #
48 .PATH:  ${.CURDIR}/../../dev/ath/ath_hal/ar5210
49 SRCS+=  ah_eeprom_v1.c \
50         ar5210_attach.c ar5210_beacon.c ar5210_interrupts.c \
51         ar5210_keycache.c ar5210_misc.c ar5210_phy.c ar5210_power.c \
52         ar5210_recv.c ar5210_reset.c ar5210_xmit.c
53
54 #
55 # AR5211 support; these are second generation 11b/g/a devices
56 # (but 11g was OFDM only and is not supported).
57 #
58 .PATH:  ${.CURDIR}/../../dev/ath/ath_hal/ar5211
59 SRCS+=  ar5211_attach.c ar5211_beacon.c ar5211_interrupts.c \
60         ar5211_keycache.c ar5211_misc.c ar5211_phy.c ar5211_power.c \
61         ar5211_recv.c ar5211_reset.c ar5211_xmit.c
62
63 #
64 # AR5212 support; this covers all other pci/cardbus legacy parts.
65 #
66 .PATH:  ${.CURDIR}/../../dev/ath/ath_hal/ar5212
67 SRCS+=  ar5212_ani.c ar5212_attach.c ar5212_beacon.c ar5212_eeprom.c \
68         ar5212_gpio.c ar5212_interrupts.c ar5212_keycache.c ar5212_misc.c \
69         ar5212_phy.c ar5212_power.c ar5212_recv.c ar5212_reset.c \
70         ar5212_rfgain.c ar5212_xmit.c
71 # RF backends
72 SRCS+=  ar5111.c
73 SRCS+=  ar5112.c
74 SRCS+=  ar2413.c
75 SRCS+=  ar2425.c
76 SRCS+=  ar5413.c
77
78 #
79 # AR5416, AR9130, AR9160, AR9220, AR9280, AR9285, AR9287 support.
80
81 # Note enabling this support requires defining AH_SUPPORT_AR5416
82 # in opt_ah.h so the 11n tx/rx descriptor format is handled.
83 #
84 # NB: 9160 depends on 5416 but 5416 does not require 9160
85 #
86 # + 5416 (Owl)
87 .PATH:  ${.CURDIR}/../../dev/ath/ath_hal/ar5416
88 SRCS+=  ah_eeprom_v14.c ah_eeprom_v4k.c \
89         ar5416_ani.c ar5416_attach.c ar5416_beacon.c ar5416_btcoex.c \
90         ar5416_cal.c ar5416_cal_iq.c ar5416_cal_adcgain.c ar5416_cal_adcdc.c \
91         ar5416_eeprom.c ar5416_gpio.c ar5416_interrupts.c ar5416_keycache.c \
92         ar5416_misc.c ar5416_phy.c ar5416_power.c ar5416_radar.c ar5416_spectral.c \
93         ar5416_recv.c ar5416_reset.c ar5416_xmit.c
94
95 # RF backend for 5416, 9130 and 9160
96 SRCS+=  ar2133.c
97
98 # + AR9160 (Sowl)
99 .PATH:  ${.CURDIR}/../../dev/ath/ath_hal/ar9001
100 SRCS+=  ar9160_attach.c
101
102 # + AR9130 - (Sowl) - Embedded (AR913x SoC)
103 #
104 # This requires AH_SUPPORT_AR9130 in order to function as some
105 # register values have shifted for this chipset. Definig this however
106 # (currently) breaks non-AR9130 chipsets - since this is an embedded
107 # chipset and no other radios are glued to it, this shouldn't pose a
108 # problem.
109 SRCS+=  ar9130_attach.c ar9130_eeprom.c ar9130_phy.c
110
111 # AR9002 series chips
112 # + AR9220/AR9280 - Merlin
113 .PATH:  ${.CURDIR}/../../dev/ath/ath_hal/ar9002
114 SRCS+=  ar9280.c ar9280_attach.c ar9280_olc.c
115
116 # + AR9285 - Kite
117 SRCS+=  ar9285.c ar9285_reset.c ar9285_attach.c ar9285_cal.c ar9285_phy.c
118 SRCS+=  ar9285_diversity.c ar9285_btcoex.c
119
120 # + AR9287 - Kiwi
121 .PATH:  ${.CURDIR}/../../dev/ath/ath_hal
122 SRCS+=  ah_eeprom_9287.c
123 .PATH:  ${.CURDIR}/../../dev/ath/ath_hal/ar9002
124 SRCS+=  ar9287.c ar9287_reset.c ar9287_attach.c ar9287_cal.c ar9287_olc.c
125
126 # + AR9300 HAL
127 # .PATH:  ${.CURDIR}/../../contrib/sys/dev/ath/ath_hal/ar9300
128 #SRCS+= ar9300_interrupts.c ar9300_radar.c ar9300_ani.c ar9300_keycache.c
129 #SRCS+= ar9300_radio.c ar9300_xmit.c ar9300_attach.c ar9300_mci.c ar9300_stub.c
130 #SRCS+= ar9300_xmit_ds.c ar9300_beacon.c ar9300_misc.c ar9300_recv.c
131 #SRCS+= ar9300_stub_funcs.c ar9300_eeprom.c ar9300_paprd.c ar9300_recv_ds.c
132 #SRCS+= ar9300_freebsd.c ar9300_phy.c ar9300_reset.c ar9300_gpio.c
133 #SRCS+= ar9300_power.c ar9300_timer.c
134
135 # NB: rate control is bound to the driver by symbol names so only pick one
136 .if ${ATH_RATE} == "sample"
137 .PATH:  ${.CURDIR}/../../dev/ath/ath_rate/sample
138 SRCS+=  sample.c
139 .elif ${ATH_RATE} == "onoe"
140 .PATH:  ${.CURDIR}/../../dev/ath/ath_rate/onoe
141 SRCS+=  onoe.c
142 .elif ${ATH_RATE} == "amrr"
143 .PATH:  ${.CURDIR}/../../dev/ath/ath_rate/amrr
144 SRCS+=  amrr.c
145 .endif
146
147 # DFS
148 .PATH: ${.CURDIR}/../../dev/ath/ath_dfs/null
149 SRCS+=  dfs_null.c
150
151 CFLAGS+=  -I. -I${.CURDIR}/../../dev/ath -I${.CURDIR}/../../dev/ath/ath_hal
152 # CFLAGS+=  -I. -I${.CURDIR}/../../contrib/sys/dev/ath/ath_hal/
153
154 .if !defined(KERNBUILDDIR)
155 opt_ah.h:
156         echo '#define AH_SUPPORT_AR5416 1' > $@
157 .endif
158
159 .include <bsd.kmod.mk>
160
161 CWARNFLAGS.ah_regdomain.c=      ${NO_WSHIFT_COUNT_NEGATIVE} ${NO_WSHIFT_COUNT_OVERFLOW}
162 # XXX Work around clang warnings, until maintainer approves fix.
163 CWARNFLAGS.if_ath.c=            ${NO_WSOMETIMES_UNINITIALIZED}
164 CWARNFLAGS+=                    ${CWARNFLAGS.${.IMPSRC:T}}
165
166 # AR9300 HAL build overrides, as there's still some code to tidy up
167 #CWARNFLAGS.ar9300_eeprom.c=    ${NO_WCONSTANT_CONVERSION}
168 #CWARNFLAGS.ar9300_reset.c=     ${NO_WSOMETIMES_UNINITIALIZED}