]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - wl12xx/compat-wireless.git/blobdiff - config.mk
compat-wireless: turn on TESTMODE and MAC DEBUGFS, turn off BT
[wl12xx/compat-wireless.git] / config.mk
index 3c6d41663773ae38fbe176f974e2a710458ed072..a3ea3c3fdff53f53bca1d4cbe7c47897923e0739 100644 (file)
--- a/config.mk
+++ b/config.mk
@@ -14,20 +14,36 @@ else
 include $(KLIB_BUILD)/.config
 endif
 
-# We will warn when you don't have MQ support or NET_SCHED enabled.
-#
-# We could consider just quiting if MQ and NET_SCHED is disabled
-# as I suspect all users of this package want 802.11e (WME) and
-# 802.11n (HT) support.
 ifneq ($(wildcard $(KLIB_BUILD)/Makefile),)
-COMPAT_LATEST_VERSION = 37
-KERNEL_SUBLEVEL := $(shell $(MAKE) -C $(KLIB_BUILD) kernelversion | sed -n 's/^2\.6\.\([0-9]\+\).*/\1/p')
+
+COMPAT_LATEST_VERSION = 3
+
+KERNEL_VERSION := $(shell $(MAKE) -C $(KLIB_BUILD) kernelversion | sed -n 's/^\([0-9]\)\..*/\1/p')
+
+ifneq ($(KERNEL_VERSION),2)
+KERNEL_SUBLEVEL := $(shell $(MAKE) -C $(KLIB_BUILD) kernelversion | sed -n 's/^3\.\([0-9]\+\).*/\1/p')
+else
+COMPAT_26LATEST_VERSION = 39
+KERNEL_26SUBLEVEL := $(shell $(MAKE) -C $(KLIB_BUILD) kernelversion | sed -n 's/^2\.6\.\([0-9]\+\).*/\1/p')
+COMPAT_26VERSIONS := $(shell I=$(COMPAT_26LATEST_VERSION); while [ "$$I" -gt $(KERNEL_26SUBLEVEL) ]; do echo $$I; I=$$(($$I - 1)); done)
+$(foreach ver,$(COMPAT_26VERSIONS),$(eval CONFIG_COMPAT_KERNEL_2_6_$(ver)=y))
+KERNEL_SUBLEVEL := -1
+endif
+
 COMPAT_VERSIONS := $(shell I=$(COMPAT_LATEST_VERSION); while [ "$$I" -gt $(KERNEL_SUBLEVEL) ]; do echo $$I; I=$$(($$I - 1)); done)
-$(foreach ver,$(COMPAT_VERSIONS),$(eval CONFIG_COMPAT_KERNEL_$(ver)=y))
+$(foreach ver,$(COMPAT_VERSIONS),$(eval CONFIG_COMPAT_KERNEL_3_$(ver)=y))
 
-ifdef CONFIG_COMPAT_KERNEL_24
+RHEL_MAJOR := $(shell grep ^RHEL_MAJOR $(KLIB_BUILD)/Makefile | sed -n 's/.*= *\(.*\)/\1/p')
+
+ifneq ($(RHEL_MAJOR),)
+RHEL_MINOR := $(shell grep ^RHEL_MINOR $(KLIB_BUILD)/Makefile | sed -n 's/.*= *\(.*\)/\1/p')
+COMPAT_RHEL_VERSIONS := $(shell I=$(RHEL_MINOR); while [ "$$I" -ge 0 ]; do echo $$I; I=$$(($$I - 1)); done)
+$(foreach ver,$(COMPAT_RHEL_VERSIONS),$(eval CONFIG_COMPAT_RHEL_$(RHEL_MAJOR)_$(ver)=y))
+endif
+
+ifdef CONFIG_COMPAT_KERNEL_2_6_24
 $(error "ERROR: compat-wireless by default supports kernels >= 2.6.24, try enabling only one driver though")
-endif #CONFIG_COMPAT_KERNEL_24
+endif #CONFIG_COMPAT_KERNEL_2_6_24
 
 ifeq ($(CONFIG_CFG80211),y)
 $(error "ERROR: your kernel has CONFIG_CFG80211=y, you should have it CONFIG_CFG80211=m if you want to use this thing.")
@@ -37,7 +53,7 @@ endif
 # 2.6.27 has FTRACE_DYNAMIC borked, so we will complain if
 # you have it enabled, otherwise you will very likely run into
 # a kernel panic.
