4
## Make sure to have each variable declaration start
5
## in the first column, no whitespace allowed.
7
ifeq ($(wildcard $(KLIB_BUILD)/.config),)
8
# These will be ignored by compat autoconf
14
include $(KLIB_BUILD)/.config
17
# We will warn when you don't have MQ support or NET_SCHED enabled.
19
# We could consider just quiting if MQ and NET_SCHED is disabled
20
# as I suspect all users of this package want 802.11e (WME) and
21
# 802.11n (HT) support.
22
ifneq ($(wildcard $(KLIB_BUILD)/Makefile),)
23
COMPAT_LATEST_VERSION = 37
24
KERNEL_SUBLEVEL := $(shell $(MAKE) -C $(KLIB_BUILD) kernelversion | sed -n 's/^2\.6\.\([0-9]\+\).*/\1/p')
25
COMPAT_VERSIONS := $(shell I=$(COMPAT_LATEST_VERSION); while [ "$$I" -gt $(KERNEL_SUBLEVEL) ]; do echo $$I; I=$$(($$I - 1)); done)
26
$(foreach ver,$(COMPAT_VERSIONS),$(eval CONFIG_COMPAT_KERNEL_$(ver)=y))
28
ifdef CONFIG_COMPAT_KERNEL_24
29
$(error "ERROR: compat-wireless by default supports kernels >= 2.6.24, try enabling only one driver though")
30
endif #CONFIG_COMPAT_KERNEL_24
32
ifeq ($(CONFIG_CFG80211),y)
33
$(error "ERROR: your kernel has CONFIG_CFG80211=y, you should have it CONFIG_CFG80211=m if you want to use this thing.")
37
# 2.6.27 has FTRACE_DYNAMIC borked, so we will complain if
38
# you have it enabled, otherwise you will very likely run into
40
ifeq ($(KERNEL_SUBLEVEL),27)
41
ifeq ($(CONFIG_DYNAMIC_FTRACE),y)
42
$(error "ERROR: Your 2.6.27 kernel has CONFIG_DYNAMIC_FTRACE, please upgrade your distribution kernel as newer ones should not have this enabled (and if so report a bug) or remove this warning if you know what you are doing")
46
# This is because with CONFIG_MAC80211 include/linux/skbuff.h will
47
# enable on 2.6.27 a new attribute:
51
# and on 2.6.28 another new attribute:
55
# In kernel 2.6.32 both attributes were removed.
57
ifeq ($(shell test $(KERNEL_SUBLEVEL) -ge 27 -a $(KERNEL_SUBLEVEL) -le 31 && echo yes),yes)
58
ifeq ($(CONFIG_MAC80211),)
59
$(error "ERROR: Your >=2.6.27 and <= 2.6.31 kernel has CONFIG_MAC80211 disabled, you should have it CONFIG_MAC80211=m if you want to use this thing.")
63
ifneq ($(KERNELRELEASE),) # This prevents a warning
65
ifeq ($(CONFIG_NET_SCHED),)
66
QOS_REQS_MISSING+=CONFIG_NET_SCHED
69
ifneq ($(QOS_REQS_MISSING),) # Complain about our missing dependencies
70
$(warning "WARNING: You are running a kernel >= 2.6.23, you should enable in it $(QOS_REQS_MISSING) for 802.11[ne] support")
74
endif # kernel Makefile check
76
# These both are needed by compat-wireless || compat-bluetooth so enable them
77
CONFIG_COMPAT_RFKILL=y
79
ifeq ($(CONFIG_MAC80211),y)
80
$(error "ERROR: you have MAC80211 compiled into the kernel, CONFIG_MAC80211=y, as such you cannot replace its mac80211 driver. You need this set to CONFIG_MAC80211=m. If you are using Fedora upgrade your kernel as later version should this set as modular. For further information on Fedora see https://bugzilla.redhat.com/show_bug.cgi?id=470143. If you are using your own kernel recompile it and make mac80211 modular")
82
CONFIG_COMPAT_WIRELESS=y
83
CONFIG_COMPAT_WIRELESS_MODULES=m
84
CONFIG_COMPAT_VAR_MODULES=m
85
# We could technically separate these but not yet, we only have b44
86
# Note that we don't intend on backporting network drivers that
87
# use Multiqueue as that was a pain to backport to kernels older than
88
# 2.6.27. But -- we could just disable those drivers from kernels
90
CONFIG_COMPAT_NETWORK_MODULES=m
91
CONFIG_COMPAT_NET_USB_MODULES=m
94
# The Bluetooth compatibility only builds on kernels >= 2.6.27 for now
95
ifndef CONFIG_COMPAT_KERNEL_27
97
# we'll ignore compiling bluetooth
99
CONFIG_COMPAT_BLUETOOTH=y
100
CONFIG_COMPAT_BLUETOOTH_MODULES=m
102
endif #CONFIG_COMPAT_KERNEL_27
104
ifdef CONFIG_COMPAT_KERNEL_33
105
ifdef CONFIG_FW_LOADER
106
CONFIG_COMPAT_FIRMWARE_CLASS=m
107
endif #CONFIG_FW_LOADER
108
endif #CONFIG_COMPAT_KERNEL_33
111
# Wireless subsystem stuff
114
CONFIG_MAC80211_DEBUGFS=y
115
CONFIG_MAC80211_NOINLINE=y
116
CONFIG_MAC80211_VERBOSE_DEBUG=y
117
CONFIG_MAC80211_HT_DEBUG=y
118
# CONFIG_MAC80211_TKIP_DEBUG=y
119
# CONFIG_MAC80211_IBSS_DEBUG=y
120
CONFIG_MAC80211_VERBOSE_PS_DEBUG=y
121
# CONFIG_MAC80211_VERBOSE_MPL_DEBUG=y
122
# CONFIG_MAC80211_VERBOSE_MHWMP_DEBUG=y
123
CONFIG_MAC80211_DEBUG_COUNTERS=y
124
# CONFIG_MAC80211_DRIVER_API_TRACER=y
126
# choose between pid and minstrel as default rate control algorithm
127
CONFIG_MAC80211_RC_DEFAULT=minstrel_ht
128
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
129
# CONFIG_MAC80211_RC_DEFAULT_PID=y
130
# This is the one used by our compat-wireless net/mac80211/rate.c
131
# in case you have and old kernel which is overriding this to pid.
132
CONFIG_COMPAT_MAC80211_RC_DEFAULT=minstrel_ht
133
CONFIG_MAC80211_RC_PID=y
134
CONFIG_MAC80211_RC_MINSTREL=y
135
CONFIG_MAC80211_RC_MINSTREL_HT=y
136
CONFIG_MAC80211_LEDS=y
138
# enable mesh networking too
139
CONFIG_MAC80211_MESH=y
142
CONFIG_CFG80211_DEFAULT_PS=y
143
CONFIG_CFG80211_DEBUGFS=y
144
# CONFIG_NL80211_TESTMODE=y
145
CONFIG_CFG80211_DEVELOPER_WARNINGS=y
146
CONFIG_CFG80211_REG_DEBUG=y
147
# See below for wext stuff
150
CONFIG_LIB80211_CRYPT_WEP=m
151
CONFIG_LIB80211_CRYPT_CCMP=m
152
CONFIG_LIB80211_CRYPT_TKIP=m
153
# CONFIG_LIB80211_DEBUG=y
159
CONFIG_BT_RFCOMM_TTY=y
161
CONFIG_BT_BNEP_MC_FILTER=y
162
CONFIG_BT_BNEP_PROTO_FILTER=y
163
# CONFIG_BT_CMTP depends on ISDN_CAPI
164
ifdef CONFIG_ISDN_CAPI
166
endif #CONFIG_ISDN_CAPI
170
CONFIG_BT_HCIUART_H4=y
171
CONFIG_BT_HCIUART_BCSP=y
172
CONFIG_BT_HCIUART_ATH3K=y
173
CONFIG_BT_HCIUART_LL=y
181
CONFIG_BT_HCIBLUECARD=m
182
CONFIG_BT_HCIBTUART=m
186
# We need CONFIG_WIRELESS_EXT for CONFIG_CFG80211_WEXT for every kernel
187
# version. The new way CONFIG_CFG80211_WEXT is called from the kernel
188
# does not work with compat-wireless because it calls some callback
189
# function on struct wiphy. This struct is shipped with compat-wireless
190
# and changes from kernel version to version. We are using the
191
# wireless_handlers attribute which will be activated by
192
# CONFIG_WIRELESS_EXT.
193
ifdef CONFIG_WIRELESS_EXT
194
CONFIG_CFG80211_WEXT=y
195
else #CONFIG_CFG80211_WEXT
196
$(warning "WARNING: CONFIG_CFG80211_WEXT will be deactivated or not working because kernel was compiled with CONFIG_WIRELESS_EXT=n. Tools using wext interface like iwconfig will not work. To activate it build your kernel e.g. with CONFIG_LIBIPW=m.")
197
endif #CONFIG_WIRELESS_EXT
199
ifneq ($(CONFIG_STAGING),)
200
CONFIG_COMPAT_STAGING=m
203
# mac80211 test driver
204
CONFIG_MAC80211_HWSIM=m
213
# Note: once ath9k_htc is added we'll have to move
214
# CONFIG_ATH9K_COMMON to an area that doesn't depend on PCI
215
# as you could then have ath9k disabled but ath9k_htc enabled.
216
CONFIG_ATH9K_COMMON=m
217
CONFIG_ATH9K_DEBUGFS=y
218
CONFIG_ATH9K_PKTLOG=y
219
# Disable this to get minstrel as default, we leave the ath9k
220
# rate control algorithm as the default for now as that is also
221
# default upstream on the kernel. We will move this to minstrel
222
# as default once we get minstrel properly tested and blessed by
223
# our systems engineering team. CCK rates also need to be used
224
# for long range considerations.
225
CONFIG_ATH9K_RATE_CONTROL=y
228
CONFIG_COMPAT_IWLWIFI=m
229
# CONFIG_IWLWIFI_DEBUG=y
230
# CONFIG_IWLWIFI_DEBUGFS=y
231
# CONFIG_IWLWIFI_DEVICE_TRACING=y
233
CONFIG_COMPAT_IWL4965=y
240
CONFIG_B43_PCI_AUTOSELECT=y
247
# CONFIG_B43_FORCE_PIO=y
251
CONFIG_B43LEGACY_HWRNG=y
252
CONFIG_B43LEGACY_PCI_AUTOSELECT=y
253
CONFIG_B43LEGACY_LEDS=y
254
# CONFIG_B43LEGACY_DEBUG=y
255
CONFIG_B43LEGACY_DMA=y
256
CONFIG_B43LEGACY_PIO=y
258
ifdef CONFIG_WIRELESS_EXT
261
# CONFIG_LIBIPW_DEBUG=y
264
CONFIG_IPW2100_MONITOR=y
265
# CONFIG_IPW2100_DEBUG=y
267
CONFIG_IPW2200_MONITOR=y
268
CONFIG_IPW2200_RADIOTAP=y
269
CONFIG_IPW2200_PROMISCUOUS=y
271
# CONFIG_IPW2200_DEBUG=y
272
# The above enables use a second interface prefixed 'rtap'.
275
# % modprobe ipw2200 rtap_iface=1
276
# % ifconfig rtap0 up
277
# % tethereal -i rtap0
279
# If you do not specify 'rtap_iface=1' as a module parameter then
280
# the rtap interface will not be created and you will need to turn
283
# % echo 1 > /sys/bus/pci/drivers/ipw2200/*/rtap_iface
284
endif #CONFIG_WIRELESS_EXT
287
# Sonics Silicon Backplane
293
CONFIG_SSB_B43_PCI_BRIDGE=y
295
CONFIG_SSB_PCMCIAHOST=y
298
CONFIG_SSB_DRIVER_PCICORE=y
310
CONFIG_RT2X00_LIB_PCI=m
313
ifdef CONFIG_CRC_CCITT
315
CONFIG_RT2800PCI_PCI=y
316
# CONFIG_RT2800PCI_RT30XX=y
317
# CONFIG_RT2800PCI_RT35XX=y
318
# CONFIG_RT2800PCI_SOC=y
319
endif #CONFIG_CRC_CCITT
322
# Two rt2x00 drivers require firmware: rt61pci and rt73usb. They depend on
323
# CRC to check the firmware. We check here first for the PCI
324
# driver as we're in the PCI section.
325
ifdef CONFIG_CRC_ITU_T
327
NEED_RT2X00_FIRMWARE=y
328
endif #CONFIG_CRC_ITU_T
332
# Ethernet drivers go here
336
ifdef CONFIG_COMPAT_KERNEL_27
338
else #CONFIG_COMPAT_KERNEL_27
340
endif #CONFIG_COMPAT_KERNEL_27
342
ifdef CONFIG_WIRELESS_EXT
344
CONFIG_HERMES_CACHE_FW_ON_INIT=y
345
ifdef CONFIG_PPC_PMAC
346
CONFIG_APPLE_AIRPORT=m
347
endif #CONFIG_PPC_PMAC
350
CONFIG_NORTEL_HERMES=m
353
CONFIG_PCMCIA_HERMES=m
354
CONFIG_PCMCIA_SPECTRUM=m
356
endif #CONFIG_WIRELESS_EXT
363
ifdef CONFIG_COMPAT_KERNEL_27
366
else #CONFIG_COMPAT_KERNEL_27
369
endif #CONFIG_COMPAT_KERNEL_27
374
# This is required for some cards
375
CONFIG_EEPROM_93CX6=m
380
# CONFIG_ZD1211RW_DEBUG=y
382
# Sorry, rndis_wlan uses cancel_work_sync which is new and can't be done in compat...
384
# Wireless RNDIS USB support (RTL8185 802.11g) A-Link WL54PC
385
# All of these devices are based on Broadcom 4320 chip which
386
# is only wireless RNDIS chip known to date.
387
# Note: this depends on CONFIG_USB_NET_RNDIS_HOST and CONFIG_USB_NET_CDCETHER
388
# it also requires new RNDIS_HOST and CDC_ETHER modules which we add
389
ifdef CONFIG_COMPAT_KERNEL_29
390
CONFIG_USB_COMPAT_USBNET=n
391
CONFIG_USB_NET_COMPAT_RNDIS_HOST=n
392
CONFIG_USB_NET_COMPAT_RNDIS_WLAN=n
393
CONFIG_USB_NET_COMPAT_CDCETHER=n
394
else #CONFIG_COMPAT_KERNEL_29
395
CONFIG_USB_COMPAT_USBNET=m
396
ifdef CONFIG_USB_NET_CDCETHER
397
CONFIG_USB_NET_COMPAT_RNDIS_HOST=m
398
CONFIG_USB_NET_COMPAT_RNDIS_WLAN=m
399
endif #CONFIG_USB_NET_CDCETHER
400
CONFIG_USB_NET_COMPAT_CDCETHER=m
401
endif #CONFIG_COMPAT_KERNEL_29
406
CONFIG_RTL8187_LEDS=y
408
CONFIG_AT76C50X_USB=m
410
ifndef CONFIG_COMPAT_KERNEL_28
413
endif #CONFIG_COMPAT_KERNEL_28
415
ifndef CONFIG_COMPAT_KERNEL_29
417
CONFIG_CARL9170_LEDS=y
418
CONFIG_CARL9170_DEBUGFS=y
419
CONFIG_CARL9170_WPC=y
420
endif #CONFIG_COMPAT_KERNEL_29
422
# This activates a threading fix for usb urb.
423
# this is mainline commit: b3e670443b7fb8a2d29831b62b44a039c283e351
424
# This fix will be included in some stable releases.
425
CONFIG_COMPAT_USB_URB_THREAD_FIX=y
428
CONFIG_ATH9K_HTC_DEBUGFS=y
430
# RT2500USB does not require firmware
432
ifdef CONFIG_CRC_CCITT
434
CONFIG_RT2800USB_RT30XX=y
435
CONFIG_RT2800USB_RT35XX=y
436
CONFIG_RT2800USB_UNKNOWN=y
437
endif #CONFIG_CRC_CCITT
438
CONFIG_RT2X00_LIB_USB=m
440
# RT73USB requires firmware
441
ifdef CONFIG_CRC_ITU_T
443
NEED_RT2X00_FIRMWARE=y
444
endif #CONFIG_CRC_ITU_T
446
ifdef CONFIG_COMPAT_KERNEL_27
447
CONFIG_LIBERTAS_THINFIRM_USB=n
448
CONFIG_LIBERTAS_USB=n
450
else #CONFIG_COMPAT_KERNEL_27
451
CONFIG_LIBERTAS_THINFIRM_USB=m
452
CONFIG_LIBERTAS_USB=m
454
endif #CONFIG_COMPAT_KERNEL_27
459
CONFIG_BT_HCIBCM203X=m
460
CONFIG_BT_HCIBPA10X=m
464
endif #CONFIG_USB end of USB driver list
466
ifdef CONFIG_SPI_MASTER
467
ifndef CONFIG_COMPAT_KERNEL_25
475
ifdef CONFIG_COMPAT_KERNEL_27
476
CONFIG_LIBERTAS_SPI=n
478
else #CONFIG_COMPAT_KERNEL_27
479
CONFIG_LIBERTAS_SPI=m
481
endif #CONFIG_COMPAT_KERNEL_27
483
endif #CONFIG_COMPAT_KERNEL_25
484
endif #CONFIG_SPI_MASTER end of SPI driver list
488
CONFIG_SSB_SDIOHOST=y
494
ifndef CONFIG_COMPAT_KERNEL_32
495
ifdef CONFIG_WL12XX_PLATFORM_DATA
497
endif #CONFIG_WL12XX_PLATFORM_DATA
498
endif #CONFIG_COMPAT_KERNEL_32
502
ifdef CONFIG_COMPAT_KERNEL_27
503
CONFIG_LIBERTAS_SDIO=n
505
else #CONFIG_COMPAT_KERNEL_27
506
CONFIG_LIBERTAS_SDIO=m
508
endif #CONFIG_COMPAT_KERNEL_27
513
CONFIG_BT_HCIBTSDIO=m
514
CONFIG_BT_MRVL_SDIO=m
516
ifneq ($(CONFIG_COMPAT_STAGING),)
517
ifdef CONFIG_WIRELESS_EXT
518
CONFIG_ATH6KL_CFG80211=y
519
CONFIG_ATH6KL_DEBUG=y
520
# CONFIG_ATH6KL_DISABLE_TARGET_DBGLOGS is not set
521
# CONFIG_ATH6KL_ENABLE_COEXISTENCE is not set
522
# CONFIG_ATH6KL_ENABLE_HOST_DEBUG is not set
523
CONFIG_ATH6KL_ENABLE_TARGET_DEBUG_PRINTS=y
524
# CONFIG_ATH6KL_HCI_BRIDGE is not set
525
# CONFIG_ATH6KL_HTC_RAW_INTERFACE is not set
526
# CONFIG_ATH6KL_SKIP_ABI_VERSION_CHECK is not set
527
CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER=y
528
CONFIG_ATH6K_LEGACY=m
531
CONFIG_BRCM80211_PCI=y
533
endif #CONFIG_WIRELESS_EXT
537
endif # end of SDIO driver list
539
# Common rt2x00 requirements
540
ifeq ($(NEED_RT2X00),y)
544
CONFIG_RT2X00_LIB_HT=y
545
CONFIG_RT2X00_LIB_FIRMWARE=y
546
CONFIG_RT2X00_LIB_CRYPTO=y
547
ifdef CONFIG_COMPAT_KERNEL_25
548
CONFIG_RT2X00_LIB_LEDS=n
549
else #CONFIG_COMPAT_KERNEL_25
550
CONFIG_RT2X00_LIB_LEDS=y
551
endif #CONFIG_COMPAT_KERNEL_25
552
# CONFIG_RT2X00_DEBUG=y
553
# CONFIG_RT2X00_LIB_DEBUGFS
556
ifeq ($(NEED_RT2X00_FIRMWARE),y)
557
CONFIG_RT2X00_LIB_FIRMWARE=y
574
ifdef CONFIG_COMPAT_KERNEL_27
576
else #CONFIG_COMPAT_KERNEL_27
577
ifeq ($(NEED_LIBERTAS),y)
578
CONFIG_LIBERTAS_THINFIRM=m
580
CONFIG_LIBERTAS_MESH=y
581
# CONFIG_LIBERTAS_DEBUG=y
583
endif #CONFIG_COMPAT_KERNEL_27
585
# We need the backported rfkill module on kernel < 2.6.31.
586
# In more recent kernel versions use the in kernel rfkill module.
587
ifdef CONFIG_COMPAT_KERNEL_31
588
CONFIG_RFKILL_BACKPORT=m
589
CONFIG_RFKILL_BACKPORT_LEDS=y
590
CONFIG_RFKILL_BACKPORT_INPUT=y
591
endif #CONFIG_COMPAT_KERNEL_31