1. 18 3月, 2020 1 次提交
  2. 14 2月, 2020 8 次提交
  3. 20 11月, 2019 8 次提交
  4. 05 9月, 2019 3 次提交
  5. 27 6月, 2019 4 次提交
    • F
      mt76: mt7603: rework and fix tx status reporting · c5211e99
      Felix Fietkau 提交于
      Tx status reporting on mt7603 has a number of issues:
      
      - the hardware can alter the first rate index, but it is not reported to
        the driver
      - probing is very imprecise, because it alters the per-client rate set,
        but only considers info->status.rates for rate selection of a single probe
        packet
      - short/long GI selection has limitations, which are not accurately reported
        to mac80211
      - if rates are changed while packets are in flight, tx status reports for
        the old rate set might be processed based on the new selection
      
      This led to very suboptimal rate selection with minstrel_ht.
      
      This patch completely reworks tx status reporting to get rid of these
      limitations:
      
      - Store the previous and current rate set in the driver + the TSF value
        at the time of the switch.
      - Use the tx status TSF value to determine which rate set needs to be used
        as reference.
      - Report only short or long GI rates for a single status event, not a mix.
      - The hardware reports the last used rate index. Use it along with the
        retry count to figure out what rate was used for the first attempt.
      - Use the same retry count value for all rate slots to make this calculation
        work.
      - Derive the probe rate from the current rateset instead of the skb cb
      - Do not wait for a status report for the probe frame before removing the
        probe rate from the rate table. Do it immediately after it was referenced
        in a tx status report.
      - Use the first half of the first rate retry budget for the probe rate
        in order to avoid using too many retries on that rate
      
      With this patch, throughput under bad link conditions is improved
      significantly, and there is a lot less rate fluctuation going on.
      Signed-off-by: NFelix Fietkau <nbd@nbd.name>
      c5211e99
    • Y
      mt76: Remove set but not used variables 'pid' and 'final_mpdu' · d3edd108
      YueHaibing 提交于
      Fixes gcc '-Wunused-but-set-variable' warnings:
      
      drivers/net/wireless/mediatek/mt76/mt7603/mac.c: In function mt7603_fill_txs:
      drivers/net/wireless/mediatek/mt76/mt7603/mac.c:969:5: warning: variable pid set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/mediatek/mt76/mt7603/mac.c:961:7: warning: variable final_mpdu set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/mediatek/mt76/mt7615/mac.c: In function mt7615_fill_txs:
      drivers/net/wireless/mediatek/mt76/mt7615/mac.c:555:5: warning: variable pid set but not used [-Wunused-but-set-variable]
      drivers/net/wireless/mediatek/mt76/mt7615/mac.c:552:19: warning: variable final_mpdu set but not used [-Wunused-but-set-variable]
      
      They are never used, so can be removed.
      Signed-off-by: NYueHaibing <yuehaibing@huawei.com>
      Signed-off-by: NFelix Fietkau <nbd@nbd.name>
      d3edd108
    • L
      mt76: move mt76_get_rate in mt76-module · d2679d65
      Lorenzo Bianconi 提交于
      Move mt7603_get_rate in mac80211.c and rename it to mt76_get_rate
      since it is shared between mt7603 and mt7615 drivers
      Signed-off-by: NLorenzo Bianconi <lorenzo@kernel.org>
      Signed-off-by: NFelix Fietkau <nbd@nbd.name>
      d2679d65
    • L
      mt76: move mt76_insert_ccmp_hdr in mt76-module · eadfd98f
      Lorenzo Bianconi 提交于
      Move mt7615_insert_ccmp_hdr in mac80211.c and rename it in
      mt76_insert_ccmp_hdr since it is shared between mt7603 and mt7615
      drivers
      Signed-off-by: NLorenzo Bianconi <lorenzo@kernel.org>
      Signed-off-by: NFelix Fietkau <nbd@nbd.name>
      eadfd98f
  6. 25 6月, 2019 1 次提交
  7. 01 5月, 2019 13 次提交
  8. 13 4月, 2019 1 次提交
    • F
      mt76: mt7603: fix sequence number assignment · aa3cb24b
      Felix Fietkau 提交于
      If the MT_TXD3_SN_VALID flag is not set in the tx descriptor, the hardware
      assigns the sequence number. However, the rest of the code assumes that the
      sequence number specified in the 802.11 header gets transmitted.
      This was causing issues with the aggregation setup, which worked for the
      initial one (where the sequence numbers were still close), but not for
      further teardown/re-establishing of sessions.
      
      Additionally, the overwrite of the TID sequence number in WTBL2 was resetting
      the hardware assigned sequence numbers, causing them to drift further apart.
      
      Fix this by using the software assigned sequence numbers
      Signed-off-by: NFelix Fietkau <nbd@nbd.name>
      Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
      aa3cb24b
  9. 07 3月, 2019 1 次提交