-ifeq ($(KERNEL_SUBLEVEL),27)
+ifeq ($(shell test $(KERNEL_VERSION) -eq 2 -a $(KERNEL_SUBLEVEL) -eq 27 && echo yes),yes)
 ifeq ($(CONFIG_DYNAMIC_FTRACE),y)
 $(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")
 endif
@@ -52,14 +68,21 @@ endif
 #
 # skb->requeue
 #
-ifeq ($(shell test $(KERNEL_SUBLEVEL) -ge 27 && echo yes),yes)
+# In kernel 2.6.32 both attributes were removed.
+#
+ifeq ($(shell test $(KERNEL_VERSION) -eq 2 -a $(KERNEL_SUBLEVEL) -ge 27 -a $(KERNEL_SUBLEVEL) -le 31 && echo yes),yes)
 ifeq ($(CONFIG_MAC80211),)
-$(error "ERROR: Your >=2.6.27 kernel has CONFIG_MAC80211 disabled, you should have it CONFIG_MAC80211=m if you want to use this thing.")
+$(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.")
 endif
 endif
 
 ifneq ($(KERNELRELEASE),) # This prevents a warning
 
+# We will warn when you don't have MQ support or NET_SCHED enabled.
+#
+# We could consider just quiting if MQ and NET_SCHED is disabled
+# as I suspect all users of this package want 802.11e (WME) and
+# 802.11n (HT) support.
 ifeq ($(CONFIG_NET_SCHED),)
  QOS_REQS_MISSING+=CONFIG_NET_SCHED
 endif
@@ -90,26 +113,60 @@ else
 endif
 
 # The Bluetooth compatibility only builds on kernels >= 2.6.27 for now
-ifndef CONFIG_COMPAT_KERNEL_27
+ifndef CONFIG_COMPAT_KERNEL_2_6_27
 ifeq ($(CONFIG_BT),y)
 # we'll ignore compiling bluetooth
 else
- CONFIG_COMPAT_BLUETOOTH=y
- CONFIG_COMPAT_BLUETOOTH_MODULES=m
+# CONFIG_COMPAT_BLUETOOTH=y
+# CONFIG_COMPAT_BLUETOOTH_MODULES=m
 endif
-endif #CONFIG_COMPAT_KERNEL_27
+endif #CONFIG_COMPAT_KERNEL_2_6_27
 
-ifdef CONFIG_COMPAT_KERNEL_33
-ifneq ($(CONFIG_FW_LOADER),)
- CONFIG_COMPAT_FIRMWARE_CLASS=m
-endif
-endif #CONFIG_COMPAT_KERNEL_33
+#
+# CONFIG_COMPAT_FIRMWARE_CLASS definition has no leading whitespace,
+# because it gets passed-on through compat_autoconf.h.
+#
+ifdef CONFIG_COMPAT_KERNEL_2_6_33
+ifndef CONFIG_COMPAT_RHEL_6_1
+ifdef CONFIG_FW_LOADER
+CONFIG_COMPAT_FIRMWARE_CLASS=m
+endif #CONFIG_FW_LOADER
+endif #CONFIG_COMPAT_RHEL_6_1
+endif #CONFIG_COMPAT_KERNEL_2_6_33
+
+ifdef CONFIG_COMPAT_KERNEL_2_6_36
+ifndef CONFIG_COMPAT_RHEL_6_1
+ CONFIG_COMPAT_KFIFO=y
+endif #CONFIG_COMPAT_RHEL_6_1
+endif #CONFIG_COMPAT_KERNEL_2_6_36
+
+#
+# CONFIG_COMPAT_BT_SOCK_CREATE_NEEDS_KERN definitions have no leading
+# whitespace, because they get passed-on through compat_autoconf.h.
+#
+ifndef CONFIG_COMPAT_KERNEL_2_6_33
+CONFIG_COMPAT_BT_SOCK_CREATE_NEEDS_KERN=y
+endif #CONFIG_COMPAT_KERNEL_2_6_33
+ifdef CONFIG_COMPAT_RHEL_6_0
+CONFIG_COMPAT_BT_SOCK_CREATE_NEEDS_KERN=y
+endif #CONFIG_COMPAT_RHEL_6_0
 
+#
+# CONFIG_COMPAT_FIRMWARE_DATA_RW_NEEDS_FILP definition has no leading
+# whitespace, because it gets passed-on through compat_autoconf.h.
+#
+ifdef CONFIG_COMPAT_RHEL_6_0
+CONFIG_COMPAT_FIRMWARE_DATA_RW_NEEDS_FILP=y
+endif #CONFIG_COMPAT_RHEL_6_0
 
 # Wireless subsystem stuff
 CONFIG_MAC80211=m
 
-# CONFIG_MAC80211_DEBUGFS=y
+ifndef CONFIG_COMPAT_KERNEL_2_6_33
+CONFIG_MAC80211_DRIVER_API_TRACER=y
+endif #CONFIG_COMPAT_KERNEL_2_6_33
+
+CONFIG_MAC80211_DEBUGFS=y
 # CONFIG_MAC80211_NOINLINE=y
 # CONFIG_MAC80211_VERBOSE_DEBUG=y
 # CONFIG_MAC80211_HT_DEBUG=y
@@ -118,20 +175,22 @@ CONFIG_MAC80211=m
 # CONFIG_MAC80211_VERBOSE_PS_DEBUG=y
 # CONFIG_MAC80211_VERBOSE_MPL_DEBUG=y
 # CONFIG_MAC80211_VERBOSE_MHWMP_DEBUG=y
+# CONFIG_MAC80211_VERBOSE_TDLS_DEBUG
 # CONFIG_MAC80211_DEBUG_COUNTERS=y
-# CONFIG_MAC80211_DRIVER_API_TRACER=y
 
 # choose between pid and minstrel as default rate control algorithm
-CONFIG_MAC80211_RC_DEFAULT=minstrel
+CONFIG_MAC80211_RC_DEFAULT=minstrel_ht
 CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
 # CONFIG_MAC80211_RC_DEFAULT_PID=y
 # This is the one used by our compat-wireless net/mac80211/rate.c
 # in case you have and old kernel which is overriding this to pid.
-CONFIG_COMPAT_MAC80211_RC_DEFAULT=minstrel
+CONFIG_COMPAT_MAC80211_RC_DEFAULT=minstrel_ht
 CONFIG_MAC80211_RC_PID=y
 CONFIG_MAC80211_RC_MINSTREL=y
 CONFIG_MAC80211_RC_MINSTREL_HT=y
+ifdef CONFIG_LEDS_TRIGGERS
 CONFIG_MAC80211_LEDS=y
+endif #CONFIG_LEDS_TRIGGERS
 
 # enable mesh networking too
 CONFIG_MAC80211_MESH=y
@@ -139,9 +198,10 @@ CONFIG_MAC80211_MESH=y
 CONFIG_CFG80211=m
 CONFIG_CFG80211_DEFAULT_PS=y
 # CONFIG_CFG80211_DEBUGFS=y
-CONFIG_NL80211_TESTMODE=y
+CONFIG_NL80211_TESTMODE=y
 # CONFIG_CFG80211_DEVELOPER_WARNINGS=y
 # CONFIG_CFG80211_REG_DEBUG=y
+# CONFIG_CFG80211_INTERNAL_REGDB=y
 # See below for wext stuff
 
 CONFIG_LIB80211=m
@@ -151,18 +211,20 @@ CONFIG_LIB80211_CRYPT_TKIP=m
 # CONFIG_LIB80211_DEBUG=y
 
 CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
+CONFIG_COMPAT_BT_L2CAP=y
+CONFIG_COMPAT_BT_SCO=y
 CONFIG_BT_RFCOMM=m
 CONFIG_BT_RFCOMM_TTY=y
 CONFIG_BT_BNEP=m
 CONFIG_BT_BNEP_MC_FILTER=y
 CONFIG_BT_BNEP_PROTO_FILTER=y
 # CONFIG_BT_CMTP depends on ISDN_CAPI
-ifneq ($(CONFIG_ISDN_CAPI),)
+ifdef CONFIG_ISDN_CAPI
 CONFIG_BT_CMTP=m
-endif
-CONFIG_BT_HIDP=m
+endif #CONFIG_ISDN_CAPI
+ifndef CONFIG_COMPAT_KERNEL_2_6_28
+CONFIG_COMPAT_BT_HIDP=m
+endif #CONFIG_COMPAT_KERNEL_2_6_28
 
 CONFIG_BT_HCIUART=M
 CONFIG_BT_HCIUART_H4=y
@@ -173,86 +235,105 @@ CONFIG_BT_HCIUART_LL=y
 CONFIG_BT_HCIVHCI=m
 CONFIG_BT_MRVL=m
 
-ifneq ($(CONFIG_PCMCIA),)
+ifdef CONFIG_PCMCIA
 CONFIG_BT_HCIDTL1=m
 CONFIG_BT_HCIBT3C=m
 CONFIG_BT_HCIBLUECARD=m
 CONFIG_BT_HCIBTUART=m
-endif
-
-
-# CONFIG_CFG80211_WEXT will be resepected for
-# future kernels but for older kenrels we need
-# to enable it against the the old CONFIG_WIRELESS_EXT.
-# By using a space here we prevent scripts/gen-compat-autoconf.sh
-# from defining CONFIG_CFG80211_WEXT through its grep sweep for ^CONFIG
-# options, instead its handled specially there based on kernel revision.
-# using this logic: if you are on older kernel and have CONFIG_WIRELESS_EXT
-# defined we'll define it.
-#
-# For newer kernels we'll just respect your own kernel's
-# autoconf.h
-ifneq ($(CONFIG_WIRELESS_EXT),)
- CONFIG_CFG80211_WEXT=y
-endif
-
-ifneq ($(CONFIG_STAGING),)
+endif #CONFIG_PCMCIA
+
+
+# We need CONFIG_WIRELESS_EXT for CONFIG_CFG80211_WEXT for every kernel 
+# version. The new way CONFIG_CFG80211_WEXT is called from the kernel 
+# does not work with compat-wireless because it calls some callback 
+# function on struct wiphy. This struct is shipped with compat-wireless 
+# and changes from kernel version to version. We are using the 
+# wireless_handlers attribute which will be activated by 
+# CONFIG_WIRELESS_EXT. 
+ifdef CONFIG_WIRELESS_EXT
+CONFIG_CFG80211_WEXT=y
+else #CONFIG_CFG80211_WEXT
+$(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.")
+endif #CONFIG_WIRELESS_EXT
+
+ifdef CONFIG_STAGING
 CONFIG_COMPAT_STAGING=m
-endif
+endif #CONFIG_STAGING
 
 # mac80211 test driver
 CONFIG_MAC80211_HWSIM=m
 
-# PCI Drivers
-ifneq ($(CONFIG_PCI),)
-
 CONFIG_ATH5K=m
 # CONFIG_ATH5K_DEBUG=y
-CONFIG_ATH9K_HW=m
+# CONFIG_ATH5K_TRACER=y
+# CONFIG_ATH5K_AHB=y
+
 CONFIG_ATH9K=m
-# Note: once ath9k_htc is added we'll have to move
-# CONFIG_ATH9K_COMMON to an area that doesn't depend on PCI
-# as you could then have ath9k disabled but ath9k_htc enabled.
+CONFIG_ATH9K_HW=m
 CONFIG_ATH9K_COMMON=m
 # CONFIG_ATH9K_DEBUGFS=y
+# CONFIG_ATH9K_AHB=y
 # CONFIG_ATH9K_PKTLOG=y
 
+# Disable this to get minstrel as default, we leave the ath9k
+# rate control algorithm as the default for now as that is also
+# default upstream on the kernel. We will move this to minstrel
+# as default once we get minstrel properly tested and blessed by
+# our systems engineering team. CCK rates also need to be used
+# for long range considerations.
+CONFIG_ATH9K_RATE_CONTROL=y
+
+# PCI Drivers
+ifdef CONFIG_PCI
+
+CONFIG_ATH5K_PCI=y
+CONFIG_ATH9K_PCI=y
 
-CONFIG_COMPAT_IWLWIFI=m
+CONFIG_IWLWIFI=m
 # CONFIG_IWLWIFI_DEBUG=y
 # CONFIG_IWLWIFI_DEBUGFS=y
 # CONFIG_IWLWIFI_DEVICE_TRACING=y
-CONFIG_IWLAGN=m
-CONFIG_COMPAT_IWL4965=y
-CONFIG_IWL5000=y
+# CONFIG_IWLWIFI_DEVICE_SVTOOL=y
+# CONFIG_IWLWIFI_DEBUG_EXPERIMENTAL_UCODE=y
+
+CONFIG_IWLEGACY=m
+CONFIG_COMPAT_IWL4965=m
 CONFIG_IWL3945=m
+# CONFIG_IWLEGACY_DEBUG=y
+# CONFIG_IWLEGACY_DEBUGFS=y
 
 
 CONFIG_B43=m
 CONFIG_B43_HWRNG=y
 CONFIG_B43_PCI_AUTOSELECT=y
-ifneq ($(CONFIG_PCMCIA),)
+ifdef CONFIG_PCMCIA
 CONFIG_B43_PCMCIA=y
-endif
+endif #CONFIG_PCMCIA
+ifdef CONFIG_MAC80211_LEDS
 CONFIG_B43_LEDS=y
+endif #CONFIG_MAC80211_LEDS
 CONFIG_B43_PHY_LP=y
-CONFIG_B43_NPHY=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PHY_HT=y
+# CONFIG_B43_PHY_LCN=y
 # CONFIG_B43_FORCE_PIO=y
 # CONFIG_B43_DEBUG=y
 
 CONFIG_B43LEGACY=m
 CONFIG_B43LEGACY_HWRNG=y
 CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+ifdef CONFIG_MAC80211_LEDS
 CONFIG_B43LEGACY_LEDS=y
+endif #CONFIG_MAC80211_LEDS
 # CONFIG_B43LEGACY_DEBUG=y
 CONFIG_B43LEGACY_DMA=y
 CONFIG_B43LEGACY_PIO=y
 
+ifdef CONFIG_WIRELESS_EXT
 # The Intel ipws
 CONFIG_LIBIPW=m
 # CONFIG_LIBIPW_DEBUG=y
 
-
 CONFIG_IPW2100=m
 CONFIG_IPW2100_MONITOR=y
 # CONFIG_IPW2100_DEBUG=y
@@ -274,21 +355,29 @@ CONFIG_IPW2200_QOS=y
 # it on via sysfs:
 #
 # % echo 1 > /sys/bus/pci/drivers/ipw2200/*/rtap_iface
+endif #CONFIG_WIRELESS_EXT
 
-ifneq ($(CONFIG_SSB),)
+ifdef CONFIG_SSB
 # Sonics Silicon Backplane
 CONFIG_SSB_SPROM=y
-# CONFIG_SSB_DEBUG=y
 
 CONFIG_SSB_BLOCKIO=y
 CONFIG_SSB_PCIHOST=y
 CONFIG_SSB_B43_PCI_BRIDGE=y
-ifneq ($(CONFIG_PCMCIA),)
+ifdef CONFIG_PCMCIA
 CONFIG_SSB_PCMCIAHOST=y
-endif
+endif #CONFIG_PCMCIA
 # CONFIG_SSB_DEBUG=y
 CONFIG_SSB_DRIVER_PCICORE=y
-endif
+CONFIG_B43_SSB=y
+endif #CONFIG_SSB
+
+CONFIG_BCMA=m
+CONFIG_BCMA_BLOCKIO=y
+CONFIG_BCMA_HOST_PCI=y
+# CONFIG_BCMA_DEBUG=y
+CONFIG_B43_BCMA=y
+CONFIG_B43_BCMA_PIO=y
 
 CONFIG_P54_PCI=m
 
@@ -302,22 +391,20 @@ CONFIG_ADM8211=m
 CONFIG_RT2X00_LIB_PCI=m
 CONFIG_RT2400PCI=m
 CONFIG_RT2500PCI=m
-ifneq ($(CONFIG_CRC_CCITT),)
+ifdef CONFIG_CRC_CCITT
 CONFIG_RT2800PCI=m
-CONFIG_RT2800PCI_PCI=y
-# CONFIG_RT2800PCI_RT30XX=y
-# CONFIG_RT2800PCI_RT35XX=y
-# CONFIG_RT2800PCI_SOC=y
-endif
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+# CONFIG_RT2800PCI_RT53XX=y
+endif #CONFIG_CRC_CCITT
 NEED_RT2X00=y
 
 # Two rt2x00 drivers require firmware: rt61pci and rt73usb. They depend on
 # CRC to check the firmware. We check here first for the PCI
 # driver as we're in the PCI section.
-ifneq ($(CONFIG_CRC_ITU_T),)
+ifdef CONFIG_CRC_ITU_T
 CONFIG_RT61PCI=m
-NEED_RT2X00_FIRMWARE=y
-endif
+endif #CONFIG_CRC_ITU_T
 
 CONFIG_MWL8K=m
 
@@ -325,49 +412,61 @@ CONFIG_MWL8K=m
 CONFIG_ATL1=m
 CONFIG_ATL2=m
 CONFIG_ATL1E=m
-ifdef CONFIG_COMPAT_KERNEL_27
+ifdef CONFIG_COMPAT_KERNEL_2_6_27
 CONFIG_ATL1C=n
-else #CONFIG_COMPAT_KERNEL_27
+else #CONFIG_COMPAT_KERNEL_2_6_27
 CONFIG_ATL1C=m
-endif #CONFIG_COMPAT_KERNEL_27
+endif #CONFIG_COMPAT_KERNEL_2_6_27
 
+ifdef CONFIG_WIRELESS_EXT
 CONFIG_HERMES=m
 CONFIG_HERMES_CACHE_FW_ON_INIT=y
-ifneq ($(CONFIG_PPC_PMAC),)
+ifdef CONFIG_PPC_PMAC
 CONFIG_APPLE_AIRPORT=m
-endif
+endif #CONFIG_PPC_PMAC
 CONFIG_PLX_HERMES=m
 CONFIG_TMD_HERMES=m
 CONFIG_NORTEL_HERMES=m
 CONFIG_PCI_HERMES=m
-ifneq ($(CONFIG_PCMCIA),)
+ifdef CONFIG_PCMCIA
 CONFIG_PCMCIA_HERMES=m
 CONFIG_PCMCIA_SPECTRUM=m
-endif
+endif #CONFIG_PCMCIA
+endif #CONFIG_WIRELESS_EXT
 
-endif
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192DE=m
+
+CONFIG_BRCMSMAC=m
+
+CONFIG_MWIFIEX_PCIE=m
+
+endif #CONFIG_PCI
 ## end of PCI
 
-ifneq ($(CONFIG_PCMCIA),)
+ifdef CONFIG_PCMCIA
 
-ifdef CONFIG_COMPAT_KERNEL_27
+ifdef CONFIG_COMPAT_KERNEL_2_6_27
 CONFIG_LIBERTAS=n
 CONFIG_LIBERTAS_CS=n
-else #CONFIG_COMPAT_KERNEL_27
+else #CONFIG_COMPAT_KERNEL_2_6_27
 CONFIG_LIBERTAS_CS=m
 NEED_LIBERTAS=y
-endif #CONFIG_COMPAT_KERNEL_27
+endif #CONFIG_COMPAT_KERNEL_2_6_27
 
-endif
+endif #CONFIG_PCMCIA
 ## end of PCMCIA
 
 # This is required for some cards
 CONFIG_EEPROM_93CX6=m
 
 # USB Drivers
-ifneq ($(CONFIG_USB),)
-CONFIG_ZD1211RW=m
+ifdef CONFIG_USB
+ifndef CONFIG_COMPAT_KERNEL_2_6_29
+CONFIG_COMPAT_ZD1211RW=m
 # CONFIG_ZD1211RW_DEBUG=y
+endif #CONFIG_COMPAT_KERNEL_2_6_29
 
 # Sorry, rndis_wlan uses cancel_work_sync which is new and can't be done in compat...
 
@@ -376,60 +475,75 @@ CONFIG_ZD1211RW=m
 # is only wireless RNDIS chip known to date.
 # Note: this depends on CONFIG_USB_NET_RNDIS_HOST and CONFIG_USB_NET_CDCETHER
 # it also requires new RNDIS_HOST and CDC_ETHER modules which we add
-ifdef CONFIG_COMPAT_KERNEL_29
+ifdef CONFIG_COMPAT_KERNEL_2_6_29
 CONFIG_USB_COMPAT_USBNET=n
 CONFIG_USB_NET_COMPAT_RNDIS_HOST=n
 CONFIG_USB_NET_COMPAT_RNDIS_WLAN=n
 CONFIG_USB_NET_COMPAT_CDCETHER=n
-else #CONFIG_COMPAT_KERNEL_29
+else #CONFIG_COMPAT_KERNEL_2_6_29
 CONFIG_USB_COMPAT_USBNET=m
 ifdef CONFIG_USB_NET_CDCETHER
 CONFIG_USB_NET_COMPAT_RNDIS_HOST=m
 CONFIG_USB_NET_COMPAT_RNDIS_WLAN=m
 endif #CONFIG_USB_NET_CDCETHER
+ifdef CONFIG_USB_NET_CDCETHER_MODULE
+CONFIG_USB_NET_COMPAT_RNDIS_HOST=m
+CONFIG_USB_NET_COMPAT_RNDIS_WLAN=m
+endif #CONFIG_USB_NET_CDCETHER
 CONFIG_USB_NET_COMPAT_CDCETHER=m
-endif #CONFIG_COMPAT_KERNEL_29
+endif #CONFIG_COMPAT_KERNEL_2_6_29
 
 
 CONFIG_P54_USB=m
 CONFIG_RTL8187=m
+ifdef CONFIG_MAC80211_LEDS
 CONFIG_RTL8187_LEDS=y
+endif #CONFIG_MAC80211_LEDS
 
 CONFIG_AT76C50X_USB=m
 
-ifndef CONFIG_COMPAT_KERNEL_28
-CONFIG_AR9170_USB=m
-CONFIG_AR9170_LEDS=y
-endif #CONFIG_COMPAT_KERNEL_28
+ifndef CONFIG_COMPAT_KERNEL_2_6_29
+CONFIG_CARL9170=m
+ifdef CONFIG_MAC80211_LEDS
+CONFIG_CARL9170_LEDS=y
+endif #CONFIG_MAC80211_LEDS
+# CONFIG_CARL9170_DEBUGFS=y
+CONFIG_CARL9170_WPC=y
+endif #CONFIG_COMPAT_KERNEL_2_6_29
+
+# This activates a threading fix for usb urb.
+# this is mainline commit: b3e670443b7fb8a2d29831b62b44a039c283e351
+# This fix will be included in some stable releases.
+CONFIG_COMPAT_USB_URB_THREAD_FIX=y
 
 CONFIG_ATH9K_HTC=m
 # CONFIG_ATH9K_HTC_DEBUGFS=y
 
 # RT2500USB does not require firmware
 CONFIG_RT2500USB=m
-ifneq ($(CONFIG_CRC_CCITT),)
+ifdef CONFIG_CRC_CCITT
 CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT30XX=y
+CONFIG_RT2800USB_RT33XX=y
 CONFIG_RT2800USB_RT35XX=y
+# CONFIG_RT2800USB_RT53XX=y
 CONFIG_RT2800USB_UNKNOWN=y
-endif
+endif #CONFIG_CRC_CCITT
 CONFIG_RT2X00_LIB_USB=m
 NEED_RT2X00=y
 # RT73USB requires firmware
-ifneq ($(CONFIG_CRC_ITU_T),)
+ifdef CONFIG_CRC_ITU_T
 CONFIG_RT73USB=m
-NEED_RT2X00_FIRMWARE=y
-endif
+endif #CONFIG_CRC_ITU_T
 
-ifdef CONFIG_COMPAT_KERNEL_27
+ifdef CONFIG_COMPAT_KERNEL_2_6_27
 CONFIG_LIBERTAS_THINFIRM_USB=n
 CONFIG_LIBERTAS_USB=n
 NEED_LIBERTAS=n
-else #CONFIG_COMPAT_KERNEL_27
+else #CONFIG_COMPAT_KERNEL_2_6_27
 CONFIG_LIBERTAS_THINFIRM_USB=m
 CONFIG_LIBERTAS_USB=m
 NEED_LIBERTAS=y
-endif #CONFIG_COMPAT_KERNEL_27
+endif #CONFIG_COMPAT_KERNEL_2_6_27
 
 CONFIG_ORINOCO_USB=m
 
@@ -439,126 +553,141 @@ CONFIG_BT_HCIBPA10X=m
 CONFIG_BT_HCIBFUSB=m
 CONFIG_BT_ATH3K=m
 
-endif # end of USB driver list
+CONFIG_RTL8192CU=m
 
-ifneq ($(CONFIG_SPI_MASTER),)
-ifndef CONFIG_COMPAT_KERNEL_25
+endif #CONFIG_USB end of USB driver list
 
-ifneq ($(CONFIG_CRC7),)
+ifdef CONFIG_SPI_MASTER
+ifndef CONFIG_COMPAT_KERNEL_2_6_25
+
+ifdef CONFIG_CRC7
 CONFIG_WL1251_SPI=m
-CONFIG_WL1271_SPI=m
-endif
+CONFIG_WL12XX_SPI=m
+endif #CONFIG_CRC7
 CONFIG_P54_SPI=m
 
-ifdef CONFIG_COMPAT_KERNEL_27
+ifdef CONFIG_COMPAT_KERNEL_2_6_27
 CONFIG_LIBERTAS_SPI=n
 NEED_LIBERTAS=n
-else #CONFIG_COMPAT_KERNEL_27
+else #CONFIG_COMPAT_KERNEL_2_6_27
 CONFIG_LIBERTAS_SPI=m
 NEED_LIBERTAS=y
-endif #CONFIG_COMPAT_KERNEL_27
+endif #CONFIG_COMPAT_KERNEL_2_6_27
 
-endif #CONFIG_COMPAT_KERNEL_25
-endif # end of SPI driver list
+endif #CONFIG_COMPAT_KERNEL_2_6_25
+endif #CONFIG_SPI_MASTER end of SPI driver list
 
-ifneq ($(CONFIG_MMC),)
+ifdef CONFIG_MMC
 
 CONFIG_SSB_SDIOHOST=y
 CONFIG_B43_SDIO=y
 
-ifneq ($(CONFIG_CRC7),)
-CONFIG_WL1251_SDIO=m
+ifdef CONFIG_CRC7
+ifdef CONFIG_WL12XX_PLATFORM_DATA
+CONFIG_COMPAT_WL1251_SDIO=m
+endif #CONFIG_WL12XX_PLATFORM_DATA
 
-ifndef CONFIG_COMPAT_KERNEL_32
-CONFIG_WL1271_SDIO=m
-endif #CONFIG_COMPAT_KERNEL_32
+ifndef CONFIG_COMPAT_KERNEL_2_6_32
+ifdef CONFIG_WL12XX_PLATFORM_DATA
+CONFIG_COMPAT_WL12XX_SDIO=m
+endif #CONFIG_WL12XX_PLATFORM_DATA
+endif #CONFIG_COMPAT_KERNEL_2_6_32
 
-endif
+endif #CONFIG_CRC7
 
-ifdef CONFIG_COMPAT_KERNEL_27
-CONFIG_LIBERTAS_SDIO=n
-NEED_LIBERTAS=n
-else #CONFIG_COMPAT_KERNEL_27
-CONFIG_LIBERTAS_SDIO=m
+CONFIG_MWIFIEX_SDIO=m
+
+ifndef CONFIG_COMPAT_KERNEL_2_6_32
+CONFIG_COMPAT_LIBERTAS_SDIO=m
 NEED_LIBERTAS=y
-endif #CONFIG_COMPAT_KERNEL_27
+endif #CONFIG_COMPAT_KERNEL_2_6_32
 
 CONFIG_IWM=m
 # CONFIG_IWM_DEBUG=y
+# CONFIG_IWM_TRACING=y
 
 CONFIG_BT_HCIBTSDIO=m
 CONFIG_BT_MRVL_SDIO=m
 
-ifneq ($(CONFIG_COMPAT_STAGING),)
-ifdef CONFIG_COMPAT_KERNEL_32
-CONFIG_ATH6KL_CFG80211=y
-CONFIG_ATH6KL_DEBUG=y
-# CONFIG_ATH6KL_DISABLE_TARGET_DBGLOGS is not set
-# CONFIG_ATH6KL_ENABLE_COEXISTENCE is not set
-# CONFIG_ATH6KL_ENABLE_HOST_DEBUG is not set
-CONFIG_ATH6KL_ENABLE_TARGET_DEBUG_PRINTS=y
-# CONFIG_ATH6KL_HCI_BRIDGE is not set
-# CONFIG_ATH6KL_HTC_RAW_INTERFACE is not set
-# CONFIG_ATH6KL_SKIP_ABI_VERSION_CHECK is not set
-CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER=y
-CONFIG_ATH6K_LEGACY=m
-endif #CONFIG_COMPAT_KERNEL_32
-endif
+ifndef CONFIG_COMPAT_KERNEL_2_6_27
+CONFIG_ATH6KL=m
+# CONFIG_ATH6KL_DEBUG=y
+endif #CONFIG_COMPAT_KERNEL_2_6_27
+
+ifndef CONFIG_COMPAT_KERNEL_2_6_29
+CONFIG_BRCMFMAC=m
+endif #CONFIG_COMPAT_KERNEL_2_6_29
 
+endif #CONFIG_MMC
 
-endif # end of SDIO driver list
+CONFIG_RTLWIFI=m
+CONFIG_RTL8192C_COMMON=m
 
 # Common rt2x00 requirements
 ifeq ($(NEED_RT2X00),y)
 CONFIG_RT2X00=y
 CONFIG_RT2X00_LIB=m
 CONFIG_RT2800_LIB=m
-CONFIG_RT2X00_LIB_HT=y
 CONFIG_RT2X00_LIB_FIRMWARE=y
 CONFIG_RT2X00_LIB_CRYPTO=y
-ifdef CONFIG_COMPAT_KERNEL_25
+# CONFIG_RT2X00_LIB_SOC=y
+ifdef CONFIG_COMPAT_KERNEL_2_6_25
 CONFIG_RT2X00_LIB_LEDS=n
-else #CONFIG_COMPAT_KERNEL_25
+else #CONFIG_COMPAT_KERNEL_2_6_25
+ifdef CONFIG_LEDS_CLASS
 CONFIG_RT2X00_LIB_LEDS=y
-endif #CONFIG_COMPAT_KERNEL_25
+endif #CONFIG_LEDS_CLASS
+endif #CONFIG_COMPAT_KERNEL_2_6_25
 # CONFIG_RT2X00_DEBUG=y
 # CONFIG_RT2X00_LIB_DEBUGFS
 endif
 
-ifeq ($(NEED_RT2X00_FIRMWARE),y)
-CONFIG_RT2X00_LIB_FIRMWARE=y
-endif
-
 # p54
 CONFIG_P54_COMMON=m
+ifdef CONFIG_MAC80211_LEDS
 CONFIG_P54_LEDS=y
+endif #CONFIG_MAC80211_LEDS
 
 # Atheros
 CONFIG_ATH_COMMON=m
 # CONFIG_ATH_DEBUG=y
 
-CONFIG_WL12XX=y
-ifneq ($(CONFIG_CRC7),)
+CONFIG_BRCMUTIL=m
+# CONFIG_BRCMDBG=y
+
+ifdef CONFIG_CRC7
 CONFIG_WL1251=m
-CONFIG_WL1271=m
-endif
+CONFIG_WL12XX=m
+endif #CONFIG_CRC7
+
+CONFIG_MWIFIEX=m
+
+ifndef CONFIG_CORDIC
+CONFIG_COMPAT_CORDIC=y
+endif #CONFIG_CORDIC
+
+ifndef CONFIG_CRC8
+CONFIG_COMPAT_CRC8=y
+endif #CONFIG_CRC8
 
-ifdef CONFIG_COMPAT_KERNEL_27
+ifdef CONFIG_COMPAT_KERNEL_2_6_27
 CONFIG_LIBERTAS=n
-else #CONFIG_COMPAT_KERNEL_27
+else #CONFIG_COMPAT_KERNEL_2_6_27
 ifeq ($(NEED_LIBERTAS),y)
 CONFIG_LIBERTAS_THINFIRM=m
 CONFIG_LIBERTAS=m
 CONFIG_LIBERTAS_MESH=y
 # CONFIG_LIBERTAS_DEBUG=y
 endif
-endif #CONFIG_COMPAT_KERNEL_27
+endif #CONFIG_COMPAT_KERNEL_2_6_27
 
 # We need the backported rfkill module on kernel < 2.6.31.
 # In more recent kernel versions use the in kernel rfkill module.
-ifdef CONFIG_COMPAT_KERNEL_31
+ifdef CONFIG_COMPAT_KERNEL_2_6_31
 CONFIG_RFKILL_BACKPORT=m
+ifdef CONFIG_LEDS_TRIGGERS
 CONFIG_RFKILL_BACKPORT_LEDS=y
+endif #CONFIG_LEDS_TRIGGERS
 CONFIG_RFKILL_BACKPORT_INPUT=y
-endif #CONFIG_COMPAT_KERNEL_31
+endif #CONFIG_COMPAT_KERNEL_2_6_31