From: Luis R. Rodriguez <lrodriguez@atheros.com>
To: ath9k-devel@lists.ath9k.org
Subject: [ath9k-devel] AR9280 - OFDM RX errors?
Date: Tue, 8 Feb 2011 10:22:43 -0800 [thread overview]
Message-ID: <20110208182243.GA1843@tux> (raw)
In-Reply-To: <AANLkTi=SMJ3-GGfVsVC7JNAON72D890Hj2UEYbbosJ=j@mail.gmail.com>
On Mon, Feb 07, 2011 at 11:56:02PM -0800, Adrian Chadd wrote:
> On 8 February 2011 10:51, Brian Prodoehl <bprodoehl@gmail.com> wrote:
>
> > You may want to look into adding some rough ANI, following the "new"
> > ANI routines in ath9k. ?Normally when the OFDM or CCK error rate rises
> > above a certain level (maybe 200 errors/second), the driver will bump
> > up a few interference mitigation parameters. ?Are you successfully
> > performing noise floor calibration? ?I'm not sure on the OFDM timing
> > error, in particular, so maybe someone can shed some light on that
> > one.
>
> I'll take another look at the "new" ANI routines and see how they
> differ from the old ones. (I guess I should also re-read the patent
> doc which covers the old ANI implementation.)
>
> Ok, I've just re-read the patent and I'm looking at the "new" ANI
> code. The new ANI code seems to be a lot like the old ANI code,
> except:
>
> * it doesn't use hard-coded ANI tables;
> * ANI operations become "optional" in some cases;
> * it caches some of the register values (AR_PHY_SFCORR,
> AR_PHY_SFCORR_LOW, AR_PHY_SFCORR_EXT, AR_PHY_FIND_SIG,
> AR_PHY_FIND_SIG_LOW, AR_PHY_TIMING5, AR_PHY_EXT_CCA) at startup;
> * It modifies (some) of the ANI parameters relative to the cached
> register values, rather than writing absolute values to the hardware.
>
> Does this about summarise it?
git log is a treasure chest:
commit e36b27aff1b10c81c53990b28da4ab6ab0ed0761
Author: Luis R. Rodriguez <lrodriguez@atheros.com>
Date: Sat Jun 12 00:33:45 2010 -0400
ath9k: add new ANI implementation for AR9003
This adds support for ANI for AR9003. The implementation for
ANI for AR9003 is slightly different than the one used for
the older chipset families. It can technically be used for
the older families as well but this is not yet fully tested
so we only enable the new ANI for the AR5008, AR9001 and AR9002
families with a module parameter, force_new_ani.
The old ANI implementation is left intact.
Details of the new ANI implemention:
* ANI adjustment logic is now table driven so that each ANI level
setting is parameterized. This makes adjustments much more
deterministic than the old procedure based logic and allows
adjustments to be made incrementally to several parameters per
level.
* ANI register settings are now relative to INI values; so ANI
param zero level == INI value. Appropriate floor and ceiling
values are obeyed when adjustments are combined with INI values.
* ANI processing is done once per second rather that every 100ms.
The poll interval is now a set upon hardware initialization and
can be picked up by the core driver.
* OFDM error and CCK error processing are made in a round robin
fashion rather than allowing all OFDM adjustments to be made
before CCK adjustments.
* ANI adjusts MRC CCK off in the presence of high CCK errors
* When adjusting spur immunity (SI) and OFDM weak signal detection,
ANI now sets register values for the extension channel too
* When adjusting FIR step (ST), ANI now sets register for FIR step
low too
* FIR step adjustments now allow for an extra level of immunity for
extremely noisy environments
* The old Noise immunity setting (NI), which changes coarse low, size
desired, etc have been removed. Changing these settings could affect
up RIFS RX as well.
* CCK weak signal adjustment is no longer used
* ANI no longer enables phy error interrupts; in all cases phy hw
counting registers are used instead
* The phy error count (overflow) interrupts are also no longer used
for ANI adjustments. All ANI adjustments are made via the polling
routine and no adjustments are possible in the ISR context anymore
* A history settings buffer is now correctly used for each channel;
channel settings are initialized with the defaults but later
changes are restored when returning back to that channel
* When scanning, ANI is disabled settings are returned to (INI) defaults.
* OFDM phy error thresholds are now 400 & 1000 (errors/second units) for
low/high water marks, providing increased stability/hysteresis when
changing levels.
* Similarly CCK phy error thresholds are now 300 & 600 (errors/second)
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
I'll also say that our goal is to eventually get ANI v2 tested with non-AR9003
cards but due to lack of time we have not been able to do full system testing
on it, users however can test it by using the module parameter force_new_ani=1
on the ath9k_hw module.
Luis
next prev parent reply other threads:[~2011-02-08 18:22 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-07 22:10 [ath9k-devel] AR9280 - OFDM RX errors? Adrian Chadd
2011-02-08 2:51 ` Brian Prodoehl
2011-02-08 7:56 ` Adrian Chadd
2011-02-08 18:22 ` Luis R. Rodriguez [this message]
2011-02-08 19:01 ` Adrian Chadd
2011-02-09 17:33 ` Adrian Chadd
2011-02-08 13:15 ` Adrian Chadd
2012-09-20 12:55 ` Deep Shah
2012-09-20 21:33 ` Adrian Chadd
2012-09-21 6:28 ` Deep Shah
2012-09-24 12:19 ` Deep Shah
2012-09-21 11:33 ` Deep Shah
2012-09-22 8:30 ` Adrian Chadd
2012-09-24 12:16 ` Deep Shah
2012-09-24 18:19 ` Deep Shah
2012-09-25 15:34 ` Adrian Chadd
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110208182243.GA1843@tux \
--to=lrodriguez@atheros.com \
--cc=ath9k-devel@lists.ath9k.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.