ath10k: first qca6174 hw2.1 firmware released

Michal Kazior michal.kazior at tieto.com
Tue Aug 25 22:01:48 PDT 2015


On 25 August 2015 at 16:04, Lapo Calamandrei <calamandrei at gmail.com> wrote:
[...]
> Yep, the previous crash was without your patch applied, the following
> is with the patch applied though.
>
> iw list output:
[...]
>     Band 2:
>         Capabilities: 0x19e3
>             RX LDPC
>             HT20/HT40
>             Static SM Power Save
>             RX HT20 SGI
>             RX HT40 SGI
>             TX STBC
>             RX STBC 1-stream
>             Max AMSDU length: 7935 bytes
>             DSSS/CCK HT40
>         Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
>         Minimum RX AMPDU time spacing: 8 usec (0x06)
>         HT TX/RX MCS rate indexes supported: 0-15
>         VHT Capabilities (0x339011b2):
>             Max MPDU length: 11454
>             Supported Channel Width: neither 160 nor 80+80
>             RX LDPC
>             short GI (80 MHz)
>             TX STBC
>             SU Beamformee
>             MU Beamformee
[...]

Sorry, my bad. The diff I provided earlier wasn't correct (it was a
quick hack-idea I didn't test myself).

The correct thing that should work is:

--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -6798,27 +6798,14 @@ static struct ieee80211_sta_vht_cap
ath10k_create_vht_cap(struct ath10k *ar)
        u32 val;
        int i;

+       ar->vht_cap_info &= ~(IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE |
+                             IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE |
+                             IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE |
+                             IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE);
+
        vht_cap.vht_supported = 1;
        vht_cap.cap = ar->vht_cap_info;

-       if (ar->vht_cap_info & (IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE |
-                               IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE)) {
-               val = ar->num_rf_chains - 1;
-               val <<= IEEE80211_VHT_CAP_BEAMFORMEE_STS_SHIFT;
-               val &= IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK;
-
-               vht_cap.cap |= val;
-       }
-
-       if (ar->vht_cap_info & (IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE |
-                               IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE)) {
-               val = ar->num_rf_chains - 1;
-               val <<= IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_SHIFT;
-               val &= IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MASK;
-
-               vht_cap.cap |= val;
-       }
-
        mcs_map = 0;
        for (i = 0; i < 8; i++) {
                if (i < ar->num_rf_chains)


Michał



More information about the ath10k mailing list