| 1 | # |
| 2 | # Copyright (C) 2007-2010 OpenWrt.org |
| 3 | # |
| 4 | # This is free software, licensed under the GNU General Public License v2. |
| 5 | # See /LICENSE for more information. |
| 6 | # |
| 7 | |
| 8 | include $(TOPDIR)/rules.mk |
| 9 | include $(INCLUDE_DIR)/kernel.mk |
| 10 | |
| 11 | PKG_NAME:=mac80211 |
| 12 | |
| 13 | PKG_VERSION:=2010-07-29 |
| 14 | PKG_RELEASE:=1 |
| 15 | PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources |
| 16 | # http://www.orbit-lab.org/kernel/compat-wireless-2.6/2010/11 \ |
| 17 | # http://wireless.kernel.org/download/compat-wireless-2.6 |
| 18 | PKG_MD5SUM:=fcfb757939c4718efbf9c87ca59c6932 |
| 19 | |
| 20 | PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2 |
| 21 | PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION) |
| 22 | |
| 23 | PKG_CONFIG_DEPENDS:= \ |
| 24 | CONFIG_PACKAGE_kmod-mac80211 \ |
| 25 | CONFIG_PACKAGE_MAC80211_DEBUGFS \ |
| 26 | CONFIG_PACKAGE_ATH9K_USE_MINSTREL \ |
| 27 | CONFIG_PACKAGE_ATH_DEBUG \ |
| 28 | CONFIG_ATH_USER_REGD \ |
| 29 | |
| 30 | include $(INCLUDE_DIR)/package.mk |
| 31 | |
| 32 | WMENU:=Wireless Drivers |
| 33 | |
| 34 | define KernelPackage/mac80211/Default |
| 35 | SUBMENU:=$(WMENU) |
| 36 | URL:=http://linuxwireless.org/ |
| 37 | MAINTAINER:=Felix Fietkau <nbd@openwrt.org> |
| 38 | DEPENDS:=@!LINUX_2_4 @(!(TARGET_avr32||TARGET_ep93xx||TARGET_ps3||TARGET_pxcab)||BROKEN) |
| 39 | endef |
| 40 | |
| 41 | define KernelPackage/cfg80211 |
| 42 | $(call KernelPackage/mac80211/Default) |
| 43 | TITLE:=cfg80211 - wireless configuration API |
| 44 | DEPENDS+= +wireless-tools +iw @!LINUX_2_6_25 |
| 45 | ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.33)),1) |
| 46 | FILES:= \ |
| 47 | $(PKG_BUILD_DIR)/compat/compat.$(LINUX_KMOD_SUFFIX) \ |
| 48 | $(PKG_BUILD_DIR)/net/wireless/cfg80211.$(LINUX_KMOD_SUFFIX) |
| 49 | AUTOLOAD:=$(call AutoLoad,20,compat cfg80211) |
| 50 | else |
| 51 | FILES:= \ |
| 52 | $(PKG_BUILD_DIR)/compat/compat.$(LINUX_KMOD_SUFFIX) \ |
| 53 | $(PKG_BUILD_DIR)/compat/compat_firmware_class.$(LINUX_KMOD_SUFFIX) \ |
| 54 | $(PKG_BUILD_DIR)/net/wireless/cfg80211.$(LINUX_KMOD_SUFFIX) |
| 55 | AUTOLOAD:=$(call AutoLoad,20,compat compat_firmware_class cfg80211) |
| 56 | endif |
| 57 | endef |
| 58 | |
| 59 | define KernelPackage/cfg80211/description |
| 60 | cfg80211 is the Linux wireless LAN (802.11) configuration API. |
| 61 | endef |
| 62 | |
| 63 | define KernelPackage/mac80211 |
| 64 | $(call KernelPackage/mac80211/Default) |
| 65 | TITLE:=Linux 802.11 Wireless Networking Stack |
| 66 | DEPENDS+= +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-cfg80211 |
| 67 | FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.$(LINUX_KMOD_SUFFIX) |
| 68 | AUTOLOAD:=$(call AutoLoad,21,mac80211) |
| 69 | MENU:=1 |
| 70 | endef |
| 71 | |
| 72 | define KernelPackage/mac80211/config |
| 73 | menu "Configuration" |
| 74 | depends on PACKAGE_kmod-mac80211 |
| 75 | |
| 76 | config PACKAGE_MAC80211_DEBUGFS |
| 77 | bool "Export mac80211 internals in DebugFS" |
| 78 | default y |
| 79 | help |
| 80 | Select this to see extensive information about |
| 81 | the internal state of mac80211 in debugfs. |
| 82 | |
| 83 | Say N unless you know you need this. |
| 84 | |
| 85 | endmenu |
| 86 | endef |
| 87 | |
| 88 | define KernelPackage/mac80211/description |
| 89 | Generic IEEE 802.11 Networking Stack (mac80211) |
| 90 | endef |
| 91 | |
| 92 | # Prism54 drivers |
| 93 | P54PCIFW:=2.13.12.0.arm |
| 94 | P54USBFW:=2.13.24.0.lm87.arm |
| 95 | |
| 96 | define Download/p54usb |
| 97 | FILE:=$(P54USBFW) |
| 98 | URL:=http://daemonizer.de/prism54/prism54-fw/fw-usb |
| 99 | MD5SUM:=8e8ab005a4f8f0123bcdc51bc25b47f6 |
| 100 | endef |
| 101 | $(eval $(call Download,p54usb)) |
| 102 | |
| 103 | define Download/p54pci |
| 104 | FILE:=$(P54PCIFW) |
| 105 | URL:=http://daemonizer.de/prism54/prism54-fw/fw-softmac |
| 106 | MD5SUM:=ff7536af2092b1c4b21315bd103ef4c4 |
| 107 | endef |
| 108 | $(eval $(call Download,p54pci)) |
| 109 | |
| 110 | define KernelPackage/p54/Default |
| 111 | $(call KernelPackage/mac80211/Default) |
| 112 | TITLE:=Prism54 Drivers |
| 113 | endef |
| 114 | |
| 115 | define KernelPackage/p54/description |
| 116 | Kernel module for Prism54 chipsets (mac80211) |
| 117 | endef |
| 118 | |
| 119 | define KernelPackage/p54-common |
| 120 | $(call KernelPackage/p54/Default) |
| 121 | DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT +kmod-mac80211 |
| 122 | TITLE+= (COMMON) |
| 123 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54common.$(LINUX_KMOD_SUFFIX) |
| 124 | AUTOLOAD:=$(call AutoLoad,30,p54common) |
| 125 | endef |
| 126 | |
| 127 | define KernelPackage/p54-pci |
| 128 | $(call KernelPackage/p54/Default) |
| 129 | TITLE+= (PCI) |
| 130 | DEPENDS+= @PCI_SUPPORT +kmod-p54-common |
| 131 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54pci.$(LINUX_KMOD_SUFFIX) |
| 132 | AUTOLOAD:=$(call AutoLoad,31,p54pci) |
| 133 | endef |
| 134 | |
| 135 | define KernelPackage/p54-usb |
| 136 | $(call KernelPackage/p54/Default) |
| 137 | TITLE+= (USB) |
| 138 | DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-p54-common |
| 139 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54usb.$(LINUX_KMOD_SUFFIX) |
| 140 | AUTOLOAD:=$(call AutoLoad,31,p54usb) |
| 141 | endef |
| 142 | |
| 143 | # Ralink rt2x00 drivers |
| 144 | RT61FW:=RT61_Firmware_V1.2.zip |
| 145 | RT71FW:=RT71W_Firmware_V1.8.zip |
| 146 | RT2860FW:=RT2860_Firmware_V11.zip |
| 147 | RT2870FW:=RT2870_Firmware_V8.zip |
| 148 | |
| 149 | define Download/rt61 |
| 150 | FILE:=$(RT61FW) |
| 151 | URL:=http://www.ralinktech.com.tw/data/ |
| 152 | MD5SUM:=d4c690c93b470bc9a681297c2adc6281 |
| 153 | endef |
| 154 | $(eval $(call Download,rt61)) |
| 155 | |
| 156 | define Download/rt71w |
| 157 | FILE:=$(RT71FW) |
| 158 | URL:=http://www.ralinktech.com.tw/data/ |
| 159 | MD5SUM:=1e7a5dc574e0268574fcda3fd5cf52f7 |
| 160 | endef |
| 161 | $(eval $(call Download,rt71w)) |
| 162 | |
| 163 | define Download/rt2860 |
| 164 | FILE:=$(RT2860FW) |
| 165 | URL:=http://www.ralinktech.com.tw/data/drivers |
| 166 | MD5SUM:=440a81756a52c53528f16faa41c40124 |
| 167 | endef |
| 168 | $(eval $(call Download,rt2860)) |
| 169 | |
| 170 | define Download/rt2870 |
| 171 | FILE:=$(RT2870FW) |
| 172 | URL:=http://www.ralinktech.com.tw/data/drivers |
| 173 | MD5SUM:=a7aae1d8cfd68e4d86a73000df0b6584 |
| 174 | endef |
| 175 | $(eval $(call Download,rt2870)) |
| 176 | |
| 177 | AR9170FW:=ar9170.fw |
| 178 | |
| 179 | define Download/ar9170 |
| 180 | FILE:=$(AR9170FW) |
| 181 | URL:=http://www.kernel.org/pub/linux/kernel/people/mcgrof/firmware/ar9170 |
| 182 | MD5SUM:=34feec4ec0eae3bb92c7c1ea2dfb4530 |
| 183 | endef |
| 184 | $(eval $(call Download,ar9170)) |
| 185 | |
| 186 | NEED_RT2X00_LIB_CRYPTO:=y |
| 187 | NEED_RT2X00_LIB_FIRMWARE:=y |
| 188 | NEED_RT2X00_LIB_HT:=y |
| 189 | NEED_RT2X00_LIB_LEDS:=y |
| 190 | |
| 191 | define KernelPackage/rt2x00/Default |
| 192 | $(call KernelPackage/mac80211/Default) |
| 193 | TITLE:=Ralink Drivers for RT2x00 cards |
| 194 | endef |
| 195 | |
| 196 | define KernelPackage/rt2x00-lib |
| 197 | $(call KernelPackage/rt2x00/Default) |
| 198 | DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-mac80211 +kmod-crc-itu-t |
| 199 | TITLE+= (LIB) |
| 200 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00lib.$(LINUX_KMOD_SUFFIX) |
| 201 | AUTOLOAD:=$(call AutoLoad,25,rt2x00lib) |
| 202 | MENU:=1 |
| 203 | endef |
| 204 | |
| 205 | define KernelPackage/rt2x00-lib/config |
| 206 | menu "Configuration" |
| 207 | depends PACKAGE_kmod-rt2x00-lib |
| 208 | |
| 209 | config PACKAGE_RT2X00_LIB_DEBUGFS |
| 210 | bool "Enable rt2x00 debugfs support" |
| 211 | depends PACKAGE_MAC80211_DEBUGFS |
| 212 | help |
| 213 | Enable creation of debugfs files for the rt2x00 drivers. |
| 214 | These debugfs files support both reading and writing of the |
| 215 | most important register types of the rt2x00 hardware. |
| 216 | |
| 217 | config PACKAGE_RT2X00_DEBUG |
| 218 | bool "Enable rt2x00 debug output" |
| 219 | help |
| 220 | Enable debugging output for all rt2x00 modules |
| 221 | |
| 222 | endmenu |
| 223 | endef |
| 224 | |
| 225 | define KernelPackage/rt2x00-pci |
| 226 | $(call KernelPackage/rt2x00/Default) |
| 227 | DEPENDS+= @(PCI_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +kmod-eeprom-93cx6 |
| 228 | TITLE+= (PCI) |
| 229 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00pci.$(LINUX_KMOD_SUFFIX) |
| 230 | AUTOLOAD:=$(call AutoLoad,26,rt2x00pci) |
| 231 | endef |
| 232 | |
| 233 | define KernelPackage/rt2x00-usb |
| 234 | $(call KernelPackage/rt2x00/Default) |
| 235 | DEPENDS+= @USB_SUPPORT +kmod-rt2x00-lib +kmod-usb-core |
| 236 | TITLE+= (USB) |
| 237 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00usb.$(LINUX_KMOD_SUFFIX) |
| 238 | AUTOLOAD:=$(call AutoLoad,26,rt2x00usb) |
| 239 | endef |
| 240 | |
| 241 | define KernelPackage/rt2x00-soc |
| 242 | $(call KernelPackage/rt2x00/Default) |
| 243 | DEPENDS+= @TARGET_ramips +kmod-rt2x00-lib |
| 244 | TITLE+= (SoC) |
| 245 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00soc.$(LINUX_KMOD_SUFFIX) |
| 246 | AUTOLOAD:=$(call AutoLoad,26,rt2x00soc) |
| 247 | endef |
| 248 | |
| 249 | define KernelPackage/rt2800-lib |
| 250 | $(call KernelPackage/rt2x00/Default) |
| 251 | DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +USB_SUPPORT:kmod-rt2x00-usb +TARGET_ramips:kmod-rt2x00-soc |
| 252 | TITLE+= (rt2800 LIB) |
| 253 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800lib.$(LINUX_KMOD_SUFFIX) |
| 254 | AUTOLOAD:=$(call AutoLoad,27,rt2800lib) |
| 255 | endef |
| 256 | |
| 257 | define KernelPackage/rt2400-pci |
| 258 | $(call KernelPackage/rt2x00/Default) |
| 259 | DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci |
| 260 | TITLE+= (RT2400 PCI) |
| 261 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2400pci.$(LINUX_KMOD_SUFFIX) |
| 262 | AUTOLOAD:=$(call AutoLoad,27,rt2400pci) |
| 263 | endef |
| 264 | |
| 265 | define KernelPackage/rt2500-pci |
| 266 | $(call KernelPackage/rt2x00/Default) |
| 267 | DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci |
| 268 | TITLE+= (RT2500 PCI) |
| 269 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500pci.$(LINUX_KMOD_SUFFIX) |
| 270 | AUTOLOAD:=$(call AutoLoad,27,rt2500pci) |
| 271 | endef |
| 272 | |
| 273 | define KernelPackage/rt2500-usb |
| 274 | $(call KernelPackage/rt2x00/Default) |
| 275 | DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb |
| 276 | TITLE+= (RT2500 USB) |
| 277 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500usb.$(LINUX_KMOD_SUFFIX) |
| 278 | AUTOLOAD:=$(call AutoLoad,27,rt2500usb) |
| 279 | endef |
| 280 | |
| 281 | define KernelPackage/rt61-pci |
| 282 | $(call KernelPackage/rt2x00/Default) |
| 283 | DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci |
| 284 | TITLE+= (RT2x61 PCI) |
| 285 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt61pci.$(LINUX_KMOD_SUFFIX) |
| 286 | AUTOLOAD:=$(call AutoLoad,27,rt61pci) |
| 287 | endef |
| 288 | |
| 289 | define KernelPackage/rt73-usb |
| 290 | $(call KernelPackage/rt2x00/Default) |
| 291 | DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb |
| 292 | TITLE+= (RT73 USB) |
| 293 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt73usb.$(LINUX_KMOD_SUFFIX) |
| 294 | AUTOLOAD:=$(call AutoLoad,27,rt73usb) |
| 295 | endef |
| 296 | |
| 297 | define KernelPackage/rt2800-pci |
| 298 | $(call KernelPackage/rt2x00/Default) |
| 299 | DEPENDS+= +kmod-rt2x00-pci +kmod-rt2800-lib +kmod-crc-ccitt +TARGET_ramips:kmod-rt2x00-soc |
| 300 | TITLE+= (RT2860 PCI) |
| 301 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800pci.$(LINUX_KMOD_SUFFIX) |
| 302 | AUTOLOAD:=$(call AutoLoad,28,rt2800pci) |
| 303 | endef |
| 304 | |
| 305 | define KernelPackage/rt2800-usb |
| 306 | $(call KernelPackage/rt2x00/Default) |
| 307 | DEPENDS+= +kmod-rt2x00-usb +kmod-rt2800-lib +kmod-crc-ccitt |
| 308 | TITLE+= (RT2870 USB) |
| 309 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800usb.$(LINUX_KMOD_SUFFIX) |
| 310 | AUTOLOAD:=$(call AutoLoad,28,rt2800usb) |
| 311 | endef |
| 312 | |
| 313 | define KernelPackage/rtl818x/Default |
| 314 | $(call KernelPackage/mac80211/Default) |
| 315 | TITLE:=Realtek Drivers for RTL818x devices |
| 316 | URL:=http://wireless.kernel.org/en/users/Drivers/rtl8187 |
| 317 | DEPENDS+= +kmod-eeprom-93cx6 +kmod-mac80211 |
| 318 | endef |
| 319 | |
| 320 | define KernelPackage/rtl8180 |
| 321 | $(call KernelPackage/rtl818x/Default) |
| 322 | DEPENDS+= @PCI_SUPPORT |
| 323 | TITLE+= (RTL8180 PCI) |
| 324 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8180.$(LINUX_KMOD_SUFFIX) |
| 325 | AUTOLOAD:=$(call AutoLoad,27,rtl8180) |
| 326 | endef |
| 327 | |
| 328 | define KernelPackage/rtl8187 |
| 329 | $(call KernelPackage/rtl818x/Default) |
| 330 | DEPENDS+= @USB_SUPPORT |
| 331 | TITLE+= (RTL8187 USB) |
| 332 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8187.$(LINUX_KMOD_SUFFIX) |
| 333 | AUTOLOAD:=$(call AutoLoad,27,rtl8187) |
| 334 | endef |
| 335 | |
| 336 | ZD1211FW_NAME:=zd1211-firmware |
| 337 | ZD1211FW_VERSION:=1.4 |
| 338 | define Download/zd1211rw |
| 339 | FILE:=$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2 |
| 340 | URL:=@SF/zd1211/ |
| 341 | MD5SUM:=19f28781d76569af8551c9d11294c870 |
| 342 | endef |
| 343 | $(eval $(call Download,zd1211rw)) |
| 344 | |
| 345 | define KernelPackage/zd1211rw |
| 346 | $(call KernelPackage/mac80211/Default) |
| 347 | TITLE:=Zydas ZD1211 support |
| 348 | DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211 |
| 349 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zd1211rw/zd1211rw.$(LINUX_KMOD_SUFFIX) |
| 350 | AUTOLOAD:=$(call AutoLoad,60,zd1211rw) |
| 351 | endef |
| 352 | |
| 353 | define KernelPackage/ath/config |
| 354 | menu "Configuration" |
| 355 | depends on PACKAGE_kmod-ath |
| 356 | |
| 357 | config ATH_USER_REGD |
| 358 | bool "Force Atheros drivers to respect the user's regdomain settings" |
| 359 | help |
| 360 | Atheros' idea of regulatory handling is that the EEPROM of the card defines |
| 361 | the regulatory limits and the user is only allowed to restrict the settings |
| 362 | even further, even if the country allows frequencies or power levels that |
| 363 | are forbidden by the EEPROM settings. |
| 364 | |
| 365 | Select this option if you want the driver to respect the user's decision about |
| 366 | regulatory settings. |
| 367 | |
| 368 | config PACKAGE_ATH_DEBUG |
| 369 | bool "Atheros wireless debugging" |
| 370 | help |
| 371 | Say Y, if you want to debug atheros wireless drivers. |
| 372 | Right now only ath9k makes use of this. |
| 373 | |
| 374 | endmenu |
| 375 | endef |
| 376 | |
| 377 | define KernelPackage/ath |
| 378 | $(call KernelPackage/mac80211/Default) |
| 379 | TITLE:=Atheros common driver part |
| 380 | DEPENDS+= @PCI_SUPPORT +kmod-mac80211 |
| 381 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath.$(LINUX_KMOD_SUFFIX) |
| 382 | AUTOLOAD:=$(call AutoLoad,26,ath) |
| 383 | MENU:=1 |
| 384 | endef |
| 385 | |
| 386 | define KernelPackage/ath/description |
| 387 | This module contains some common parts needed by Atheros Wireless drivers. |
| 388 | endef |
| 389 | |
| 390 | define KernelPackage/ath5k |
| 391 | $(call KernelPackage/mac80211/Default) |
| 392 | TITLE:=Atheros 5xxx wireless cards support |
| 393 | URL:=http://linuxwireless.org/en/users/Drivers/ath5k |
| 394 | DEPENDS+= +kmod-ath |
| 395 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath5k/ath5k.$(LINUX_KMOD_SUFFIX) |
| 396 | AUTOLOAD:=$(call AutoLoad,27,ath5k) |
| 397 | endef |
| 398 | |
| 399 | define KernelPackage/ath5k/description |
| 400 | This module adds support for wireless adapters based on |
| 401 | Atheros 5xxx chipset. |
| 402 | endef |
| 403 | |
| 404 | define KernelPackage/ath9k |
| 405 | $(call KernelPackage/mac80211/Default) |
| 406 | TITLE:=Atheros 802.11n wireless cards support |
| 407 | URL:=http://linuxwireless.org/en/users/Drivers/ath9k |
| 408 | DEPENDS+= +kmod-ath |
| 409 | FILES:= \ |
| 410 | $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_common.$(LINUX_KMOD_SUFFIX) \ |
| 411 | $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_hw.$(LINUX_KMOD_SUFFIX) \ |
| 412 | $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k.$(LINUX_KMOD_SUFFIX) |
| 413 | AUTOLOAD:=$(call AutoLoad,27,ath9k_hw ath9k_common ath9k) |
| 414 | MENU:=1 |
| 415 | endef |
| 416 | |
| 417 | define KernelPackage/ath9k/description |
| 418 | This module adds support for wireless adapters based on |
| 419 | Atheros IEEE 802.11n AR5008 and AR9001 family of chipsets. |
| 420 | endef |
| 421 | |
| 422 | define KernelPackage/ath9k/config |
| 423 | menu "Configuration" |
| 424 | depends PACKAGE_kmod-ath9k |
| 425 | |
| 426 | config PACKAGE_ATH9K_USE_MINSTREL |
| 427 | bool "use the new minstrel_ht rate control for ath9k" |
| 428 | default y |
| 429 | |
| 430 | endmenu |
| 431 | endef |
| 432 | |
| 433 | USB8388FW_NAME:=usb8388 |
| 434 | USB8388FW_VERSION:=5.110.22.p23 |
| 435 | |
| 436 | define Download/usb8388 |
| 437 | URL:=http://dev.laptop.org/pub/firmware/libertas/ |
| 438 | FILE:=$(USB8388FW_NAME)-$(USB8388FW_VERSION).bin |
| 439 | MD5SUM=5e38f55719df3d0c58dd3bd02575a09c |
| 440 | endef |
| 441 | $(eval $(call Download,usb8388)) |
| 442 | |
| 443 | SD8686FW_NAME:=sd8686 |
| 444 | SD8686FW_VERSION:=9.70.7.p0 |
| 445 | |
| 446 | define Download/sd8686 |
| 447 | URL:=http://dev.laptop.org/pub/firmware/libertas/ |
| 448 | FILE:=$(SD8686FW_NAME)-$(SD8686FW_VERSION).bin |
| 449 | MD5SUM=b4f8be61e19780a14836f146c538c5dd |
| 450 | endef |
| 451 | $(eval $(call Download,sd8686)) |
| 452 | |
| 453 | SD8686HELPER_NAME:=sd8686_helper |
| 454 | |
| 455 | define Download/sd8686_helper |
| 456 | URL:=http://dev.laptop.org/pub/firmware/libertas/ |
| 457 | FILE:=$(SD8686HELPER_NAME).bin |
| 458 | MD5SUM=2a4d8f4df198ce949c350df5674f4ac6 |
| 459 | endef |
| 460 | $(eval $(call Download,sd8686_helper)) |
| 461 | |
| 462 | define KernelPackage/libertas-usb |
| 463 | $(call KernelPackage/mac80211/Default) |
| 464 | DEPENDS+= @USB_SUPPORT +kmod-mac80211 +kmod-usb-core +kmod-lib80211 |
| 465 | TITLE:=Marvell 88W8015 Wireless Driver |
| 466 | FILES:= \ |
| 467 | $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.$(LINUX_KMOD_SUFFIX) \ |
| 468 | $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/usb8xxx.$(LINUX_KMOD_SUFFIX) |
| 469 | AUTOLOAD:=$(call AutoLoad,27,libertas usb8xxx) |
| 470 | endef |
| 471 | |
| 472 | define KernelPackage/libertas-sd |
| 473 | $(call KernelPackage/mac80211/Default) |
| 474 | DEPENDS+= +kmod-mac80211 +kmod-lib80211 |
| 475 | TITLE:=Marvell 88W8686 Wireless Driver |
| 476 | FILES:= \ |
| 477 | $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.$(LINUX_KMOD_SUFFIX) \ |
| 478 | $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas_sdio.$(LINUX_KMOD_SUFFIX) |
| 479 | AUTOLOAD:=$(call AutoLoad,27,libertas libertas_sdio) |
| 480 | endef |
| 481 | |
| 482 | define KernelPackage/ar9170 |
| 483 | $(call KernelPackage/mac80211/Default) |
| 484 | TITLE:=Atheros AR9170 802.11n USB support |
| 485 | URL:=http://wireless.kernel.org/en/users/Drivers/ar9170 |
| 486 | DEPENDS+= @USB_SUPPORT @!LINUX_2_6_25 +kmod-ath +kmod-usb-core |
| 487 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ar9170/ar9170usb.$(LINUX_KMOD_SUFFIX) |
| 488 | AUTOLOAD:=$(call AutoLoad,27,ar9170usb) |
| 489 | endef |
| 490 | |
| 491 | define KernelPackage/ar9170/description |
| 492 | This is a driver for the Atheros "otus" 802.11n USB devices. |
| 493 | endef |
| 494 | |
| 495 | define KernelPackage/mac80211-hwsim |
| 496 | $(call KernelPackage/mac80211/Default) |
| 497 | TITLE:=mac80211 HW simulation device |
| 498 | DEPENDS+= +kmod-mac80211 |
| 499 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.$(LINUX_KMOD_SUFFIX) |
| 500 | AUTOLOAD:=$(call AutoLoad,60,mac80211_hwsim) |
| 501 | endef |
| 502 | |
| 503 | define KernelPackage/net-libipw |
| 504 | $(call KernelPackage/mac80211/Default) |
| 505 | TITLE:=libipw for ipw2100 and ipw2200 |
| 506 | DEPENDS:=@PCI_SUPPORT +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-crypto-michael-mic +kmod-lib80211 +kmod-cfg80211 |
| 507 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/libipw.$(LINUX_KMOD_SUFFIX) |
| 508 | AUTOLOAD:=$(call AutoLoad,49,libipw) |
| 509 | endef |
| 510 | |
| 511 | define KernelPackage/net-libipw/description |
| 512 | Hardware independent IEEE 802.11 networking stack for ipw2100 and ipw2200. |
| 513 | endef |
| 514 | |
| 515 | IPW2100_NAME:=ipw2100-fw |
| 516 | IPW2100_VERSION:=1.3 |
| 517 | |
| 518 | define Download/net-ipw2100 |
| 519 | URL:=http://bughost.org/firmware/ |
| 520 | FILE:=$(IPW2100_NAME)-$(IPW2100_VERSION).tgz |
| 521 | MD5SUM=46aa75bcda1a00efa841f9707bbbd113 |
| 522 | endef |
| 523 | $(eval $(call Download,net-ipw2100)) |
| 524 | |
| 525 | define KernelPackage/net-ipw2100 |
| 526 | $(call KernelPackage/mac80211/Default) |
| 527 | TITLE:=Intel IPW2100 driver |
| 528 | DEPENDS:=@PCI_SUPPORT +kmod-net-libipw |
| 529 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2100.$(LINUX_KMOD_SUFFIX) |
| 530 | AUTOLOAD:=$(call AutoLoad,50,ipw2100) |
| 531 | endef |
| 532 | |
| 533 | define KernelPackage/net-ipw2100/description |
| 534 | Kernel support for Intel IPW2100 |
| 535 | Includes: |
| 536 | - ipw2100 |
| 537 | endef |
| 538 | |
| 539 | IPW2200_NAME:=ipw2200-fw |
| 540 | IPW2200_VERSION:=3.1 |
| 541 | |
| 542 | define Download/net-ipw2200 |
| 543 | URL:=http://bughost.org/firmware/ |
| 544 | FILE:=$(IPW2200_NAME)-$(IPW2200_VERSION).tgz |
| 545 | MD5SUM=eaba788643c7cc7483dd67ace70f6e99 |
| 546 | endef |
| 547 | $(eval $(call Download,net-ipw2200)) |
| 548 | |
| 549 | define KernelPackage/net-ipw2200 |
| 550 | $(call KernelPackage/mac80211/Default) |
| 551 | TITLE:=Intel IPW2200 driver |
| 552 | DEPENDS:=@PCI_SUPPORT +kmod-net-libipw |
| 553 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2200.$(LINUX_KMOD_SUFFIX) |
| 554 | AUTOLOAD:=$(call AutoLoad,50,ipw2200) |
| 555 | endef |
| 556 | |
| 557 | define KernelPackage/net-ipw2200/description |
| 558 | Kernel support for Intel IPW2200 |
| 559 | Includes: |
| 560 | - ipw2200 |
| 561 | endef |
| 562 | |
| 563 | |
| 564 | define KernelPackage/mwl8k |
| 565 | $(call KernelPackage/mac80211/Default) |
| 566 | TITLE:=Driver for Marvell TOPDOG 802.11 Wireless cards |
| 567 | URL:=http://wireless.kernel.org/en/users/Drivers/mwl8k |
| 568 | DEPENDS+= @PCI_SUPPORT +kmod-mac80211 |
| 569 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mwl8k.$(LINUX_KMOD_SUFFIX) |
| 570 | AUTOLOAD:=$(call AutoLoad,27,mwl8k) |
| 571 | endef |
| 572 | |
| 573 | define KernelPackage/mwl8k/description |
| 574 | Kernel modules for Marvell TOPDOG 802.11 Wireless cards |
| 575 | endef |
| 576 | |
| 577 | #Broadcom firmware |
| 578 | ifneq ($(CONFIG_B43_EXPERIMENTAL),) |
| 579 | PKG_B43_FWV4_NAME:=broadcom-wl |
| 580 | PKG_B43_FWV4_VERSION:=4.178.10.4 |
| 581 | PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl_apsta.o |
| 582 | PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2 |
| 583 | PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/ |
| 584 | PKG_B43_FWV4_MD5SUM:=14477e8cbbb91b11896affac9b219fdb |
| 585 | else |
| 586 | PKG_B43_FWV4_NAME:=broadcom-wl |
| 587 | PKG_B43_FWV4_VERSION:=4.150.10.5 |
| 588 | PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta_mimo.o |
| 589 | PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2 |
| 590 | PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/ |
| 591 | PKG_B43_FWV4_MD5SUM:=0c6ba9687114c6b598e8019e262d9a60 |
| 592 | endif |
| 593 | ifneq ($(CONFIG_B43_OPENFIRMWARE),) |
| 594 | PKG_B43_FWV4_NAME:=broadcom-wl |
| 595 | PKG_B43_FWV4_VERSION:=5.2 |
| 596 | PKG_B43_FWV4_OBJECT:=openfwwf-$(PKG_B43_FWV4_VERSION) |
| 597 | PKG_B43_FWV4_SOURCE:=openfwwf-$(PKG_B43_FWV4_VERSION).tar.gz |
| 598 | PKG_B43_FWV4_SOURCE_URL:=http://www.ing.unibs.it/openfwwf/firmware/ |
| 599 | PKG_B43_FWV4_MD5SUM:=e045a135453274e439ae183f8498b0fa |
| 600 | endif |
| 601 | |
| 602 | |
| 603 | PKG_B43_FWV3_NAME:=wl_apsta |
| 604 | PKG_B43_FWV3_VERSION:=3.130.20.0 |
| 605 | PKG_B43_FWV3_SOURCE:=$(PKG_B43_FWV3_NAME)-$(PKG_B43_FWV3_VERSION).o |
| 606 | PKG_B43_FWV3_SOURCE_URL:=http://downloads.openwrt.org/sources/ |
| 607 | PKG_B43_FWV3_MD5SUM:=e08665c5c5b66beb9c3b2dd54aa80cb3 |
| 608 | |
| 609 | ifeq ($(CONFIG_B43_OPENFIRMWARE),y) |
| 610 | PKG_B43_FWCUTTER_NAME:=b43-fwcutter |
| 611 | PKG_B43_FWCUTTER_VERSION:=3e69531aa65b8f664a0ab00dfc3e2eefeb0cb417 |
| 612 | PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2 |
| 613 | PKG_B43_FWCUTTER_PROTO:=git |
| 614 | PKG_B43_FWCUTTER_SOURCE_URL:=http://git.bu3sch.de/git/b43-tools.git |
| 615 | PKG_B43_FWCUTTER_SUBDIR:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION) |
| 616 | PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/fwcutter/ |
| 617 | else |
| 618 | PKG_B43_FWCUTTER_NAME:=b43-fwcutter |
| 619 | PKG_B43_FWCUTTER_VERSION:=013 |
| 620 | PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2 |
| 621 | PKG_B43_FWCUTTER_PROTO:=default |
| 622 | PKG_B43_FWCUTTER_SOURCE_URL:=http://bu3sch.de/b43/fwcutter/ |
| 623 | PKG_B43_FWCUTTER_MD5SUM:=3547ec6c474ac1bc2c4a5bb765b791a4 |
| 624 | PKG_B43_FWCUTTER_SUBDIR:=b43-fwcutter-$(PKG_B43_FWCUTTER_VERSION) |
| 625 | PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/ |
| 626 | endif |
| 627 | |
| 628 | define Download/b43-common |
| 629 | FILE:=$(PKG_B43_FWCUTTER_SOURCE) |
| 630 | URL:=$(PKG_B43_FWCUTTER_SOURCE_URL) |
| 631 | MD5SUM:=$(PKG_B43_FWCUTTER_MD5SUM) |
| 632 | PROTO:=$(PKG_B43_FWCUTTER_PROTO) |
| 633 | VERSION:=$(PKG_B43_FWCUTTER_VERSION) |
| 634 | SUBDIR:=$(PKG_B43_FWCUTTER_SUBDIR) |
| 635 | endef |
| 636 | $(eval $(call Download,b43-common)) |
| 637 | |
| 638 | define Download/b43 |
| 639 | FILE:=$(PKG_B43_FWV4_SOURCE) |
| 640 | URL:=$(PKG_B43_FWV4_SOURCE_URL) |
| 641 | MD5SUM:=$(PKG_B43_FWV4_MD5SUM) |
| 642 | endef |
| 643 | $(eval $(call Download,b43)) |
| 644 | |
| 645 | define Download/b43legacy |
| 646 | FILE:=$(PKG_B43_FWV3_SOURCE) |
| 647 | URL:=$(PKG_B43_FWV3_SOURCE_URL) |
| 648 | MD5SUM:=$(PKG_B43_FWV3_MD5SUM) |
| 649 | endef |
| 650 | $(eval $(call Download,b43legacy)) |
| 651 | |
| 652 | define KernelPackage/b43-common |
| 653 | $(call KernelPackage/mac80211/Default) |
| 654 | TITLE:=Generic stuff for Broadcom wireless devices |
| 655 | URL:=http://linuxwireless.org/en/users/Drivers/b43 |
| 656 | KCONFIG:= \ |
| 657 | CONFIG_HW_RANDOM=y |
| 658 | DEPENDS+= +kmod-mac80211 +!(TARGET_brcm47xx||TARGET_brcm63xx):kmod-ssb |
| 659 | endef |
| 660 | |
| 661 | define KernelPackage/b43 |
| 662 | $(call KernelPackage/b43-common) |
| 663 | TITLE:=Broadcom 43xx wireless support |
| 664 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43/b43.$(LINUX_KMOD_SUFFIX) |
| 665 | AUTOLOAD:=$(call AutoLoad,30,b43) |
| 666 | MENU:=1 |
| 667 | endef |
| 668 | |
| 669 | define KernelPackage/b43/config |
| 670 | menu "Configuration" |
| 671 | depends on PACKAGE_kmod-b43 |
| 672 | |
| 673 | choice |
| 674 | prompt "b43 firmware version" |
| 675 | default B43_STABLE |
| 676 | help |
| 677 | This option allows you to select the version of the b43 firmware. |
| 678 | |
| 679 | config B43_STABLE |
| 680 | bool "4.150.10.5 (stable)" |
| 681 | help |
| 682 | Stable firmware for BCM43xx devices. |
| 683 | |
| 684 | If unsure, select this. |
| 685 | |
| 686 | config B43_EXPERIMENTAL |
| 687 | bool "4.178.10.4 (experimental)" |
| 688 | help |
| 689 | Experimental firmware for BCM43xx devices. |
| 690 | |
| 691 | This firmware is not tested as much as the "stable" firmware. |
| 692 | |
| 693 | If unsure, select the "stable" firmware. |
| 694 | |
| 695 | config B43_OPENFIRMWARE |
| 696 | bool "Open FirmWare for WiFi networks" |
| 697 | help |
| 698 | Opensource firmware for BCM43xx devices. |
| 699 | |
| 700 | Do _not_ select this, unless you know what you are doing. |
| 701 | The Opensource firmware is not suitable for embedded devices, yet. |
| 702 | It does not support QoS, which is bad for AccessPoints. |
| 703 | It does not support hardware crypto acceleration, which is a showstopper |
| 704 | for embedded devices with low CPU resources. |
| 705 | |
| 706 | If unsure, select the "stable" firmware. |
| 707 | |
| 708 | endchoice |
| 709 | |
| 710 | config B43_FW_SQUASH |
| 711 | bool "Remove unnecessary firmware files" |
| 712 | depends on !B43_OPENFIRMWARE |
| 713 | default y |
| 714 | help |
| 715 | This options allows you to remove unnecessary b43 firmware files |
| 716 | from the final rootfs image. This can reduce the rootfs size by |
| 717 | up to 200k. |
| 718 | |
| 719 | If unsure, say Y. |
| 720 | |
| 721 | config B43_FW_SQUASH_COREREVS |
| 722 | string "Core revisions to include" |
| 723 | depends on B43_FW_SQUASH |
| 724 | default "5,6,7,8,9,10,13,14,15" |
| 725 | help |
| 726 | This is a comma seperated list of core revision numbers. |
| 727 | |
| 728 | Example (keep files for rev5 only): |
| 729 | 5 |
| 730 | |
| 731 | Example (keep files for rev5 and rev11): |
| 732 | 5,11 |
| 733 | |
| 734 | config B43_FW_SQUASH_PHYTYPES |
| 735 | string "PHY types to include" |
| 736 | depends on B43_FW_SQUASH |
| 737 | default "G,LP" |
| 738 | help |
| 739 | This is a comma seperated list of PHY types: |
| 740 | A => A-PHY |
| 741 | AG => Dual A-PHY G-PHY |
| 742 | G => G-PHY |
| 743 | LP => LP-PHY |
| 744 | N => N-PHY |
| 745 | |
| 746 | Example (keep files for G-PHY only): |
| 747 | G |
| 748 | |
| 749 | Example (keep files for G-PHY and N-PHY): |
| 750 | G,N |
| 751 | |
| 752 | endmenu |
| 753 | endef |
| 754 | |
| 755 | define KernelPackage/b43/description |
| 756 | Kernel module for Broadcom 43xx wireless support (mac80211 stack) new |
| 757 | endef |
| 758 | |
| 759 | define KernelPackage/b43legacy |
| 760 | $(call KernelPackage/b43-common) |
| 761 | TITLE:=Broadcom 43xx-legacy wireless support |
| 762 | FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43legacy/b43legacy.$(LINUX_KMOD_SUFFIX) |
| 763 | AUTOLOAD:=$(call AutoLoad,30,b43legacy) |
| 764 | MENU:=1 |
| 765 | endef |
| 766 | |
| 767 | define KernelPackage/b43legacy/config |
| 768 | menu "Configuration" |
| 769 | depends on PACKAGE_kmod-b43legacy |
| 770 | |
| 771 | config B43LEGACY_FW_SQUASH |
| 772 | bool "Remove unnecessary firmware files" |
| 773 | default y |
| 774 | help |
| 775 | This options allows you to remove unnecessary b43legacy firmware files |
| 776 | from the final rootfs image. This can reduce the rootfs size by |
| 777 | up to 50k. |
| 778 | |
| 779 | If unsure, say Y. |
| 780 | |
| 781 | config B43LEGACY_FW_SQUASH_COREREVS |
| 782 | string "Core revisions to include" |
| 783 | depends on B43LEGACY_FW_SQUASH |
| 784 | default "1,2,3,4" |
| 785 | help |
| 786 | This is a comma seperated list of core revision numbers. |
| 787 | |
| 788 | Example (keep files for rev4 only): |
| 789 | 4 |
| 790 | |
| 791 | Example (keep files for rev2 and rev4): |
| 792 | 2,4 |
| 793 | |
| 794 | endmenu |
| 795 | endef |
| 796 | |
| 797 | define KernelPackage/b43legacy/description |
| 798 | Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new |
| 799 | endef |
| 800 | |
| 801 | BUILDFLAGS:= \ |
| 802 | -I$(PKG_BUILD_DIR)/include \ |
| 803 | $(foreach opt,$(CONFOPTS),-DCONFIG_$(opt)) \ |
| 804 | $(if $(CONFIG_PCI),-DCONFIG_B43_PCI_AUTOSELECT -DCONFIG_B43_PCICORE_AUTOSELECT) \ |
| 805 | $(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS -DCONFIG_B43_LEDS -DCONFIG_B43LEGACY_LEDS -DCONFIG_AR9170_LEDS) \ |
| 806 | -DCONFIG_B43_HWRNG -DCONFIG_B43LEGACY_HWRNG \ |
| 807 | $(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),-DCONFIG_MAC80211_DEBUGFS -DCONFIG_ATH9K_DEBUGFS) \ |
| 808 | $(if $(CONFIG_PACKAGE_ATH_DEBUG),-DCONFIG_ATH_DEBUG -DCONFIG_ATH9K_PKTLOG) \ |
| 809 | -D__CONFIG_MAC80211_RC_DEFAULT=minstrel \ |
| 810 | -DCONFIG_MAC80211_RC_MINSTREL_HT \ |
| 811 | $(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD=1) \ |
| 812 | $(if $(CONFIG_PACKAGE_ATH9K_USE_MINSTREL),-DATH9K_USE_MINSTREL) \ |
| 813 | $(if $(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS),-DCONFIG_RT2X00_LIB_DEBUGFS) \ |
| 814 | $(if $(CONFIG_PACKAGE_RT2X00_DEBUG),-DCONFIG_RT2X00_DEBUG) \ |
| 815 | $(if $(NEED_RT2X00_LIB_HT),-DCONFIG_RT2X00_LIB_HT) \ |
| 816 | $(if $(NEED_RT2X00_LIB_CRYPTO),-DCONFIG_RT2X00_LIB_CRYPTO) \ |
| 817 | $(if $(NEED_RT2X00_LIB_FIRMWARE),-DCONFIG_RT2X00_LIB_FIRMWARE) \ |
| 818 | $(if $(NEED_RT2X00_LIB_LEDS),-DCONFIG_RT2X00_LIB_LEDS) \ |
| 819 | $(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),-DCONFIG_RT2X00_LIB_PCI) \ |
| 820 | $(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),-DCONFIG_RT2X00_LIB_USB) \ |
| 821 | $(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),-DCONFIG_RT2X00_LIB_SOC) \ |
| 822 | $(if $(CONFIG_PCI_SUPPORT),-DCONFIG_RT2800PCI_PCI) \ |
| 823 | $(if $(CONFIG_TARGET_ramips),-DCONFIG_RT2800PCI_SOC) \ |
| 824 | |
| 825 | MAKE_OPTS:= \ |
| 826 | CROSS_COMPILE="$(KERNEL_CROSS)" \ |
| 827 | ARCH="$(LINUX_KARCH)" \ |
| 828 | EXTRA_CFLAGS="$(BUILDFLAGS)" \ |
| 829 | $(foreach opt,$(CONFOPTS),CONFIG_$(opt)=m) \ |
| 830 | CONFIG_MAC80211=$(if $(CONFIG_PACKAGE_kmod-mac80211),m) \ |
| 831 | CONFIG_MAC80211_RC_MINSTREL=y \ |
| 832 | CONFIG_MAC80211_LEDS=$(CONFIG_LEDS_TRIGGERS) \ |
| 833 | CONFIG_MAC80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \ |
| 834 | CONFIG_B43_PCMCIA=n CONFIG_B43_PIO=n \ |
| 835 | CONFIG_B43_PCI_AUTOSELECT=$(if $(CONFIG_PCI),y) \ |
| 836 | CONFIG_B43_PCICORE_AUTOSELECT=$(if $(CONFIG_PCI),y) \ |
| 837 | CONFIG_B43LEGACY_LEDS=$(CONFIG_LEDS_TRIGGERS) \ |
| 838 | CONFIG_B43_LEDS=$(CONFIG_LEDS_TRIGGERS) \ |
| 839 | CONFIG_B43_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \ |
| 840 | CONFIG_B43LEGACY_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \ |
| 841 | CONFIG_B43=$(if $(CONFIG_PACKAGE_kmod-b43),m) \ |
| 842 | CONFIG_B43LEGACY=$(if $(CONFIG_PACKAGE_kmod-b43legacy),m) \ |
| 843 | CONFIG_ATH_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath),m) \ |
| 844 | CONFIG_ATH_DEBUG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \ |
| 845 | CONFIG_ATH9K_PKTLOG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \ |
| 846 | CONFIG_ATH5K=$(if $(CONFIG_PACKAGE_kmod-ath5k),m) \ |
| 847 | CONFIG_ATH9K=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \ |
| 848 | CONFIG_ATH9K_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \ |
| 849 | CONFIG_ZD1211RW=$(if $(CONFIG_PACKAGE_kmod-zd1211rw),m) \ |
| 850 | CONFIG_P54_COMMON=$(if $(CONFIG_PACKAGE_kmod-p54-common),m) \ |
| 851 | CONFIG_P54_PCI=$(if $(CONFIG_PACKAGE_kmod-p54-pci),m) \ |
| 852 | CONFIG_P54_USB=$(if $(CONFIG_PACKAGE_kmod-p54-usb),m) \ |
| 853 | CONFIG_P54_SPI= \ |
| 854 | CONFIG_RT2X00=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \ |
| 855 | CONFIG_RT2X00_LIB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \ |
| 856 | CONFIG_RT2X00_LIB_PCI=$(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),m) \ |
| 857 | CONFIG_RT2X00_LIB_USB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),m) \ |
| 858 | CONFIG_RT2X00_LIB_SOC=$(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),m) \ |
| 859 | CONFIG_RT2X00_LIB_DEBUGFS=$(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS) \ |
| 860 | CONFIG_RT2X00_LIB_CRYPTO=$(NEED_RT2X00_LIB_CRYPTO) \ |
| 861 | CONFIG_RT2X00_LIB_FIRMWARE=$(NEED_RT2X00_LIB_FIRMWARE) \ |
| 862 | CONFIG_RT2X00_LIB_HT=$(NEED_RT2X00_LIB_HT) \ |
| 863 | CONFIG_RT2X00_LIB_LEDS=$(NEED_RT2X00_LIB_LEDS) \ |
| 864 | CONFIG_RT2400PCI=$(if $(CONFIG_PACKAGE_kmod-rt2400-pci),m) \ |
| 865 | CONFIG_RT2500PCI=$(if $(CONFIG_PACKAGE_kmod-rt2500-pci),m) \ |
| 866 | CONFIG_RT2500USB=$(if $(CONFIG_PACKAGE_kmod-rt2500-usb),m) \ |
| 867 | CONFIG_RT61PCI=$(if $(CONFIG_PACKAGE_kmod-rt61-pci),m) \ |
| 868 | CONFIG_RT73USB=$(if $(CONFIG_PACKAGE_kmod-rt73-usb),m) \ |
| 869 | CONFIG_RT2800_LIB=$(if $(CONFIG_PACKAGE_kmod-rt2800-lib),m) \ |
| 870 | CONFIG_RT2800PCI=$(if $(CONFIG_PACKAGE_kmod-rt2800-pci),m) \ |
| 871 | CONFIG_RT2800PCI_PCI=$(if $(CONFIG_PCI_SUPPORT),y) \ |
| 872 | CONFIG_RT2800PCI_SOC=$(if $(CONFIG_TARGET_ramips),y) \ |
| 873 | CONFIG_RT2800USB=$(if $(CONFIG_PACKAGE_kmod-rt2800-usb),m) \ |
| 874 | CONFIG_RTL8180=$(if $(CONFIG_PACKAGE_kmod-rtl8180),m) \ |
| 875 | CONFIG_RTL8187=$(if $(CONFIG_PACKAGE_kmod-rtl8187),m) \ |
| 876 | CONFIG_MAC80211_HWSIM=$(if $(CONFIG_PACKAGE_kmod-mac80211-hwsim),m) \ |
| 877 | CONFIG_PCMCIA= \ |
| 878 | CONFIG_LIBIPW=$(if $(CONFIG_PACKAGE_kmod-net-libipw),m) \ |
| 879 | CONFIG_LIBERTAS=$(if $(CONFIG_PACKAGE_kmod-libertas-sd)$(CONFIG_PACKAGE_kmod-libertas-usb),m) \ |
| 880 | CONFIG_LIBERTAS_CS= \ |
| 881 | CONFIG_LIBERTAS_SPI= \ |
| 882 | CONFIG_LIBERTAS_SDIO=$(if $(CONFIG_PACKAGE_kmod-libertas-sd),m) \ |
| 883 | CONFIG_LIBERTAS_THINFIRM= \ |
| 884 | CONFIG_LIBERTAS_USB=$(if $(CONFIG_PACKAGE_kmod-libertas-usb),m) \ |
| 885 | CONFIG_IPW2100=$(if $(CONFIG_PACKAGE_kmod-net-ipw2100),m) \ |
| 886 | CONFIG_IPW2200=$(if $(CONFIG_PACKAGE_kmod-net-ipw2200),m) \ |
| 887 | CONFIG_NL80211=y \ |
| 888 | CONFIG_LIB80211= \ |
| 889 | CONFIG_LIB80211_CRYPT_WEP= \ |
| 890 | CONFIG_LIB80211_CRYPT_CCMP= \ |
| 891 | CONFIG_LIB80211_CRYPT_TKIP= \ |
| 892 | CONFIG_IWLWIFI= \ |
| 893 | CONFIG_IWLAGN= \ |
| 894 | CONFIG_MWL8K=$(if $(CONFIG_PACKAGE_kmod-mwl8k),m) \ |
| 895 | CONFIG_ATMEL= \ |
| 896 | CONFIG_PCMCIA_ATMEL= \ |
| 897 | CONFIG_ADM8211= \ |
| 898 | CONFIG_USB_NET_RNDIS_HOST= \ |
| 899 | CONFIG_USB_NET_RNDIS_WLAN= \ |
| 900 | CONFIG_USB_NET_CDCETHER= \ |
| 901 | CONFIG_USB_USBNET= \ |
| 902 | CONFIG_AT76C50X_USB= \ |
| 903 | CONFIG_WL12XX= \ |
| 904 | CONFIG_EEPROM_93CX6= \ |
| 905 | CONFIG_HERMES= \ |
| 906 | CONFIG_AR9170_USB=$(if $(CONFIG_PACKAGE_kmod-ar9170),m) \ |
| 907 | CONFIG_AR9170_LEDS=$(CONFIG_LEDS_TRIGGERS) \ |
| 908 | CONFIG_IWM= \ |
| 909 | CONFIG_ATH9K_HTC= \ |
| 910 | CONFIG_MAC80211_RC_MINSTREL_HT=y \ |
| 911 | MADWIFI= \ |
| 912 | OLD_IWL= \ |
| 913 | KLIB_BUILD="$(LINUX_DIR)" \ |
| 914 | MODPROBE=: \ |
| 915 | KLIB=$(TARGET_MODULES_DIR) \ |
| 916 | KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) |
| 917 | |
| 918 | define Build/Prepare |
| 919 | rm -rf $(PKG_BUILD_DIR) |
| 920 | mkdir -p $(PKG_BUILD_DIR) |
| 921 | $(PKG_UNPACK) |
| 922 | $(Build/Patch) |
| 923 | unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT61FW) |
| 924 | unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT71FW) |
| 925 | -unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT2860FW) |
| 926 | -unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT2870FW) |
| 927 | $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2100_NAME)-$(IPW2100_VERSION).tgz |
| 928 | $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION).tgz |
| 929 | $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2 |
| 930 | rm -rf $(PKG_BUILD_DIR)/include/linux/ssb |
| 931 | rm -f $(PKG_BUILD_DIR)/include/net/ieee80211.h |
| 932 | rm $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h |
| 933 | endef |
| 934 | |
| 935 | ifneq ($(CONFIG_PACKAGE_kmod-cfg80211),) |
| 936 | define Build/Compile/kmod |
| 937 | rm -rf $(PKG_BUILD_DIR)/modules |
| 938 | $(MAKE) -C "$(PKG_BUILD_DIR)" $(MAKE_OPTS) all |
| 939 | endef |
| 940 | endif |
| 941 | |
| 942 | define Build/Compile |
| 943 | $(call Build/Compile/kmod) |
| 944 | endef |
| 945 | |
| 946 | define Build/InstallDev |
| 947 | mkdir -p \ |
| 948 | $(1)/usr/include/mac80211 \ |
| 949 | $(1)/usr/include/mac80211/ath \ |
| 950 | $(1)/usr/include/net/mac80211 |
| 951 | $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/ |
| 952 | $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/ |
| 953 | $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/ |
| 954 | endef |
| 955 | |
| 956 | define KernelPackage/libertas-usb/install |
| 957 | $(INSTALL_DIR) $(1)/lib/firmware |
| 958 | $(INSTALL_DATA) $(DL_DIR)/$(USB8388FW_NAME)-$(USB8388FW_VERSION).bin $(1)/lib/firmware/$(USB8388FW_NAME).bin |
| 959 | endef |
| 960 | |
| 961 | define KernelPackage/libertas-sd/install |
| 962 | echo "Libertas install: $(CONFIG_PACKAGE_kmod-libertas-sd)" |
| 963 | $(INSTALL_DIR) $(1)/lib/firmware |
| 964 | $(INSTALL_DATA) $(DL_DIR)/$(SD8686FW_NAME)-$(SD8686FW_VERSION).bin $(1)/lib/firmware/$(SD8686FW_NAME).bin |
| 965 | $(INSTALL_DATA) $(DL_DIR)/$(SD8686HELPER_NAME).bin $(1)/lib/firmware/$(SD8686HELPER_NAME).bin |
| 966 | endef |
| 967 | |
| 968 | define KernelPackage/cfg80211/install |
| 969 | $(INSTALL_DIR) $(1)/lib/wifi |
| 970 | $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi |
| 971 | endef |
| 972 | |
| 973 | define KernelPackage/p54-pci/install |
| 974 | $(INSTALL_DIR) $(1)/lib/firmware |
| 975 | $(INSTALL_DATA) $(DL_DIR)/$(P54PCIFW) $(1)/lib/firmware/isl3886pci |
| 976 | endef |
| 977 | |
| 978 | define KernelPackage/p54-usb/install |
| 979 | $(INSTALL_DIR) $(1)/lib/firmware |
| 980 | $(INSTALL_DATA) $(DL_DIR)/$(P54USBFW) $(1)/lib/firmware/isl3887usb |
| 981 | endef |
| 982 | |
| 983 | define KernelPackage/rt61-pci/install |
| 984 | $(INSTALL_DIR) $(1)/lib/firmware |
| 985 | $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2?61*.bin $(1)/lib/firmware/ |
| 986 | endef |
| 987 | |
| 988 | define KernelPackage/rt73-usb/install |
| 989 | $(INSTALL_DIR) $(1)/lib/firmware |
| 990 | $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt73.bin $(1)/lib/firmware/ |
| 991 | endef |
| 992 | |
| 993 | define KernelPackage/rt2800-pci/install |
| 994 | $(INSTALL_DIR) $(1)/lib/firmware |
| 995 | $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2860.bin $(1)/lib/firmware/ |
| 996 | endef |
| 997 | |
| 998 | define KernelPackage/rt2800-usb/install |
| 999 | $(INSTALL_DIR) $(1)/lib/firmware |
| 1000 | $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2870.bin $(1)/lib/firmware/ |
| 1001 | endef |
| 1002 | |
| 1003 | define KernelPackage/zd1211rw/install |
| 1004 | $(INSTALL_DIR) $(1)/lib/firmware/zd1211 |
| 1005 | $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ZD1211FW_NAME)/zd1211* $(1)/lib/firmware/zd1211 |
| 1006 | endef |
| 1007 | |
| 1008 | define KernelPackage/ar9170/install |
| 1009 | $(INSTALL_DIR) $(1)/lib/firmware |
| 1010 | $(INSTALL_DATA) $(DL_DIR)/$(AR9170FW) $(1)/lib/firmware/ |
| 1011 | endef |
| 1012 | |
| 1013 | define KernelPackage/net-ipw2100/install |
| 1014 | $(INSTALL_DIR) $(1)/lib/firmware |
| 1015 | $(INSTALL_DATA) $(PKG_BUILD_DIR)/ipw2100-$(IPW2100_VERSION)*.fw $(1)/lib/firmware |
| 1016 | endef |
| 1017 | |
| 1018 | define KernelPackage/net-ipw2200/install |
| 1019 | $(INSTALL_DIR) $(1)/lib/firmware |
| 1020 | $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION)/ipw2200*.fw $(1)/lib/firmware |
| 1021 | endef |
| 1022 | |
| 1023 | define Build/b43-common |
| 1024 | tar xjf "$(DL_DIR)/$(PKG_B43_FWCUTTER_SOURCE)" -C "$(PKG_BUILD_DIR)" |
| 1025 | $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)" \ |
| 1026 | CFLAGS="-I$(STAGING_DIR_HOST)/include -include endian.h" \ |
| 1027 | QUIET_SPARSE=: |
| 1028 | $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)/b43-fwcutter $(STAGING_DIR_HOST)/bin/ |
| 1029 | ifeq ($(CONFIG_B43_OPENFIRMWARE),y) |
| 1030 | $(INSTALL_DIR) $(STAGING_DIR_HOST)/bin/ |
| 1031 | $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/" |
| 1032 | $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm $(STAGING_DIR_HOST)/bin/ |
| 1033 | $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm.bin $(STAGING_DIR_HOST)/bin/ |
| 1034 | endif |
| 1035 | $(INSTALL_BIN) ./files/host_bin/b43-fwsquash.py $(STAGING_DIR_HOST)/bin/ |
| 1036 | endef |
| 1037 | |
| 1038 | define KernelPackage/b43/install |
| 1039 | rm -rf $(1)/lib/firmware/ |
| 1040 | $(call Build/b43-common) |
| 1041 | ifeq ($(CONFIG_B43_OPENFIRMWARE),y) |
| 1042 | tar xzf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)" |
| 1043 | else |
| 1044 | tar xjf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)" |
| 1045 | endif |
| 1046 | $(INSTALL_DIR) $(1)/lib/firmware/ |
| 1047 | ifeq ($(CONFIG_B43_OPENFIRMWARE),y) |
| 1048 | $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/" |
| 1049 | $(INSTALL_DIR) $(1)/lib/firmware/b43-open/ |
| 1050 | $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/ucode5.fw $(1)/lib/firmware/b43-open/ucode5.fw |
| 1051 | $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0bsinitvals5.fw $(1)/lib/firmware/b43-open/b0g0bsinitvals5.fw |
| 1052 | $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0initvals5.fw $(1)/lib/firmware/b43-open/b0g0initvals5.fw |
| 1053 | else |
| 1054 | b43-fwcutter -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT) |
| 1055 | endif |
| 1056 | ifneq ($(CONFIG_B43_FW_SQUASH),) |
| 1057 | b43-fwsquash.py "$(CONFIG_B43_FW_SQUASH_PHYTYPES)" "$(CONFIG_B43_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43" |
| 1058 | endif |
| 1059 | endef |
| 1060 | |
| 1061 | define KernelPackage/b43legacy/install |
| 1062 | $(call Build/b43-common) |
| 1063 | $(INSTALL_DIR) $(1)/lib/firmware/ |
| 1064 | |
| 1065 | b43-fwcutter --unsupported -w $(1)/lib/firmware/ $(DL_DIR)/$(PKG_B43_FWV3_SOURCE) |
| 1066 | ifneq ($(CONFIG_B43LEGACY_FW_SQUASH),) |
| 1067 | b43-fwsquash.py "G" "$(CONFIG_B43LEGACY_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43legacy" |
| 1068 | endif |
| 1069 | endef |
| 1070 | |
| 1071 | $(eval $(call KernelPackage,ath5k)) |
| 1072 | $(eval $(call KernelPackage,libertas-usb)) |
| 1073 | $(eval $(call KernelPackage,libertas-sd)) |
| 1074 | $(eval $(call KernelPackage,cfg80211)) |
| 1075 | $(eval $(call KernelPackage,mac80211)) |
| 1076 | $(eval $(call KernelPackage,p54-common)) |
| 1077 | $(eval $(call KernelPackage,p54-pci)) |
| 1078 | $(eval $(call KernelPackage,p54-usb)) |
| 1079 | $(eval $(call KernelPackage,rt2x00-lib)) |
| 1080 | $(eval $(call KernelPackage,rt2x00-pci)) |
| 1081 | $(eval $(call KernelPackage,rt2x00-usb)) |
| 1082 | $(eval $(call KernelPackage,rt2x00-soc)) |
| 1083 | $(eval $(call KernelPackage,rt2800-lib)) |
| 1084 | $(eval $(call KernelPackage,rt2400-pci)) |
| 1085 | $(eval $(call KernelPackage,rt2500-pci)) |
| 1086 | $(eval $(call KernelPackage,rt2500-usb)) |
| 1087 | $(eval $(call KernelPackage,rt61-pci)) |
| 1088 | $(eval $(call KernelPackage,rt73-usb)) |
| 1089 | $(eval $(call KernelPackage,rt2800-pci)) |
| 1090 | $(eval $(call KernelPackage,rt2800-usb)) |
| 1091 | $(eval $(call KernelPackage,rtl8180)) |
| 1092 | $(eval $(call KernelPackage,rtl8187)) |
| 1093 | $(eval $(call KernelPackage,zd1211rw)) |
| 1094 | $(eval $(call KernelPackage,mac80211-hwsim)) |
| 1095 | $(eval $(call KernelPackage,ath9k)) |
| 1096 | $(eval $(call KernelPackage,ath)) |
| 1097 | $(eval $(call KernelPackage,ar9170)) |
| 1098 | $(eval $(call KernelPackage,b43)) |
| 1099 | $(eval $(call KernelPackage,b43legacy)) |
| 1100 | $(eval $(call KernelPackage,net-libipw)) |
| 1101 | $(eval $(call KernelPackage,net-ipw2100)) |
| 1102 | $(eval $(call KernelPackage,net-ipw2200)) |
| 1103 | $(eval $(call KernelPackage,mwl8k)) |
| 1104 | |