From: Bruno Randolf <br1@einfach.org>
To: ath5k-devel@lists.ath5k.org
Cc: Jonathan Guerin <jonathan@guerin.id.au>,
"linux-wireless" <linux-wireless@vger.kernel.org>,
Nick Kossifidis <mickflemm@gmail.com>
Subject: Re: [ath5k-devel] [ath5k] Incorrect value for ACK_TIMEOUT
Date: Wed, 15 Sep 2010 11:30:15 +0900 [thread overview]
Message-ID: <201009151130.15165.br1@einfach.org> (raw)
In-Reply-To: <AANLkTim+Q773KvA7Et1s2Zf8yMx36RGS2LsoJsX1Wtt9@mail.gmail.com>
On Wed September 15 2010 10:56:32 Jonathan Guerin wrote:
> According to the 802.11-2007 spec document, the ACKTimeout value is
> (Section 9.2.8 ACK procedure):
> ACKTimeout = aSIFSTime + aSlotTime + aPHY-RX-START-Delay
>
> >From Table 17-15—OFDM PHY characteristics, the values are:
> aSIFSTime = 16
> aSlotTime = 9
> aPHY-RX-START-Delay = 25
>
> Therefore, ACKTimeout = 50
>
> In the driver source, this appears to be initialised to:
>
> $$ ath5k.h
> #define AR5K_INIT_ACK_CTS_TIMEOUT 1024
>
> $$ reg.h
> /*
> * ACK/CTS timeout register
> */
> #define AR5K_TIME_OUT 0x8014 /* Register Address */
> #define AR5K_TIME_OUT_ACK 0x00001fff /* ACK timeout mask */
> #define AR5K_TIME_OUT_ACK_S 0
> #define AR5K_TIME_OUT_CTS 0x1fff0000 /* CTS timeout mask */
> #define AR5K_TIME_OUT_CTS_S 16
>
> Taking the value of the register (1024), masking it with the ACK
> Timeout Mask (0x1fff) and dividing it by the clock rate (40), we get a
> much smaller ACK Timeout value:
> 1024 & 0x1fff = 1024
> 1024/40 = 25us
>
>
> Am I understanding this right? Is the driver actually setting the ACK
> Timeout to be much smaller than even a DIFS, let alone matching the
> spec?
>
thanks for looking into this! i think you are right in that there is a mistake
here, but AR5K_INIT_ACK_CTS_TIMEOUT is just used for AR5210 chips for setting
the AR5K_SLOT_TIME. so this is wrong, but it probably does not affect you (or
many people). 5211 and 5212 only use initvals:
/* a aTurbo b g (OFDM) */
5211:
{ AR5K_TIME_OUT,
{ 0x04000400, 0x08000800, 0x20003000, 0x04000400 } },
5212:
{ AR5K_TIME_OUT,
{ 0x03e803e8, 0x06e006e0, 0x04200420, 0x08400840, 0x06e006e0 } },
so on 5211 this is 1024 in A and G mode (i dont care about B and turbo), so
same problem you described.
on 5212 this is 1000 in A mode and 1760 in G mode, which would result in a
timeout of 25 and 40.
this is all confusing and i think we should replace the initvals by calling
the function ath5k_hw_set_ack_timeout().
bruno
next prev parent reply other threads:[~2010-09-15 2:30 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-15 1:56 [ath5k] Incorrect value for ACK_TIMEOUT Jonathan Guerin
2010-09-15 2:30 ` Bruno Randolf [this message]
2010-09-15 3:01 ` [ath5k-devel] " Jonathan Guerin
2010-09-15 3:09 ` Jonathan Guerin
2010-09-15 3:16 ` Bruno Randolf
2010-09-15 3:28 ` Jonathan Guerin
2010-09-15 3:45 ` Bruno Randolf
2010-09-15 4:11 ` Jonathan Guerin
2010-09-15 7:17 ` Kalle Valo
2010-09-15 7:27 ` Jonathan Guerin
2010-09-15 7:32 ` Bruno Randolf
2010-09-15 7:36 ` Kalle Valo
2010-09-15 10:00 ` Jonathan Guerin
2010-09-15 10:41 ` Kalle Valo
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=201009151130.15165.br1@einfach.org \
--to=br1@einfach.org \
--cc=ath5k-devel@lists.ath5k.org \
--cc=jonathan@guerin.id.au \
--cc=linux-wireless@vger.kernel.org \
--cc=mickflemm@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).