From: Felix Fietkau Date: Sun, 1 Jun 2008 03:00:32 +0000 (+0000) Subject: madwifi: update to sam leffler's latest hal X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;h=49c4c4216c6d9237be6b4f4e1b07035dd50f1570;hp=6da7d939b0b82eef1834749b884978c903382000 madwifi: update to sam leffler's latest hal fixes LED on wisoc fixes rx sensitivity issues improves throughput on all cards/devices enhances link stability SVN-Revision: 11314 --- diff --git a/package/madwifi/Config.in b/package/madwifi/Config.in index d2bc4e0bb2..ab24a8e2f1 100644 --- a/package/madwifi/Config.in +++ b/package/madwifi/Config.in @@ -5,87 +5,6 @@ config MADWIFI_DEBUG depends on EXPERIMENTAL default n -choice - prompt "Bus selection" - default MADWIFI_BUS_DEFAULT - help - This option controls how MadWifi communicates with the hardware. - -config MADWIFI_BUS_DEFAULT - bool "Use default bus" - help - This makes MadWifi determine the needed bus based on the target - hardware. This will generally work most of the time, but there are some - cases where you need to override it. - -config MADWIFI_BUS_PCI - bool "Use PCI bus" - depends on PCI_SUPPORT - -config MADWIFI_BUS_AHB - bool "Use AHB bus" - depends on TARGET_atheros - -endchoice - -choice - prompt "HAL selection" - default MADWIFI_HAL_DEFAULT - help - This option controls how MadWifi communicates with the hardware. - -config MADWIFI_HAL_DEFAULT - bool "Use default HAL" - help - This makes MadWifi determine the needed HAL based on the target - hardware. This will generally work most of the time, but there are some - cases where you need to override it. - -config MADWIFI_HAL_MIPS_BE_ELF - bool "Use MIPS big endian ELF HAL" - depends on mips - depends on BIG_ENDIAN - -config MADWIFI_HAL_MIPS_LE_ELF - bool "Use MIPS little endian ELF HAL" - depends on mips - depends on !BIG_ENDIAN - -config MADWIFI_HAL_I386_ELF - bool "Use i386 ELF HAL" - depends on TARGET_x86 - -config MADWIFI_HAL_XSCALE_BE_ELF - bool "Use XScale big endian ELF HAL" - depends TARGET_ixp4xx - depends on BIG_ENDIAN - -config MADWIFI_HAL_XSCALE_LE_ELF - bool "Use XScale little endian ELF HAL" - depends TARGET_iop32x - depends on !BIG_ENDIAN - -config MADWIFI_HAL_ARMV4_LE_ELF - bool "Use ARMV4 little endian ELF HAL" - depends TARGET_storm - depends on !BIG_ENDIAN - -config MADWIFI_HAL_AP30 - bool "Use AP30 HAL" - depends on TARGET_atheros - -config MADWIFI_HAL_AP43 - bool "Use AP43 HAL" - depends on TARGET_atheros - -config MADWIFI_HAL_AP51 - bool "Use AP51 HAL" - depends on TARGET_atheros - -config MADWIFI_HAL_AP61 - bool "Use AP61 HAL" - depends on TARGET_atheros - endchoice choice diff --git a/package/madwifi/Makefile b/package/madwifi/Makefile index 09995e0c41..8d11cf1c9a 100644 --- a/package/madwifi/Makefile +++ b/package/madwifi/Makefile @@ -25,98 +25,45 @@ PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(if $(PKG_BRANCH),$(PKG_BRANCH),madwifi-trun include $(INCLUDE_DIR)/package.mk -ifdef CONFIG_MADWIFI_BUS_DEFAULT - ifneq ($(CONFIG_TARGET_atheros),) - BUS:=AHB - else - ifneq ($(CONFIG_PCI_SUPPORT),) - BUS:=PCI - endif - endif - - # XXX: remove this check later when we have PCI support properly detected on all targets - ifneq ($(CONFIG_TARGET_ar7)$(CONFIG_TARGET_uml),) - BUS:= - endif +ifneq ($(CONFIG_TARGET_atheros),) + BUS:=AHB else - ifdef CONFIG_MADWIFI_BUS_PCI + ifneq ($(CONFIG_PCI_SUPPORT),) BUS:=PCI - else - ifdef CONFIG_MADWIFI_BUS_AHB - BUS:=AHB - endif endif endif -ifdef CONFIG_MADWIFI_HAL_DEFAULT - ifeq ($(ARCH),mips) - HAL_TARGET:=mips-be-elf - endif - ifeq ($(ARCH),mipsel) - HAL_TARGET:=mips-le-elf - endif - ifeq ($(ARCH),i386) - HAL_TARGET:=i386-elf - endif - ifeq ($(ARCH),i686) - HAL_TARGET:=i386-elf - endif - ifeq ($(BOARD),ixp4xx) - HAL_TARGET:=xscale-be-elf - endif - ifeq ($(BOARD),iop32x) - HAL_TARGET:=xscale-le-elf - endif - ifeq ($(ARCH),powerpc) - HAL_TARGET:=powerpc-be-elf - endif - ifeq ($(BOARD),storm) - HAL_TARGET:=armv4-le-elf - endif - ifneq ($(CONFIG_TARGET_atheros),) - HAL_TARGET:=ap51 - endif -else - ifdef CONFIG_MADWIFI_HAL_MIPS_BE_ELF - HAL_TARGET:=mips-be-elf - endif - - ifdef CONFIG_MADWIFI_HAL_MIPS_LE_ELF - HAL_TARGET:=mips-le-elf - endif - - ifdef CONFIG_MADWIFI_HAL_I386_ELF - HAL_TARGET:=i386-elf - endif - - ifdef CONFIG_MADWIFI_HAL_XSCALE_BE_ELF - HAL_TARGET:=xscale-be-elf - endif - - ifdef CONFIG_MADWIFI_HAL_XSCALE_LE_ELF - HAL_TARGET:=xscale-le-elf - endif - - ifdef CONFIG_MADWIFI_HAL_ARMV4_LE_ELF - HAL_TARGET:=armv4-le-elf - endif - - ifdef CONFIG_MADWIFI_HAL_AP30 - HAL_TARGET:=ap30 - endif - - ifdef CONFIG_MADWIFI_HAL_AP43 - HAL_TARGET:=ap43 - endif - - ifdef CONFIG_MADWIFI_HAL_AP51 - HAL_TARGET:=ap51 - endif - - ifdef CONFIG_MADWIFI_HAL_AP61 - HAL_TARGET:=ap61 - endif +# XXX: remove this check later when we have PCI support properly detected on all targets +ifneq ($(CONFIG_TARGET_ar7)$(CONFIG_TARGET_uml),) + BUS:= +endif +ifeq ($(ARCH),mips) + HAL_TARGET:=mips-be-elf +endif +ifeq ($(ARCH),mipsel) + HAL_TARGET:=mips-le-elf +endif +ifeq ($(ARCH),i386) + HAL_TARGET:=i386-elf +endif +ifeq ($(ARCH),i686) + HAL_TARGET:=i386-elf +endif +ifeq ($(BOARD),ixp4xx) + HAL_TARGET:=xscale-be-elf +endif +ifeq ($(BOARD),iop32x) + HAL_TARGET:=xscale-le-elf +endif +ifeq ($(ARCH),powerpc) + HAL_TARGET:=powerpc-be-elf +endif +ifeq ($(BOARD),storm) + HAL_TARGET:=armv4-le-elf +endif +ifneq ($(CONFIG_TARGET_atheros),) + HAL_TARGET:=wisoc endif ifdef CONFIG_MADWIFI_RCA_MINSTREL @@ -206,10 +153,10 @@ MAKE_ARGS:= \ ATH_RATE="ath_rate/$(RATE_CONTROL)" \ WARNINGS="-Wno-unused" \ $(if $(CONFIG_MADWIFI_DEBUG),,DEBUG="") \ - DOMULTI=1 + DO_MULTI=1 MAKE_VARS:= \ - COPTS="-DCONFIG_ATHEROS_RATE_DEFAULT='\"$(RATE_CONTROL)\"'" \ + COPTS="-DCONFIG_ATHEROS_RATE_DEFAULT='\"$(RATE_CONTROL)\"' -DATH_REVERSE_ENGINEERING=1" \ HALFILE:=$(lastword $(sort $(wildcard ./ath_hal-*.tgz))) ifneq ($(HALFILE),) @@ -220,6 +167,12 @@ ifneq ($(HALFILE),) tar xvzf $(HALFILE) -C $(PKG_BUILD_DIR)/tmp $(CP) $(PKG_BUILD_DIR)/tmp/ath_hal*/* $(PKG_BUILD_DIR)/hal/ rm -rf $(PKG_BUILD_DIR)/tmp + # patch cflags + $(SED) 's, -E[LB],,' \ + -e 's, -mapcs-32,,' \ + $(PKG_BUILD_DIR)/hal/public/*.inc + $(SED) 's,march=armv4,march=armv5te,' \ + $(PKG_BUILD_DIR)/hal/public/xscale*.inc endef endif diff --git a/package/madwifi/ath_hal-20080528.tgz b/package/madwifi/ath_hal-20080528.tgz new file mode 100644 index 0000000000..3f077f6af4 Binary files /dev/null and b/package/madwifi/ath_hal-20080528.tgz differ diff --git a/package/madwifi/patches/100-kernel_cflags.patch b/package/madwifi/patches/100-kernel_cflags.patch deleted file mode 100644 index 9c82d6e125..0000000000 --- a/package/madwifi/patches/100-kernel_cflags.patch +++ /dev/null @@ -1,43 +0,0 @@ -Index: madwifi-trunk-r3314/hal/public/mips-be-elf.inc -=================================================================== ---- madwifi-trunk-r3314.orig/hal/public/mips-be-elf.inc 2008-02-20 18:10:46.339155111 +0100 -+++ madwifi-trunk-r3314/hal/public/mips-be-elf.inc 2008-02-20 18:10:46.439160810 +0100 -@@ -71,5 +71,5 @@ - - LDOPTS= -EB - COPTS+= -DAH_BYTE_ORDER=AH_BIG_ENDIAN --COPTS+= -G 0 -EB -mno-abicalls -fno-pic -mips2 -Wa,--trap \ -+COPTS+= -G 0 -mno-abicalls -fno-pic -mips32 -Wa,--trap \ - -fno-strict-aliasing -fno-common -fomit-frame-pointer -mlong-calls -Index: madwifi-trunk-r3314/hal/public/mips-le-elf.inc -=================================================================== ---- madwifi-trunk-r3314.orig/hal/public/mips-le-elf.inc 2008-02-20 18:10:46.347155567 +0100 -+++ madwifi-trunk-r3314/hal/public/mips-le-elf.inc 2008-02-20 18:10:46.443161036 +0100 -@@ -68,5 +68,5 @@ - - LDOPTS= -EL - COPTS+= -DAH_BYTE_ORDER=AH_LITTLE_ENDIAN --COPTS+= -G 0 -EL -mno-abicalls -fno-pic -mips2 -Wa,--trap \ -+COPTS+= -G 0 -mno-abicalls -fno-pic -mips32 -Wa,--trap \ - -fno-strict-aliasing -fno-common -fomit-frame-pointer -mlong-calls -Index: madwifi-trunk-r3314/hal/public/xscale-be-elf.inc -=================================================================== ---- madwifi-trunk-r3314.orig/hal/public/xscale-be-elf.inc 2008-02-20 18:10:46.351155793 +0100 -+++ madwifi-trunk-r3314/hal/public/xscale-be-elf.inc 2008-02-20 18:10:46.451161492 +0100 -@@ -77,5 +77,5 @@ - - LDOPTS= -EB - COPTS+= -DAH_BYTE_ORDER=AH_BIG_ENDIAN --COPTS+= -march=armv4 -mbig-endian -fno-strict-aliasing -fno-common -mapcs-32 \ -+COPTS+= -march=armv5te -mbig-endian -fno-strict-aliasing -fno-common \ - -mtune=xscale -mshort-load-bytes -Index: madwifi-trunk-r3314/hal/public/xscale-le-elf.inc -=================================================================== ---- madwifi-trunk-r3314.orig/hal/public/xscale-le-elf.inc 2008-02-20 18:10:46.363156477 +0100 -+++ madwifi-trunk-r3314/hal/public/xscale-le-elf.inc 2008-02-20 18:10:46.455161721 +0100 -@@ -79,4 +79,4 @@ - LDOPTS= -EL - COPTS+= -DAH_BYTE_ORDER=AH_LITTLE_ENDIAN - COPTS+= -march=armv4 -mlittle-endian -fno-strict-aliasing -fno-common \ -- -mapcs-32 -mtune=xscale -mshort-load-bytes -+ -mtune=xscale -mshort-load-bytes diff --git a/package/madwifi/patches/328-ani_stuff.patch b/package/madwifi/patches/328-ani_stuff.patch deleted file mode 100644 index 32fa89d6f3..0000000000 --- a/package/madwifi/patches/328-ani_stuff.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: madwifi-trunk-r3314/ath/if_ath.c -=================================================================== ---- madwifi-trunk-r3314.orig/ath/if_ath.c 2008-03-07 00:38:26.748463672 +0100 -+++ madwifi-trunk-r3314/ath/if_ath.c 2008-03-07 00:38:51.285861974 +0100 -@@ -6753,8 +6753,9 @@ - dev->quota -= processed; - #endif - -- /* rx signal state monitoring */ -- ath_hal_rxmonitor(ah, &sc->sc_halstats, &sc->sc_curchan); -+ /* rx signal state monitoring, only necessary/applicable for sta mode */ -+ if (sc->sc_opmode == HAL_M_STA) -+ ath_hal_rxmonitor(ah, &sc->sc_halstats, &sc->sc_curchan); - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) - return processed; - #else diff --git a/package/madwifi/patches/349-reset.patch b/package/madwifi/patches/349-reset.patch new file mode 100644 index 0000000000..9c8014055c --- /dev/null +++ b/package/madwifi/patches/349-reset.patch @@ -0,0 +1,23 @@ +Index: madwifi-trunk-r3314/ath/if_ath.c +=================================================================== +--- madwifi-trunk-r3314.orig/ath/if_ath.c 2008-04-09 02:58:41.000000000 +0200 ++++ madwifi-trunk-r3314/ath/if_ath.c 2008-04-09 02:59:40.000000000 +0200 +@@ -2479,7 +2479,7 @@ + */ + sc->sc_curchan.channel = ic->ic_curchan->ic_freq; + sc->sc_curchan.channelFlags = ath_chan2flags(ic->ic_curchan); +- if (!ath_hal_reset(ah, sc->sc_opmode, &sc->sc_curchan, AH_FALSE, &status)) { ++ if (!ath_hal_reset(ah, sc->sc_opmode, &sc->sc_curchan, AH_TRUE, &status)) { + EPRINTF(sc, "unable to reset hardware: '%s' (HAL status %u) " + "(freq %u flags 0x%x)\n", + ath_get_hal_status_desc(status), status, +@@ -8865,8 +8865,7 @@ + * needed to do the reset with chanchange = AH_FALSE in order + * to receive traffic when peforming high velocity channel + * changes. */ +- if (!ath_hal_reset(ah, sc->sc_opmode, &hchan, AH_TRUE, &status) || +- !ath_hal_reset(ah, sc->sc_opmode, &hchan, AH_FALSE, &status)) { ++ if (!ath_hal_reset(ah, sc->sc_opmode, &hchan, AH_TRUE, &status)) { + EPRINTF(sc, "Unable to reset channel %u (%u MHz) " + "flags 0x%x '%s' (HAL status %u)\n", + ieee80211_chan2ieee(ic, chan), chan->ic_freq, diff --git a/package/madwifi/patches/350-wisoc_softled.patch b/package/madwifi/patches/350-wisoc_softled.patch new file mode 100644 index 0000000000..d22ee60924 --- /dev/null +++ b/package/madwifi/patches/350-wisoc_softled.patch @@ -0,0 +1,13 @@ +Index: madwifi-trunk-r3314/ath/if_ath_ahb.c +=================================================================== +--- madwifi-trunk-r3314.orig/ath/if_ath_ahb.c 2008-03-07 11:40:44.967178082 +0100 ++++ madwifi-trunk-r3314/ath/if_ath_ahb.c 2008-03-07 11:40:47.763337418 +0100 +@@ -245,6 +245,8 @@ + num_activesc++; + /* Ready to process interrupts */ + ++ sc->aps_sc.sc_softled = 1; /* SoftLED over GPIO */ ++ sc->aps_sc.sc_ledpin = config->board->sysLedGpio; + sc->aps_sc.sc_invalid = 0; + return 0; +