linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).