1. 02 8月, 2014 1 次提交
  2. 29 7月, 2014 4 次提交
  3. 25 7月, 2014 3 次提交
    • J
      ath10k: handle attention flags correctly when using A-MSDU · 0ccb7a34
      Janusz Dziedzic 提交于
      In case of A-MSDU RX we should check attention flags
      correctly to be sure we report correct FCS status for
      A-MSDU subframes. Without a patch we could report A-MSDU
      subframes with wrong FCS as a correct to the stack, next
      get a lot of DUP ACK TCP packets. Finally TP drop is seen
      and this drop depends on FCS errors ratio for A-MSDU frame.
      
      Example test case when TP drop is seen:
      - ath10k configured as an AP
      - used ath10k station
      - forced A-MSDU (7 frames) on STA
      - other traffic on channel (often FCS errors)
      - monitor iface added on AP
      - TCP STA -> AP traffic (iperf)
      
      a) Iperf logs for case without the patch:
      
      echo "1 64" > htt_max_amsdu_ampdu // disable A-MSDU
      [ ID] Interval       Transfer     Bandwidth
      [  3]  0.0- 5.0 sec  56.6 MBytes  95.0 Mbits/sec
      [  3]  5.0-10.0 sec  60.4 MBytes   101 Mbits/sec
      [  3] 10.0-15.0 sec  60.2 MBytes   101 Mbits/sec
      [  3] 15.0-20.0 sec  60.2 MBytes   101 Mbits/sec
      [  3] 20.0-25.0 sec  63.8 MBytes   107 Mbits/sec
      [  3] 25.0-30.0 sec  64.9 MBytes   109 Mbits/sec
      
      echo "7 64" > htt_max_amsdu_ampdu  // set 7 A-MSDU subframes
      [  3] 30.0-35.0 sec  40.0 MBytes  67.1 Mbits/sec
      [  3] 35.0-40.0 sec  35.9 MBytes  60.2 Mbits/sec
      [  3] 40.0-45.0 sec  36.9 MBytes  61.9 Mbits/sec
      [  3] 45.0-50.0 sec  37.9 MBytes  63.5 Mbits/sec
      [  3] 50.0-55.0 sec  34.5 MBytes  57.9 Mbits/sec
      [  3] 55.0-60.0 sec  25.4 MBytes  42.6 Mbits/sec
      [  3] 60.0-65.0 sec  48.2 MBytes  81.0 Mbits/sec
      [  3] 65.0-70.0 sec  28.8 MBytes  48.2 Mbits/sec
      [  3] 70.0-75.0 sec  29.2 MBytes  49.1 Mbits/sec
      [  3] 75.0-80.0 sec  22.9 MBytes  38.4 Mbits/sec
      [  3] 80.0-85.0 sec  26.4 MBytes  44.2 Mbits/sec
      [  3] 85.0-90.0 sec  31.5 MBytes  52.8 Mbits/sec
      
      b) Iperf logs for case with patch:
      
      echo "1 64" > htt_max_amsdu_ampdu // disable A-MSDU
      [  3] local 192.168.12.2 port 57512 connected with 192.168.12.1 port 5001
      [ ID] Interval       Transfer     Bandwidth
      [  3]  0.0- 5.0 sec  60.8 MBytes   102 Mbits/sec
      [  3]  5.0-10.0 sec  62.2 MBytes   104 Mbits/sec
      [  3] 10.0-15.0 sec  60.9 MBytes   102 Mbits/sec
      
      echo "7 64" > htt_max_amsdu_ampdu  // set 7 A-MSDU subframes
      [  3] 15.0-20.0 sec  68.1 MBytes   114 Mbits/sec
      [  3] 20.0-25.0 sec  80.5 MBytes   135 Mbits/sec
      [  3] 25.0-30.0 sec  83.0 MBytes   139 Mbits/sec
      [  3] 30.0-35.0 sec  79.1 MBytes   133 Mbits/sec
      [  3] 35.0-40.0 sec  77.1 MBytes   129 Mbits/sec
      [  3] 40.0-45.0 sec  77.4 MBytes   130 Mbits/sec
      Reported-by: NDenton Gentry <denton.gentry@gmail.com>
      Signed-off-by: NJanusz Dziedzic <janusz.dziedzic@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      0ccb7a34
    • M
      ath10k: don't advertise IBSS iftype for 10.x · cf850d1d
      Michal Kazior 提交于
      The 10.x firmware does not support IBSS mode at
      all. It can't beacon and it crashes when trying to
      scan.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      cf850d1d
    • M
      ath10k: fix Rx aggregation reordering · aa5b4fbc
      Michal Kazior 提交于
      Firmware doesn't perform Rx reordering so it is
      left to the host driver to do that.
      
      Use mac80211 to perform reordering instead of
      re-inventing the wheel.
      
      This fixes TCP throughput issues in some
      environments.
      Reported-by: NDenton Gentry <denton.gentry@gmail.com>
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      aa5b4fbc
  4. 23 7月, 2014 1 次提交
  5. 22 7月, 2014 4 次提交
  6. 15 7月, 2014 2 次提交
  7. 14 7月, 2014 2 次提交
    • M
      ath10k: fix unregister deadlock when fw probe fails · a491a920
      Michal Kazior 提交于
      If firmware probing worker failed it called
      device_release_driver() which synchronously called
      remove() pci callback. The callback in turn waited
      for the worker that called it to finish resulting
      in a deadlock.
      
      Waiting for a completion instead of a worker, like
      some other drivers do, doesn't seem like the best
      idea either:
      
        Syscall                 Worker
      
                                probe_fw()
        rmmod
        dev_lock()
        pci->remove()
        wait_for_completion()
                                complete_all()
                                device_release_driver()
                                dev_lock()
                                [sleep]
        free(ar)
        dev_unlock()
                                [resume]
      
      There's no guarantee that Worker upon resuming can
      still access any data/code of the module.
      
      Leaving device bound to a driver is not as harmful
      as deadlocking so remove the call to
      device_release_driver() while a proper solution is
      figured out.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      a491a920
    • J
      ath10k: add implementation for configure max amsdu, ampdu · d385623a
      Janusz Dziedzic 提交于
      Allow to setup maximum subframes for AMSDU and AMPDU aggregation
      via debugfs htt_max_amsdu_ampdu file.
      
      Eg.
      echo "2 64" > htt_max_amsdu_ampdu
      will setup maximum amsdu subframes equal 2 and
      maximum ampdu subframes equal to 64.
      Signed-off-by: NJanusz Dziedzic <janusz.dziedzic@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      d385623a
  8. 25 6月, 2014 1 次提交
  9. 03 6月, 2014 4 次提交
  10. 27 5月, 2014 8 次提交
  11. 26 5月, 2014 4 次提交
  12. 23 5月, 2014 5 次提交
  13. 16 5月, 2014 1 次提交
    • M
      ath10k: fix pmf for action frames · eeab266c
      Marek Kwaczynski 提交于
      Fix sending and receiveing protected managment frames.
      Lack of protected flag for received protected action frames
      causes report these frames as unprotected robust action frames.
      If the driver in AP mode sent frame with protected flag and
      CCMP header using IEEE80211_KEY_FLAG_SW_MGMT_TX flag,
      the FW encrypted frames once again. From user side all
      received SA Query Requests and Responses were skipped and
      all protected action frames were sent as malformed packets.
      Signed-off-by: NMarek Kwaczynski <marek.kwaczynski@tieto.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      eeab266c