[RFC 2/2] ath10k: re-config ht_caps when chainmask is modified.
Ben Greear
greearb at candelatech.com
Wed Sep 24 08:15:30 PDT 2014
On 09/24/2014 08:05 AM, Michal Kazior wrote:
> On 24 September 2014 16:35, Ben Greear <greearb at candelatech.com> wrote:
>> On 09/24/2014 12:51 AM, Michal Kazior wrote:
>>> On 24 September 2014 02:26, <greearb at candelatech.com> wrote:
>>> [...]
>>>>
>>>> +static struct ieee80211_sta_vht_cap ath10k_create_vht_cap(struct ath10k
>>>> *ar,
>>>> + bool
>>>> use_cfg_chains)
>>>> {
>>>> struct ieee80211_sta_vht_cap vht_cap = {0};
>>>> u16 mcs_map;
>>>> int i;
>>>> + int nrf = ar->num_rf_chains;
>>>> +
>>>> + if (use_cfg_chains && ar->cfg_tx_chainmask)
>>>> + nrf = get_nss_from_chainmask(ar->cfg_tx_chainmask);
>>>
>>>
>>> Is use_cfg_chains really necessary here? Is setting tx/rx chainmask to
>>> 0x0 make any sense at all? Shouldn't we deny it or make it fallback to
>>> the supported tx/rx chainmask values?
>>
>> It would cause the logic to flip back to the defaults, so seems mildly
>> useful. I'm not sure
>> upper layers would ever let it be < 1 though.
>
> 0 is a valid argument as far as upper layers are concerned and should
> be treated as "use all available antennas" (see `iw list` output
> before ever setting antenna, after setting to, e.g. 1 and then to 0).
>
> This implies current set_antenna() implementation is actually buggy
> (pdev param should involve using supp_tx/rx_chainmask). Your
> assumption in recent patches is also incorrect as antenna mask = 0
> should imply max nss, not 1.
I will test, but I think you are mis-understanding the logic in my
patches. I should be using the max nss whenever configured value
is 0.
Thanks,
Ben
>
>
> Michał
>
--
Ben Greear <greearb at candelatech.com>
Candela Technologies Inc http://www.candelatech.com
More information about the ath10k
mailing list