Makefile revision 248259
1178825Sdfr#
2233294Sstas# Copyright (c) 2002-2008 Sam Leffler, Errno Consulting
3233294Sstas# All rights reserved.
4233294Sstas#
5178825Sdfr# Redistribution and use in source and binary forms, with or without
6233294Sstas# modification, are permitted provided that the following conditions
7233294Sstas# are met:
8233294Sstas# 1. Redistributions of source code must retain the above copyright
9178825Sdfr#    notice, this list of conditions and the following disclaimer,
10233294Sstas#    without modification.
11233294Sstas# 2. Redistributions in binary form must reproduce at minimum a disclaimer
12178825Sdfr#    similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
13233294Sstas#    redistribution must be conditioned upon including a substantially
14233294Sstas#    similar Disclaimer requirement for further binary redistribution.
15233294Sstas#
16178825Sdfr# NO WARRANTY
17178825Sdfr# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18178825Sdfr# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19178825Sdfr# LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
20178825Sdfr# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
21178825Sdfr# THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
22178825Sdfr# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23178825Sdfr# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24178825Sdfr# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
25178825Sdfr# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26178825Sdfr# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27178825Sdfr# THE POSSIBILITY OF SUCH DAMAGES.
28178825Sdfr#
29178825Sdfr# $FreeBSD: head/sys/modules/ath/Makefile 248259 2013-03-14 00:27:53Z adrian $
30178825Sdfr#
31178825Sdfr
32178825SdfrATH_RATE?=	sample		# tx rate control algorithm
33178825Sdfr
34178825Sdfr.PATH:	${.CURDIR}/../../dev/ath
35178825Sdfr.PATH:	${.CURDIR}/../../dev/ath/ath_hal
36178825Sdfr
37178825SdfrKMOD=	if_ath
38178825SdfrSRCS=	if_ath.c if_ath_alq.c if_ath_debug.c if_ath_keycache.c if_ath_sysctl.c
39178825SdfrSRCS+=	if_ath_tx.c if_ath_tx_ht.c if_ath_led.c if_ath_rx.c if_ath_tdma.c
40178825SdfrSRCS+=	if_ath_beacon.c if_ath_rx_edma.c if_ath_tx_edma.c if_ath_spectral.c
41178825Sdfr# NB: v3 eeprom support used by both AR5211 and AR5212; just include it
42178825SdfrSRCS+=	ah_osdep.c ah.c ah_regdomain.c ah_eeprom_v3.c
43178825SdfrSRCS+=	device_if.h bus_if.h pci_if.h opt_inet.h opt_ath.h opt_ah.h opt_wlan.h
44178825Sdfr
45178825Sdfr#
46178825Sdfr# AR5210 support; these are first generation 11a-only devices.
47178825Sdfr#
48178825Sdfr.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar5210
49178825SdfrSRCS+=	ah_eeprom_v1.c \
50178825Sdfr	ar5210_attach.c ar5210_beacon.c ar5210_interrupts.c \
51178825Sdfr	ar5210_keycache.c ar5210_misc.c ar5210_phy.c ar5210_power.c \
52178825Sdfr	ar5210_recv.c ar5210_reset.c ar5210_xmit.c
53178825Sdfr
54178825Sdfr#
55178825Sdfr# AR5211 support; these are second generation 11b/g/a devices
56178825Sdfr# (but 11g was OFDM only and is not supported).
57178825Sdfr#
58178825Sdfr.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar5211
59178825SdfrSRCS+=	ar5211_attach.c ar5211_beacon.c ar5211_interrupts.c \
60178825Sdfr	ar5211_keycache.c ar5211_misc.c	ar5211_phy.c ar5211_power.c \
61178825Sdfr	ar5211_recv.c ar5211_reset.c ar5211_xmit.c
62178825Sdfr
63178825Sdfr#
64178825Sdfr# AR5212 support; this covers all other pci/cardbus legacy parts.
65178825Sdfr#
66178825Sdfr.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar5212
67178825SdfrSRCS+=	ar5212_ani.c ar5212_attach.c ar5212_beacon.c ar5212_eeprom.c \
68178825Sdfr	ar5212_gpio.c ar5212_interrupts.c ar5212_keycache.c ar5212_misc.c \
69178825Sdfr	ar5212_phy.c ar5212_power.c ar5212_recv.c ar5212_reset.c \
70178825Sdfr	ar5212_rfgain.c ar5212_xmit.c
71178825Sdfr# RF backends
72178825SdfrSRCS+=	ar5111.c
73178825SdfrSRCS+=	ar5112.c
74178825SdfrSRCS+=	ar2413.c
75178825SdfrSRCS+=	ar2425.c
76178825SdfrSRCS+=	ar5413.c
77178825Sdfr
78178825Sdfr#
79178825Sdfr# AR5416, AR9130, AR9160, AR9220, AR9280, AR9285, AR9287 support.
80178825Sdfr
81178825Sdfr# Note enabling this support requires defining AH_SUPPORT_AR5416
82178825Sdfr# in opt_ah.h so the 11n tx/rx descriptor format is handled.
83178825Sdfr#
84178825Sdfr# NB: 9160 depends on 5416 but 5416 does not require 9160
85178825Sdfr#
86178825Sdfr# + 5416 (Owl)
87178825Sdfr.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar5416
88178825SdfrSRCS+=	ah_eeprom_v14.c ah_eeprom_v4k.c \
89178825Sdfr	ar5416_ani.c ar5416_attach.c ar5416_beacon.c ar5416_btcoex.c \
90178825Sdfr	ar5416_cal.c ar5416_cal_iq.c ar5416_cal_adcgain.c ar5416_cal_adcdc.c \
91178825Sdfr	ar5416_eeprom.c ar5416_gpio.c ar5416_interrupts.c ar5416_keycache.c \
92178825Sdfr	ar5416_misc.c ar5416_phy.c ar5416_power.c ar5416_radar.c ar5416_spectral.c \
93178825Sdfr	ar5416_recv.c ar5416_reset.c ar5416_xmit.c
94178825Sdfr
95178825Sdfr# RF backend for 5416, 9130 and 9160
96178825SdfrSRCS+=	ar2133.c
97178825Sdfr
98178825Sdfr# + AR9160 (Sowl)
99178825Sdfr.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar9001
100178825SdfrSRCS+=	ar9160_attach.c
101178825Sdfr
102178825Sdfr# + AR9130 - (Sowl) - Embedded (AR913x SoC)
103178825Sdfr#
104178825Sdfr# This requires AH_SUPPORT_AR9130 in order to function as some
105178825Sdfr# register values have shifted for this chipset. Definig this however
106178825Sdfr# (currently) breaks non-AR9130 chipsets - since this is an embedded
107178825Sdfr# chipset and no other radios are glued to it, this shouldn't pose a
108178825Sdfr# problem.
109178825SdfrSRCS+=	ar9130_attach.c ar9130_eeprom.c ar9130_phy.c
110178825Sdfr
111178825Sdfr# AR9002 series chips
112178825Sdfr# + AR9220/AR9280 - Merlin
113178825Sdfr.PATH:	${.CURDIR}/../../dev/ath/ath_hal/ar9002
114178825SdfrSRCS+=	ar9280.c ar9280_attach.c ar9280_olc.c
115178825Sdfr
116178825Sdfr# + AR9285 - Kite
117178825SdfrSRCS+=	ar9285.c ar9285_reset.c ar9285_attach.c ar9285_cal.c ar9285_phy.c
118178825SdfrSRCS+=	ar9285_diversity.c ar9285_btcoex.c
119178825Sdfr
120178825Sdfr# + AR9287 - Kiwi
121178825Sdfr.PATH:  ${.CURDIR}/../../dev/ath/ath_hal
122178825SdfrSRCS+=  ah_eeprom_9287.c
123178825Sdfr.PATH:  ${.CURDIR}/../../dev/ath/ath_hal/ar9002
124178825SdfrSRCS+=  ar9287.c ar9287_reset.c ar9287_attach.c ar9287_cal.c ar9287_olc.c
125233294Sstas
126233294Sstas# + AR9300 HAL
127178825Sdfr# .PATH:  ${.CURDIR}/../../contrib/sys/dev/ath/ath_hal/ar9300
128178825Sdfr#SRCS+= ar9300_interrupts.c ar9300_radar.c ar9300_ani.c ar9300_keycache.c
129178825Sdfr#SRCS+= ar9300_radio.c ar9300_xmit.c ar9300_attach.c ar9300_mci.c ar9300_stub.c
130233294Sstas#SRCS+= ar9300_xmit_ds.c ar9300_beacon.c ar9300_misc.c ar9300_recv.c
131178825Sdfr#SRCS+= ar9300_stub_funcs.c ar9300_eeprom.c ar9300_paprd.c ar9300_recv_ds.c
132178825Sdfr#SRCS+= ar9300_freebsd.c ar9300_phy.c ar9300_reset.c ar9300_gpio.c
133178825Sdfr#SRCS+= ar9300_power.c ar9300_timer.c
134178825Sdfr
135178825Sdfr# NB: rate control is bound to the driver by symbol names so only pick one
136178825Sdfr.if ${ATH_RATE} == "sample"
137178825Sdfr.PATH:	${.CURDIR}/../../dev/ath/ath_rate/sample
138178825SdfrSRCS+=	sample.c
139178825Sdfr.elif ${ATH_RATE} == "onoe"
140178825Sdfr.PATH:	${.CURDIR}/../../dev/ath/ath_rate/onoe
141233294SstasSRCS+=	onoe.c
142178825Sdfr.elif ${ATH_RATE} == "amrr"
143178825Sdfr.PATH:	${.CURDIR}/../../dev/ath/ath_rate/amrr
144178825SdfrSRCS+=	amrr.c
145178825Sdfr.endif
146178825Sdfr
147178825Sdfr# DFS
148178825Sdfr.PATH: ${.CURDIR}/../../dev/ath/ath_dfs/null
149178825SdfrSRCS+=	dfs_null.c
150178825Sdfr
151178825SdfrCFLAGS+=  -I. -I${.CURDIR}/../../dev/ath -I${.CURDIR}/../../dev/ath/ath_hal
152178825Sdfr# CFLAGS+=  -I. -I${.CURDIR}/../../contrib/sys/dev/ath/ath_hal/
153178825Sdfr
154178825Sdfr.if !defined(KERNBUILDDIR)
155178825Sdfropt_ah.h:
156178825Sdfr	echo '#define AH_SUPPORT_AR5416 1' > $@
157178825Sdfr.endif
158233294Sstas
159233294Sstas.include <bsd.kmod.mk>
160178825Sdfr
161178825SdfrCWARNFLAGS.ah_regdomain.c=	${NO_WSHIFT_COUNT_NEGATIVE} ${NO_WSHIFT_COUNT_OVERFLOW}
162178825Sdfr# XXX Work around clang warnings, until maintainer approves fix.
163178825SdfrCWARNFLAGS.if_ath.c=		${NO_WSOMETIMES_UNINITIALIZED}
164178825SdfrCWARNFLAGS+=			${CWARNFLAGS.${.IMPSRC:T}}
165178825Sdfr
166178825Sdfr# 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}
169