Lets make wifi fast again!
 help / color / mirror / Atom feed
From: Dave Taht <dave.taht@gmail.com>
To: Make-Wifi-fast <make-wifi-fast@lists.bufferbloat.net>,
	chris.chiu@canonical.com
Subject: [Make-wifi-fast] Fwd: [PATCH] rtl8xxxu: Use lower tx rates for the ack packet
Date: Thu, 30 Sep 2021 11:26:52 -0700	[thread overview]
Message-ID: <CAA93jw7UtN-KgNCKD_XivM2qRvMRH4n-8PS774k6kAbULvC4Rw@mail.gmail.com> (raw)
In-Reply-To: <20210930104422.968365-1-chris.chiu@canonical.com>

I am glad more folk are looking at the excessive retransmit problem

---------- Forwarded message ---------
From: Chris Chiu <chris.chiu@canonical.com>
Date: Thu, Sep 30, 2021 at 7:31 AM
Subject: [PATCH] rtl8xxxu: Use lower tx rates for the ack packet
To: <Jes.Sorensen@gmail.com>, <kvalo@codeaurora.org>,
<davem@davemloft.net>, <kuba@kernel.org>
Cc: <linux-wireless@vger.kernel.org>, <netdev@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, Chris Chiu <chris.chiu@canonical.com>


According to the Realtek propritary driver and the rtw88 driver, the
tx rates of the ack (includes block ack) are initialized with lower
tx rates (no HT rates) which is set by the RRSR register value. In
real cases, ack rate higher than current tx rate could lead to
difficulty for the receiving end to receive management/control frames.
The retransmission rate would be higher then expected when the driver
is acting as receiver and the RSSI is not good.

Cross out higer rates for ack packet before implementing dynamic rrsr
configuration

Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
---
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 7 ++++++-
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 2 ++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
index 774341b0005a..413cccd88f5c 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
@@ -4460,13 +4460,18 @@ void rtl8xxxu_gen1_init_aggregation(struct
rtl8xxxu_priv *priv)

 static void rtl8xxxu_set_basic_rates(struct rtl8xxxu_priv *priv, u32 rate_cfg)
 {
+       struct ieee80211_hw *hw = priv->hw;
        u32 val32;
        u8 rate_idx = 0;

        rate_cfg &= RESPONSE_RATE_BITMAP_ALL;

        val32 = rtl8xxxu_read32(priv, REG_RESPONSE_RATE_SET);
-       val32 &= ~RESPONSE_RATE_BITMAP_ALL;
+              val32 = rtl8xxxu_read32(priv, REG_RESPONSE_RATE_SET);
+       if (hw->conf.chandef.chan->band == NL80211_BAND_5GHZ)
+               val32 &= RESPONSE_RATE_RRSR_INIT_5G;
+       else
+               val32 &= RESPONSE_RATE_RRSR_INIT_2G;
        val32 |= rate_cfg;
        rtl8xxxu_write32(priv, REG_RESPONSE_RATE_SET, val32);

diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
index a2a31f374a82..438b65ba9640 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
@@ -516,6 +516,8 @@
 #define REG_RESPONSE_RATE_SET          0x0440
 #define  RESPONSE_RATE_BITMAP_ALL      0xfffff
 #define  RESPONSE_RATE_RRSR_CCK_ONLY_1M        0xffff1
+#define  RESPONSE_RATE_RRSR_INIT_2G    0x15f
+#define  RESPONSE_RATE_RRSR_INIT_5G    0x150
 #define  RSR_1M                                BIT(0)
 #define  RSR_2M                                BIT(1)
 #define  RSR_5_5M                      BIT(2)
--
2.20.1



-- 
Fixing Starlink's Latencies: https://www.youtube.com/watch?v=c9gLo6Xrwgw

Dave Täht CEO, TekLibre, LLC

           reply	other threads:[~2021-09-30 18:27 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <20210930104422.968365-1-chris.chiu@canonical.com>]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.bufferbloat.net/postorius/lists/make-wifi-fast.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAA93jw7UtN-KgNCKD_XivM2qRvMRH4n-8PS774k6kAbULvC4Rw@mail.gmail.com \
    --to=dave.taht@gmail.com \
    --cc=chris.chiu@canonical.com \
    --cc=make-wifi-fast@lists.bufferbloat.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox