ath10k does not support selection antenna yet?

Ben Greear greearb at
Wed May 7 07:33:44 PDT 2014

On 05/07/2014 07:21 AM, Adrian Chadd wrote:
> On 7 May 2014 07:11, Ben Greear <greearb at> wrote:
>> On 05/07/2014 02:26 AM, Janusz Dziedzic wrote:
>>> On 7 May 2014 10:16, Vu Hai NGUYEN <vh.nguyen at> wrote:
>>>>>> I read in the debug's page that ath10k HW is currently limited to handle only single fixed rate setting or limit number of used spatial streams. Does it mean that the selection of antenna is not possible for this moment? Because if I look in the code of ath9k, there are 2 fonctions set_antenna and get_antenna in the structure: struct ieee80211_ops (file main.c) and that's why the out put of "iw list" for ath10k give me: Available Antennas:  TX0 RX0 and I can not select the antenna?
>>>>> I'm not aware if that's possible.
>>>> Thank you for your response. I think if the select and set antenna work, the out put of "iw list" may have some thing like this:
>>>>         Available Antennas: TX 0x3 RX 0x3
>>>>         Configured Antennas: TX 0x1 RX 0x1
>> From looking at the 10.1.467 firmware, it appears it would support setting
>> the tx and rx chainmask, and it seems the ath10k driver has at least some
>> of the support needed to implement this.  grep for TX_CHAIN_MASK.
>> I do NOT see a way in standard firmware to read the current chainmask.
>> I have a way to read this in my customized firmware, but I have not yet
>> tied it into the driver, and I am not certain my current method is the best option
>> at this point...
> The STA design of the firmware is that it is supposed to be completely
> asynchronous - the firmware itself can make decisions about what the
> current config is at any time. For example, if it's doing background
> scanning, it may transmit the basic rate probe request frames using
> one chain. Or it may go into a powersave mode where it shuts down
> all-but-one tx and/or rx chain until they're needed.
> Now, assuming they didn't go and break that design philosophy after I
> left, you should try to keep that setup in mind. So ideally, you'd
> send the firmware some command relevant to the current vdev, then you
> either send a vdev query or you just get told about it when the radio
> finishes vdev setup/association. But querying the "current chainmask"
> may not reflect what's currently going on.

I think the idea of the driver API is to put upper-bound limits on
all stations.  So, if hardware disables 1 of the three antenna, then
all stations must therefore start using no more than 2 of them.

This appears to work in ath9k, and from reading firmware code,
it appears it would work in ath10k as well.

I don't know of any use for setting the tx chains aside from testing
purposes.  Maybe if you are cabling up to something and only have
2 cables for a 3-antenna system that would be useful :)


Ben Greear <greearb at>
Candela Technologies Inc

More information about the ath10k mailing list