wifi: rtl8xxxu: Move burst init to a function
authorBitterblue Smith <rtl8821cerfe2@gmail.com>
Sat, 5 Nov 2022 22:53:17 +0000 (00:53 +0200)
committerKalle Valo <kvalo@kernel.org>
Wed, 16 Nov 2022 09:26:10 +0000 (11:26 +0200)
No changes to functionality, just moving code to make
rtl8xxxu_init_device look nicer.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/bef90bf8-716f-c92f-9403-12ef2bfefc15@gmail.com
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188f.c
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c

index 6ff554b..9f8b231 100644 (file)
@@ -1485,6 +1485,7 @@ struct rtl8xxxu_fileops {
        int (*parse_rx_desc) (struct rtl8xxxu_priv *priv, struct sk_buff *skb);
        void (*init_aggregation) (struct rtl8xxxu_priv *priv);
        void (*init_statistics) (struct rtl8xxxu_priv *priv);
+       void (*init_burst) (struct rtl8xxxu_priv *priv);
        void (*enable_rf) (struct rtl8xxxu_priv *priv);
        void (*disable_rf) (struct rtl8xxxu_priv *priv);
        void (*usb_quirks) (struct rtl8xxxu_priv *priv);
@@ -1592,6 +1593,7 @@ void rtl8xxxu_gen1_init_aggregation(struct rtl8xxxu_priv *priv);
 void rtl8xxxu_gen1_enable_rf(struct rtl8xxxu_priv *priv);
 void rtl8xxxu_gen1_disable_rf(struct rtl8xxxu_priv *priv);
 void rtl8xxxu_gen2_disable_rf(struct rtl8xxxu_priv *priv);
+void rtl8xxxu_init_burst(struct rtl8xxxu_priv *priv);
 int rtl8xxxu_parse_rxdesc16(struct rtl8xxxu_priv *priv, struct sk_buff *skb);
 int rtl8xxxu_parse_rxdesc24(struct rtl8xxxu_priv *priv, struct sk_buff *skb);
 int rtl8xxxu_gen2_channel_to_group(int channel);
index 5a5b7fa..5eadeb0 100644 (file)
@@ -1705,6 +1705,7 @@ struct rtl8xxxu_fileops rtl8188fu_fops = {
        .parse_rx_desc = rtl8xxxu_parse_rxdesc24,
        .init_aggregation = rtl8188fu_init_aggregation,
        .init_statistics = rtl8188fu_init_statistics,
+       .init_burst = rtl8xxxu_init_burst,
        .enable_rf = rtl8188f_enable_rf,
        .disable_rf = rtl8188f_disable_rf,
        .usb_quirks = rtl8188f_usb_quirks,
index 9214c1d..27df880 100644 (file)
@@ -1683,6 +1683,7 @@ struct rtl8xxxu_fileops rtl8723bu_fops = {
        .parse_rx_desc = rtl8xxxu_parse_rxdesc24,
        .init_aggregation = rtl8723bu_init_aggregation,
        .init_statistics = rtl8723bu_init_statistics,
+       .init_burst = rtl8xxxu_init_burst,
        .enable_rf = rtl8723b_enable_rf,
        .disable_rf = rtl8xxxu_gen2_disable_rf,
        .usb_quirks = rtl8xxxu_gen2_usb_quirks,
index 019f8dd..282ad8a 100644 (file)
@@ -3886,6 +3886,52 @@ static void rtl8xxxu_init_queue_reserved_page(struct rtl8xxxu_priv *priv)
        rtl8xxxu_write32(priv, REG_RQPN, val32);
 }
 
+void rtl8xxxu_init_burst(struct rtl8xxxu_priv *priv)
+{
+       u8 val8;
+
+       /*
+        * For USB high speed set 512B packets
+        */
+       val8 = rtl8xxxu_read8(priv, REG_RXDMA_PRO_8723B);
+       val8 &= ~(BIT(4) | BIT(5));
+       val8 |= BIT(4);
+       val8 |= BIT(1) | BIT(2) | BIT(3);
+       rtl8xxxu_write8(priv, REG_RXDMA_PRO_8723B, val8);
+
+       /*
+        * Enable single packet AMPDU
+        */
+       val8 = rtl8xxxu_read8(priv, REG_HT_SINGLE_AMPDU_8723B);
+       val8 |= BIT(7);
+       rtl8xxxu_write8(priv, REG_HT_SINGLE_AMPDU_8723B, val8);
+
+       rtl8xxxu_write16(priv, REG_MAX_AGGR_NUM, 0x0c14);
+       if (priv->rtl_chip == RTL8723B)
+               val8 = 0x5e;
+       else if (priv->rtl_chip == RTL8188F)
+               val8 = 0x70; /* 0x5e would make it very slow */
+       rtl8xxxu_write8(priv, REG_AMPDU_MAX_TIME_8723B, val8);
+       rtl8xxxu_write32(priv, REG_AGGLEN_LMT, 0xffffffff);
+       rtl8xxxu_write8(priv, REG_RX_PKT_LIMIT, 0x18);
+       rtl8xxxu_write8(priv, REG_PIFS, 0x00);
+       if (priv->rtl_chip == RTL8188F) {
+               rtl8xxxu_write8(priv, REG_FWHW_TXQ_CTRL, FWHW_TXQ_CTRL_AMPDU_RETRY);
+               rtl8xxxu_write32(priv, REG_FAST_EDCA_CTRL, 0x03086666);
+       }
+       if (priv->rtl_chip == RTL8723B)
+               val8 = 0x50;
+       else if (priv->rtl_chip == RTL8188F)
+               val8 = 0x28; /* 0x50 would make the upload slow */
+       rtl8xxxu_write8(priv, REG_USTIME_TSF_8723B, val8);
+       rtl8xxxu_write8(priv, REG_USTIME_EDCA, val8);
+
+       /* to prevent mac is reseted by bus. */
+       val8 = rtl8xxxu_read8(priv, REG_RSV_CTRL);
+       val8 |= BIT(5) | BIT(6);
+       rtl8xxxu_write8(priv, REG_RSV_CTRL, val8);
+}
+
 static int rtl8xxxu_init_device(struct ieee80211_hw *hw)
 {
        struct rtl8xxxu_priv *priv = hw->priv;
@@ -4139,48 +4185,9 @@ static int rtl8xxxu_init_device(struct ieee80211_hw *hw)
        /*
         * Initialize burst parameters
         */
-       if (priv->rtl_chip == RTL8723B || priv->rtl_chip == RTL8188F) {
-               /*
-                * For USB high speed set 512B packets
-                */
-               val8 = rtl8xxxu_read8(priv, REG_RXDMA_PRO_8723B);
-               val8 &= ~(BIT(4) | BIT(5));
-               val8 |= BIT(4);
-               val8 |= BIT(1) | BIT(2) | BIT(3);
-               rtl8xxxu_write8(priv, REG_RXDMA_PRO_8723B, val8);
 
-               /*
-                * For USB high speed set 512B packets
-                */
-               val8 = rtl8xxxu_read8(priv, REG_HT_SINGLE_AMPDU_8723B);
-               val8 |= BIT(7);
-               rtl8xxxu_write8(priv, REG_HT_SINGLE_AMPDU_8723B, val8);
-
-               rtl8xxxu_write16(priv, REG_MAX_AGGR_NUM, 0x0c14);
-               if (priv->rtl_chip == RTL8723B)
-                       val8 = 0x5e;
-               else if (priv->rtl_chip == RTL8188F)
-                       val8 = 0x70; /* 0x5e would make it very slow */
-               rtl8xxxu_write8(priv, REG_AMPDU_MAX_TIME_8723B, val8);
-               rtl8xxxu_write32(priv, REG_AGGLEN_LMT, 0xffffffff);
-               rtl8xxxu_write8(priv, REG_RX_PKT_LIMIT, 0x18);
-               rtl8xxxu_write8(priv, REG_PIFS, 0x00);
-               if (priv->rtl_chip == RTL8188F) {
-                       rtl8xxxu_write8(priv, REG_FWHW_TXQ_CTRL, FWHW_TXQ_CTRL_AMPDU_RETRY);
-                       rtl8xxxu_write32(priv, REG_FAST_EDCA_CTRL, 0x03086666);
-               }
-               if (priv->rtl_chip == RTL8723B)
-                       val8 = 0x50;
-               else if (priv->rtl_chip == RTL8188F)
-                       val8 = 0x28; /* 0x50 would make the upload slow */
-               rtl8xxxu_write8(priv, REG_USTIME_TSF_8723B, val8);
-               rtl8xxxu_write8(priv, REG_USTIME_EDCA, val8);
-
-               /* to prevent mac is reseted by bus. */
-               val8 = rtl8xxxu_read8(priv, REG_RSV_CTRL);
-               val8 |= BIT(5) | BIT(6);
-               rtl8xxxu_write8(priv, REG_RSV_CTRL, val8);
-       }
+       if (priv->fops->init_burst)
+               priv->fops->init_burst(priv);
 
        if (fops->init_aggregation)
                fops->init_aggregation(priv);