2 # Copyright (C) 2007-2015 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
9 include $(INCLUDE_DIR
)/kernel.mk
15 PKG_LICENSE
:=GPL-2.0
-only
16 PKG_LICENSE_FILES
:=COPYING
18 PKG_SOURCE_URL
:=http
://mirror2.openwrt.org
/sources
/
19 PKG_HASH
:=28ec39425a1b3270e1422d92a8131a6a3d8919cc13e8ee250c315e55d922ba68
21 PKG_SOURCE
:=backports-
$(PKG_VERSION
).
tar.xz
22 PKG_BUILD_DIR
:=$(KERNEL_BUILD_DIR
)/$(if
$(BUILD_VARIANT
),$(PKG_NAME
)-$(BUILD_VARIANT
)/)backports-
$(PKG_VERSION
)
25 PKG_MAINTAINER
:=Felix Fietkau
<nbd@nbd.name
>
30 rsi91x rsi91x-usb rsi91x-sdio\
33 PKG_CONFIG_DEPENDS
:= \
34 CONFIG_PACKAGE_kmod-mac80211 \
35 CONFIG_PACKAGE_CFG80211_TESTMODE \
36 CONFIG_PACKAGE_MAC80211_DEBUGFS \
37 CONFIG_PACKAGE_MAC80211_MESH \
38 CONFIG_PACKAGE_MAC80211_TRACING \
39 CONFIG_PACKAGE_IWLWIFI_DEBUG \
40 CONFIG_PACKAGE_IWLWIFI_DEBUGFS \
41 CONFIG_PACKAGE_RTLWIFI_DEBUG \
43 include $(INCLUDE_DIR
)/package.mk
45 WMENU
:=Wireless Drivers
47 define KernelPackage
/mac80211
/Default
49 URL
:=https
://wireless.wiki.kernel.org
/
50 MAINTAINER
:=Felix Fietkau
<nbd@nbd.name
>
54 # 1 = OpenWrt KernelPackage name
55 # 2 = Optional list of variants for which the module may be selected:
56 # If empty, the module is only selected with the first variant
57 # Use $(ALL_VARIANTS) to allow module selection in all variants
58 config_package
=$(if
$(and
$(CONFIG_PACKAGE_kmod-
$(1)),$(call mac80211_variant_check
,$(2))),m
)
59 mac80211_variant_check
=$(if
$(ALL_VARIANTS
),$(filter $(BUILD_VARIANT
),$(if
$(1),$(1),$(firstword $(ALL_VARIANTS
)))),y
)
63 CFG80211_CERTIFICATION_ONUS \
64 MAC80211_RC_MINSTREL \
65 MAC80211_RC_MINSTREL_HT \
66 MAC80211_RC_MINSTREL_VHT \
67 MAC80211_RC_DEFAULT_MINSTREL \
71 WLAN_VENDOR_BROADCOM \
74 WLAN_VENDOR_INTERSIL \
76 WLAN_VENDOR_MEDIATEK \
84 config-
$(call config_package
,cfg80211
,$(ALL_VARIANTS
)) += CFG80211
85 config-
$(CONFIG_PACKAGE_CFG80211_TESTMODE
) += NL80211_TESTMODE
87 config-
$(call config_package
,mac80211
,$(ALL_VARIANTS
)) += MAC80211
88 config-
$(CONFIG_PACKAGE_MAC80211_MESH
) += MAC80211_MESH
97 PKG_CONFIG_DEPENDS
+= \
98 $(patsubst %,CONFIG_PACKAGE_kmod-
%,$(PKG_DRIVERS
))
100 define KernelPackage
/cfg80211
101 $(call KernelPackage
/mac80211
/Default
)
102 TITLE
:=cfg80211
- wireless configuration API
103 DEPENDS
+= +iw
+!WIFI_SCRIPTS_UCODE
:iwinfo
+wifi-scripts
+wireless-regdb
+USE_RFKILL
:kmod-rfkill
104 ABI_VERSION
:=$(PKG_VERSION
)-$(PKG_RELEASE
)
106 $(PKG_BUILD_DIR
)/compat
/compat.ko \
107 $(PKG_BUILD_DIR
)/net
/wireless
/cfg80211.ko
110 define KernelPackage
/cfg80211
/description
111 cfg80211 is the Linux wireless LAN
(802.11) configuration API.
114 define KernelPackage
/cfg80211
/config
115 if PACKAGE_kmod-cfg80211
117 config PACKAGE_CFG80211_TESTMODE
118 bool
"Enable testmode command support"
121 This is typically used for tests and calibration during
122 manufacturing
, or vendor specific debugging features
128 define KernelPackage
/mac80211
129 $(call KernelPackage
/mac80211
/Default
)
130 TITLE
:=Linux
802.11 Wireless Networking Stack
131 # +kmod-crypto-cmac is a runtime only dependency of net/mac80211/aes_cmac.c
132 DEPENDS
+= +kmod-cfg80211
+kmod-crypto-cmac
+kmod-crypto-ccm
+kmod-crypto-gcm
+hostapd-common
135 FILES
:= $(PKG_BUILD_DIR
)/net
/mac80211
/mac80211.ko
136 ABI_VERSION
:=$(PKG_VERSION
)-$(PKG_RELEASE
)
140 define KernelPackage
/mac80211
/config
141 if PACKAGE_kmod-mac80211
143 config PACKAGE_MAC80211_DEBUGFS
144 bool
"Export mac80211 internals in DebugFS"
145 select KERNEL_DEBUG_FS
148 Select this to see extensive information about
149 the internal state of mac80211 in debugfs.
151 config PACKAGE_MAC80211_TRACING
152 bool
"Enable tracing (mac80211 and supported drivers)"
154 select KERNEL_ENABLE_DEFAULT_TRACERS
157 Select this to enable tracing of mac80211 and
158 related wifi drivers
(using trace-cmd
).
160 config PACKAGE_MAC80211_MESH
161 bool
"Enable 802.11s mesh support"
167 define KernelPackage
/mac80211
/description
168 Generic IEEE
802.11 Networking Stack
(mac80211
)
171 define KernelPackage
/mac80211-hwsim
172 $(call KernelPackage
/mac80211
/Default
)
173 TITLE
:=mac80211 HW simulation device
174 DEPENDS
+= +kmod-mac80211
+@DRIVER_11BE_SUPPORT
+@DRIVER_11AX_SUPPORT
+@DRIVER_11AC_SUPPORT
175 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/virtual
/mac80211_hwsim.ko
176 AUTOLOAD
:=$(call AutoProbe
,mac80211_hwsim
)
180 define KernelPackage
/mt7601u
181 $(call KernelPackage
/mac80211
/Default
)
182 TITLE
:=MT7601U-based USB dongles Wireless Driver
183 DEPENDS
+= +kmod-mac80211 @USB_SUPPORT
+kmod-usb-core
+mt7601u-firmware
184 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/mediatek
/mt7601u
/mt7601u.ko
185 AUTOLOAD
:=$(call AutoProbe
,mt7601u
)
188 define KernelPackage
/rsi91x
189 $(call KernelPackage
/mac80211
/Default
)
190 TITLE
:=Redpine Signals Inc
91x WLAN driver support
191 DEPENDS
+= +kmod-mac80211
+rs9113-firmware
192 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/rsi
/rsi_91x.ko
195 define KernelPackage
/rsi91x-usb
196 $(call KernelPackage
/mac80211
/Default
)
197 TITLE
:=Redpine Signals USB bus support
198 DEPENDS
+=@USB_SUPPORT
+kmod-usb-core
+kmod-mac80211
+kmod-rsi91x
+rs9113-firmware
199 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/rsi
/rsi_usb.ko
200 AUTOLOAD
:=$(call AutoProbe
,rsi_usb
)
203 define KernelPackage
/rsi91x-sdio
204 $(call KernelPackage
/mac80211
/Default
)
205 TITLE
:=Redpine Signals SDIO bus support
206 DEPENDS
+= +kmod-mac80211
+kmod-mmc
+kmod-rsi91x
+rs9113-firmware
207 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/rsi
/rsi_sdio.ko
208 AUTOLOAD
:=$(call AutoProbe
,rsi_sdio
)
212 define KernelPackage
/wlcore
213 $(call KernelPackage
/mac80211
/Default
)
214 TITLE
:=TI common driver part
215 DEPENDS
+= +kmod-mmc
+kmod-mac80211
217 $(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ti
/wlcore
/wlcore.ko \
218 $(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ti
/wlcore
/wlcore_sdio.ko
219 AUTOLOAD
:=$(call AutoProbe
,wlcore wlcore_sdio
)
222 define KernelPackage
/wlcore
/description
223 This module contains some common parts needed by TI Wireless drivers.
226 define KernelPackage
/wl12xx
227 $(call KernelPackage
/mac80211
/Default
)
228 TITLE
:=Driver for TI WL12xx
229 URL
:=https
://wireless.wiki.kernel.org
/en
/users
/drivers
/wl12xx
230 DEPENDS
+= +kmod-wlcore
+wl12xx-firmware
231 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ti
/wl12xx
/wl12xx.ko
232 AUTOLOAD
:=$(call AutoProbe
,wl12xx
)
235 define KernelPackage
/wl12xx
/description
236 Kernel modules for TI WL12xx
239 define KernelPackage
/wl18xx
240 $(call KernelPackage
/mac80211
/Default
)
241 TITLE
:=Driver for TI WL18xx
242 URL
:=https
://wireless.wiki.kernel.org
/en
/users
/drivers
/wl18xx
243 DEPENDS
+= +kmod-wlcore
+wl18xx-firmware
244 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ti
/wl18xx
/wl18xx.ko
245 AUTOLOAD
:=$(call AutoProbe
,wl18xx
)
248 define KernelPackage
/wl18xx
/description
249 Kernel modules for TI WL18xx
253 ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
259 ifdef CONFIG_PACKAGE_MAC80211_TRACING
261 IWLWIFI_DEVICE_TRACING
264 config-
$(call config_package
,mac80211-hwsim
) += MAC80211_HWSIM
265 config-
$(call config_package
,mt7601u
) += MT7601U
266 config-y
+= WL_MEDIATEK
268 config-
$(call config_package
,wlcore
) += WLCORE WLCORE_SDIO
269 config-
$(call config_package
,wl12xx
) += WL12XX
270 config-
$(call config_package
,wl18xx
) += WL18XX
271 config-y
+= WL_TI WILINK_PLATFORM_DATA
272 config-
$(call config_package
,rsi91x
) += RSI_91X
273 config-
$(call config_package
,rsi91x-usb
) += RSI_USB
274 config-
$(call config_package
,rsi91x-sdio
) += RSI_SDIO
276 config-
$(CONFIG_LEDS_TRIGGERS
) += MAC80211_LEDS
280 ifeq ($(BUILD_VARIANT
),smallbuffers
)
281 C_DEFINES
+= -DCONFIG_ATH10K_SMALLBUFFERS
285 $(subst -C
$(LINUX_DIR
),-C
"$(PKG_BUILD_DIR)",$(KERNEL_MAKEOPTS
)) \
286 EXTRA_CFLAGS
="-I$(PKG_BUILD_DIR)/include $(IREMAP_CFLAGS) $(C_DEFINES)" \
287 KLIB_BUILD
="$(LINUX_DIR)" \
289 KLIB
=$(TARGET_MODULES_DIR
) \
290 KERNEL_SUBLEVEL
=$(lastword
$(subst .
, ,$(KERNEL_PATCHVER
))) \
291 KBUILD_LDFLAGS_MODULE_PREREQ
=
294 $(subst $(space
),,$(foreach opt
,$(config-
$(1)),CPTCFG_
$(opt
)=$(1)
298 define mac80211_config
299 $(call ConfigVars
,m
)$(call ConfigVars
,y
)
301 $(eval
$(call shexport
,mac80211_config
))
304 rm -rf
$(PKG_BUILD_DIR
)
305 mkdir
-p
$(PKG_BUILD_DIR
)
309 $(PKG_BUILD_DIR
)/include/linux
/ssb \
310 $(PKG_BUILD_DIR
)/include/linux
/bcma \
311 $(PKG_BUILD_DIR
)/include/net
/bluetooth
314 $(PKG_BUILD_DIR
)/include/linux
/cordic.h \
315 $(PKG_BUILD_DIR
)/include/linux
/crc8.h \
316 $(PKG_BUILD_DIR
)/include/linux
/eeprom_93cx6.h \
317 $(PKG_BUILD_DIR
)/include/linux
/wl12xx.h \
318 $(PKG_BUILD_DIR
)/include/linux
/mhi.h \
319 $(PKG_BUILD_DIR
)/include/net
/ieee80211.h \
320 $(PKG_BUILD_DIR
)/backport-include
/linux
/bcm47xx_nvram.h
322 echo
'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR
)/compat_version
325 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211
),)
326 define Build
/Compile
/kmod
327 rm -rf
$(PKG_BUILD_DIR
)/modules
328 +$(MAKE
) $(PKG_JOBS
) $(MAKE_OPTS
) modules
332 #do not Build/Configure for EXTERNAL KERNEL
333 ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE
)),"")
334 ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI
)),"")
335 define Build
/Configure
336 cmp
$(PKG_BUILD_DIR
)/include/linux
/ath5k_platform.h
$(LINUX_DIR
)/include/linux
/ath5k_platform.h
337 cmp
$(PKG_BUILD_DIR
)/include/linux
/rt2x00_platform.h
$(LINUX_DIR
)/include/linux
/rt2x00_platform.h
343 $(if
$(QUILT
),rm -rf
$(PKG_BUILD_DIR
)/patches
; mkdir
-p
$(PKG_BUILD_DIR
)/patches
)
344 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/build
,build
/)
345 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/subsys
,subsys
/)
346 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath
,ath
/)
347 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath5k
,ath5k
/)
348 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath9k
,ath9k
/)
349 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath10k
,ath10k
/)
350 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath11k
,ath11k
/)
351 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath12k
,ath12k
/)
352 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/rt2x00
,rt2x00
/)
353 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/mt7601u
,mt7601u
/)
354 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/mwl
,mwl
/)
355 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/brcm
,brcm
/)
356 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/rtl
,rtl
/)
357 $(if
$(QUILT
),touch
$(PKG_BUILD_DIR
)/.quilt_used
)
360 define Quilt
/Refresh
/Package
361 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/build
,build
/)
362 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/subsys
,subsys
/)
363 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath
,ath
/)
364 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath5k
,ath5k
/)
365 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath9k
,ath9k
/)
366 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath10k
,ath10k
/)
367 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath11k
,ath11k
/)
368 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath12k
,ath12k
/)
369 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/rt2x00
,rt2x00
/)
370 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/mt7601u
,mt7601u
/)
371 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/mwl
,mwl
/)
372 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/brcm
,brcm
/)
373 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/rtl
,rtl
/)
377 $(SH_FUNC
) var2file
"$(call shvar,mac80211_config)" $(PKG_BUILD_DIR
)/.config
378 $(MAKE
) $(MAKE_OPTS
) allnoconfig
379 $(call Build
/Compile
/kmod
)
382 define Build
/InstallDev
384 $(1)/usr
/include/mac80211 \
385 $(1)/usr
/include/mac80211-backport \
386 $(1)/usr
/include/mac80211
/ath \
387 $(1)/usr
/include/net
/mac80211
388 $(CP
) $(PKG_BUILD_DIR
)/net
/mac80211
/*.h
$(PKG_BUILD_DIR
)/include/* $(1)/usr
/include/mac80211
/
389 $(CP
) $(PKG_BUILD_DIR
)/backport-include
/* $(1)/usr
/include/mac80211-backport
/
390 $(CP
) $(PKG_BUILD_DIR
)/net
/mac80211
/rate.h
$(1)/usr
/include/net
/mac80211
/
391 $(CP
) $(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ath
/*.h
$(1)/usr
/include/mac80211
/ath
/
392 rm -f
$(1)/usr
/include/mac80211-backport
/linux
/module.h
396 $(eval
$(foreach drv
,$(PKG_DRIVERS
),$(call KernelPackage
,$(drv
))))
397 $(eval
$(call KernelPackage
,cfg80211
))
398 $(eval
$(call KernelPackage
,mac80211
))