2010/11/24 Jonathan Guerin <jonat...@guerin.id.au>:
> On Wed, Nov 24, 2010 at 5:09 AM, Nick Kossifidis <mickfl...@gmail.com> wrote:
>>  * Extend get_default_sifs/slot_time to include timings for turbo
>>  half and quarter rate modes.
>>
>>  * AR5210 code for now uses timings already on core clock units
>>  instead of usecs so rename them (we 'll clean it up later).
>>
>>  Signed-off-by: Nick Kossifidis <mickfl...@gmail.com>
>> ---
>>  drivers/net/wireless/ath/ath5k/ath5k.h |   24 ++++++++++++--
>>  drivers/net/wireless/ath/ath5k/pcu.c   |   52 
>> ++++++++++++++++++++++++--------
>>  drivers/net/wireless/ath/ath5k/qcu.c   |   16 +++++----
>>  3 files changed, 68 insertions(+), 24 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath5k/ath5k.h 
>> b/drivers/net/wireless/ath/ath5k/ath5k.h
>> index 005cad0..e11fc8f 100644
>> --- a/drivers/net/wireless/ath/ath5k/ath5k.h
>> +++ b/drivers/net/wireless/ath/ath5k/ath5k.h
>> @@ -226,16 +226,16 @@
>>  #define AR5K_INIT_USEC                         39
>>  #define AR5K_INIT_USEC_TURBO                   79
>>  #define AR5K_INIT_USEC_32                      31
>> -#define AR5K_INIT_SLOT_TIME                    396
>> -#define AR5K_INIT_SLOT_TIME_TURBO              480
>> +#define AR5K_INIT_SLOT_TIME_CLOCK              396
>
> This comes out as 9.9us (with a clock multiplier of 40), rather than 9
> - should be 360?
>
>> +#define AR5K_INIT_SLOT_TIME_TURBO_CLOCK                480
>>  #define AR5K_INIT_ACK_CTS_TIMEOUT              1024
>
> From a previous post I'd made:
>
> 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
>
> With a value of 1024, the ACKTIMEOUT is actually 25.
>
>>  #define AR5K_INIT_ACK_CTS_TIMEOUT_TURBO                0x08000800
>>  #define AR5K_INIT_PROG_IFS                     920
>>  #define AR5K_INIT_PROG_IFS_TURBO               960
>>  #define AR5K_INIT_EIFS                         3440
>
> From the 802.11-2007 Spec (9.2.10 DCF timing relations):
> The EIFS is derived from the SIFS and the DIFS and the length of time
> it takes to transmit an ACK Control frame at the lowest PHY mandatory
> rate by the following equation:
> EIFS = aSIFSTime + DIFS + ACKTxTime
> where ACKTxTime is the time expressed in microseconds required to
> transmit an ACK frame, including
> preamble, PLCP header and any additional PHY dependent information, at
> the lowest PHY mandatory rate.
>
> So, EIFS = 16 + 32 + 44 (ACKTX @ 24Mbps) = 92
> or 16 + 32 + 60 (ACKTX @ 6Mbps) = 108
>
> The current value is 86, which I guess is a nice midpoint, but is
> there any reasoning for this value? It should really be set to the
> longest value of 108, as an EIFS is only used when we have no
> information about a frame because it failed the checksum.
>
>>  #define AR5K_INIT_EIFS_TURBO                   6880
>> -#define AR5K_INIT_SIFS                         560
>> -#define AR5K_INIT_SIFS_TURBO                   480
>> +#define AR5K_INIT_SIFS_CLOCK                   560
>
> This is wrong, when you divide by the clock rate, you get a SIFS of 14, not 
> 16.
>
> Cheers,
>
> Jonathan
>

All _CLOCK variables are left here temporarily until we clean up
AR5210 stuff later, i know it's wrong ;-)
Check out patch 16 that adds the new set_ifs_intervals, there we set
them property, i just left them here so that code can still compile.

-- 
GPG ID: 0xD21DB2DB
As you read this post global entropy rises. Have Fun ;-)
Nick
_______________________________________________
ath5k-devel mailing list
ath5k-devel@lists.ath5k.org
https://lists.ath5k.org/mailman/listinfo/ath5k-devel

Reply via email to