Search Linux Wireless

Re: [ath5k-devel] [PATCH 14/30] ath5k: Extend get_default_sifs/slot_time

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2010/11/24 Nick Kossifidis <mickflemm@xxxxxxxxx>:
> 2010/11/24 Jonathan Guerin <jonathan@xxxxxxxxxxxx>:
>> On Wed, Nov 24, 2010 at 5:09 AM, Nick Kossifidis <mickflemm@xxxxxxxxx> 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 <mickflemm@xxxxxxxxx>
>>> ---
>>> Â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.
>

Also have in mind that clock on g is not 40 but 44 (for b
compatibility) so 396 is correct here (396/44 = 9).

Anyway we clean it up + these are only for AR5210 that we still don't
support, i just put a _CLOCK prefix so that they don't get mixed up
with the correct definitions. Check out patch 16, it should be fine
;-)


-- 
GPG ID: 0xD21DB2DB
As you read this post global entropy rises. Have Fun ;-)
Nick
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux