QCA9984 VHT160 support

Michal Kazior michal.kazior at tieto.com
Tue May 17 05:00:24 PDT 2016

On 17 May 2016 at 13:43, Sebastian Gottschall <s.gottschall at dd-wrt.com> wrote:
> Attached you will find a testing patch for VHT160 support. i tested it today
> on a QCA9984 device and it seems to work.
> feel free to make any corrections


Send patches inline, please. Preferably via git send-email. It's a lot
easier to review them this way.

>From a quick glance vht capabilities setup looks weird:

> if (ar->vht_cap_info &  IEEE80211_VHT_CAP_SHORT_GI_160) {
>   vht_cap.cap |= IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ;
>   vht_cap.cap |= IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ;
> }

Why? Is this really necessary?

I would expect IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ and
IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ to be already set in
ar->vht_cap_info if the chip supports 160 or 80+80.

You also don't seem to handle 80+80 because you just as phymode to 160
regardless of center frequencies:

> !ath10k_peer_assoc_h_vht_masked(vht_mcs_mask)) {
>    if (sta->bandwidth == IEEE80211_STA_RX_BW_80)
>      phymode = MODE_11AC_VHT80;
>    else if (sta->bandwidth == IEEE80211_STA_RX_BW_160)
>      phymode = MODE_11AC_VHT160;
>    else if (sta->bandwidth == IEEE80211_STA_RX_BW_40)
>      phymode = MODE_11AC_VHT40;
>    else if (sta->bandwidth == IEEE80211_STA_RX_BW_20)

You should probably look at sta->vht_cap and associated chanctx to
check if it isn't 80+80.


More information about the ath10k mailing list