This is an Adaptive Noise Imunity (ANI) implementation for ath5k. I have looked
at both ath9k and HAL sources (they are nearly the same), and even though i
have implemented some things differently, the basic algorithm is practically
the same, for now. I hope that this can serve as a clean start to
Chipsets since revision AR5213A (0x59) have hardware counters for PHY errors
which we can read directly from the registers. Older hardware has to use the RX
descriptor status to get a count of PHY errors. This will be used in several
places in the ANI implementation, so a flag is useful.
Signed-of
Update PHY error codes from the HAL, and keep them in statistics for debugging
via the 'frameerrors' file. This will also be used by ANI.
Signed-off-by: Bruno Randolf
---
drivers/net/wireless/ath/ath5k/base.c |2 ++
drivers/net/wireless/ath/ath5k/base.h |1 +
drivers/net/wireless/ath/a
Let's keep MIB counter statistics in our own statistics structure and only
convert it to ieee80211_low_level_stats when needed by mac80211. Also we don't
need to read profile count registers in the MIB interrupt (they don't trigger
MIB interrupts).
Signed-off-by: Bruno Randolf
---
drivers/net/wi
Initialize noise floor variable with a default of -95. This was used
uninitialized in the signal strength (RSSI -> dBm) conversion until the first
noise floor calibration was completed.
Signed-off-by: Bruno Randolf
---
drivers/net/wireless/ath/ath5k/attach.c |1 +
1 files changed, 1 insertio
Keep an exponentially weighted moving average of the beacon RSSI in our BSS.
It will be used by the ANI implementation.
The averaging algorithm is copied from rt2x00, Thanks :)
Signed-off-by: Bruno Randolf
---
drivers/net/wireless/ath/ath5k/ath5k.h | 35
drive
From: Bruno Randolf
It's not a phy related funtion; It has more to do with the interrupt handler
and tasklet scheduling, so it belongs to base.c.
Signed-off-by: Bruno Randolf
---
drivers/net/wireless/ath/ath5k/ath5k.h |1 -
drivers/net/wireless/ath/ath5k/base.c | 15 ++-
dri
Optimize ath5k_hw_calibration_poll() since it is called on every singe
interrupt.
Signed-off-by: Bruno Randolf
---
drivers/net/wireless/ath/ath5k/ath5k.h |2 +-
drivers/net/wireless/ath/ath5k/phy.c | 20 ++--
2 files changed, 7 insertions(+), 15 deletions(-)
diff --git a
We don't need to generate a software interrupt (SWI) just to schedule a tasklet
- we can just schedule the tasklet directly.
Rename constants, names, etc to reflect the fact that we don't use SWI any more.
Also move the flag handling into the tasklet and prepare it to behave correctly
when there
Remove static variable ath5k_calinterval which was used as a constant. Use a
#define instead. Also we don't need ah_cal_intval.
Signed-off-by: Bruno Randolf
---
drivers/net/wireless/ath/ath5k/ath5k.h |4 +---
drivers/net/wireless/ath/ath5k/base.c |4
drivers/net/wireless/ath/ath5k/
This is ANI for ath5k. I have looked ath both the HAL and ath9k sources, while
implementing this, so the basic algorithm is the same. A notable difference is
that i do everything in a tasklet, while ath9k and HAL do larger parts in the
interrupt handler. Also i have only one routine for raising imm
On Wed, Mar 24, 2010 at 12:22 AM, Pavel Roskin wrote:
> On Wed, 2010-03-24 at 13:12 +0900, Bruno Randolf wrote:
>> On Wednesday 24 March 2010 13:01:15 Pavel Roskin wrote:
>> > AR5210 doesn't seem to send or receive any packets with the current
>> > ath5k. Yet it works (somewhat) with MadWifi. Pe
Bob,
a recent wireless-testing kernel with both of your patches from Kernel Bug
#14342 run for two days now without the failed reset error message.
However, different from my previous tries I did not include Bruno's ANI
patch, so the success might be either because of your patchset or the
omission
13 matches
Mail list logo