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
This commit is contained in:
Felix Fietkau 2008-06-01 03:00:32 +00:00
parent 3e0c844379
commit 17a7cfb3a7
7 changed files with 77 additions and 228 deletions

View file

@ -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

View file

@ -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

Binary file not shown.

View file

@ -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

View file

@ -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

View file

@ -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,

View file

@ -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;