request: ACK timing setting required

Sebastian Gottschall s.gottschall at dd-wrt.com
Mon May 25 10:48:56 PDT 2015


Am 25.05.2015 um 19:13 schrieb Ben Greear:
>
>
> On 05/25/2015 10:10 AM, Sebastian Gottschall wrote:
>> Hello
>>
>> could it be possible to add a ACK timing feature to the ath10k 
>> firmware (QCA9880 internal register 0x8014, mask 0x3FFF)
>
> You just need ability to set this register to some value?
>
> If so, probably something I could add to CT firmware, at least.
>
not alone. this register is rewritten on each reset (channel change 
etc.) so it needs to be correct handled.
yes. just writing and handling the ack value would be enough. the math 
behind is no problem.
otherwise its impossible todo long range links with ath10k. (LSDK based 
firmware from compex do support this feature unlike ath10k)

for distance handling the following parameters must be adjustable (in 
ath9k we implemented the coverageclass attribute for it which was based 
on my previous work on madwifi)
since i just have a old ath10k firmware source which i never got working 
(working toolchain missing) i just write down you the register 
definitions here which must be adjustable.
the math etc. for calculating these values can be done later by me in ath10k
OS_REG_WRITE(MAC_DCU_GBL_IFS_SLOT_ADDRESS, 
MAC_DCU_GBL_IFS_SLOT_DURATION_SET(your_slot_time_here * 88)); //(default 
value is 9)
OS_REG_WRITE(MAC_DCU_GBL_IFS_SIFS_ADDRESS, 
MAC_DCU_GBL_IFS_SIFS_DURATION_SET(your_sifs_time_here * 88)); //(default 
value is 14)
OS_REG_WRITE(MAC_DCU_GBL_IFS_EIFS_ADDRESS, 
MAC_DCU_GBL_IFS_SIFS_DURATION_SET(your_eifs_time_here * 88)); //(default 
value is 92)
OS_REG_WRITE(MAC_PCU_ACK_CTS_TIMEOUT_ADDRESS, 
MAC_PCU_ACK_CTS_TIMEOUT_ACK_TIMEOUT_SET(your_ack_time_here * 88) ); // 
(default value is 30)
OS_REG_WRITE(MAC_PCU_ACK_CTS_TIMEOUT_ADDRESS, 
MAC_PCU_ACK_CTS_TIMEOUT_CTS_TIMEOUT_SET(your_cts_time_here * 88)); // 
(default value is 30)


these registers are prewritten using the ini array  named 
qca9880_peregrine_bimodal_asic_mac

its possible to adjust them using debugfs reg_value and reg_addr, but as 
i said on each channel change or internal reset, the registers are 
overwritten with default values. so best is to adjust them direct
after registers are written from ini array.


> Thanks,
> Ben
>
>




More information about the ath10k mailing list