diff options
Diffstat (limited to 'package/kernel/mac80211/patches/652-0008-rtl8xxxu-Enable-aggregation-for-rtl8723au.patch')
-rw-r--r-- | package/kernel/mac80211/patches/652-0008-rtl8xxxu-Enable-aggregation-for-rtl8723au.patch | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/package/kernel/mac80211/patches/652-0008-rtl8xxxu-Enable-aggregation-for-rtl8723au.patch b/package/kernel/mac80211/patches/652-0008-rtl8xxxu-Enable-aggregation-for-rtl8723au.patch deleted file mode 100644 index bf20758..0000000 --- a/package/kernel/mac80211/patches/652-0008-rtl8xxxu-Enable-aggregation-for-rtl8723au.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 91dcbb7175317da7caafc3b05b002addd42cdabd Mon Sep 17 00:00:00 2001 -From: Jes Sorensen <Jes.Sorensen@redhat.com> -Date: Mon, 27 Jun 2016 12:32:06 -0400 -Subject: [PATCH] rtl8xxxu: Enable aggregation for rtl8723au - -Implement rtl8xxxu_gen1_init_aggregation(). Aggregation should be the -same for all gen1 parts. We may want to allow for tuning parameters in -the fileopes struct. For now this is based allocating 16KB RX buffers, -leaving 16000 bytes for actual packets, and the rest for the skb -overhead. - -Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> -Signed-off-by: Kalle Valo <kvalo@codeaurora.org> ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 1 + - .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c | 2 ++ - .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 34 ++++++++++++++++++++++ - 3 files changed, 37 insertions(+) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -@@ -1412,6 +1412,7 @@ void rtl8xxxu_gen1_report_connect(struct - u8 macid, bool connect); - void rtl8xxxu_gen2_report_connect(struct rtl8xxxu_priv *priv, - u8 macid, bool connect); -+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); ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c -@@ -377,6 +377,7 @@ struct rtl8xxxu_fileops rtl8723au_fops = - .phy_iq_calibrate = rtl8xxxu_gen1_phy_iq_calibrate, - .config_channel = rtl8xxxu_gen1_config_channel, - .parse_rx_desc = rtl8xxxu_parse_rxdesc16, -+ .init_aggregation = rtl8xxxu_gen1_init_aggregation, - .enable_rf = rtl8xxxu_gen1_enable_rf, - .disable_rf = rtl8xxxu_gen1_disable_rf, - .usb_quirks = rtl8xxxu_gen1_usb_quirks, -@@ -384,6 +385,7 @@ struct rtl8xxxu_fileops rtl8723au_fops = - .update_rate_mask = rtl8xxxu_update_rate_mask, - .report_connect = rtl8xxxu_gen1_report_connect, - .writeN_block_size = 1024, -+ .rx_agg_buf_size = 16000, - .tx_desc_size = sizeof(struct rtl8xxxu_txdesc32), - .rx_desc_size = sizeof(struct rtl8xxxu_rxdesc16), - .adda_1t_init = 0x0b1b25a0, ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -4405,6 +4405,40 @@ void rtl8xxxu_gen2_report_connect(struct - rtl8xxxu_gen2_h2c_cmd(priv, &h2c, sizeof(h2c.media_status_rpt)); - } - -+void rtl8xxxu_gen1_init_aggregation(struct rtl8xxxu_priv *priv) -+{ -+ u8 agg_ctrl, usb_spec, page_thresh; -+ -+ usb_spec = rtl8xxxu_read8(priv, REG_USB_SPECIAL_OPTION); -+ usb_spec &= ~USB_SPEC_USB_AGG_ENABLE; -+ -+ agg_ctrl = rtl8xxxu_read8(priv, REG_TRXDMA_CTRL); -+ agg_ctrl &= ~TRXDMA_CTRL_RXDMA_AGG_EN; -+ -+ agg_ctrl |= TRXDMA_CTRL_RXDMA_AGG_EN; -+ -+ rtl8xxxu_write8(priv, REG_TRXDMA_CTRL, agg_ctrl); -+ rtl8xxxu_write8(priv, REG_USB_SPECIAL_OPTION, usb_spec); -+ -+ /* -+ * The number of packets we can take looks to be buffer size / 512 -+ * which matches the 512 byte rounding we have to do when de-muxing -+ * the packets. -+ * -+ * Sample numbers from the vendor driver: -+ * USB High-Speed mode values: -+ * RxAggBlockCount = 8 : 512 byte unit -+ * RxAggBlockTimeout = 6 -+ * RxAggPageCount = 48 : 128 byte unit -+ * RxAggPageTimeout = 4 or 6 (absolute time 34ms/(2^6)) -+ */ -+ -+ page_thresh = (priv->fops->rx_agg_buf_size / 512); -+ rtl8xxxu_write8(priv, REG_RXDMA_AGG_PG_TH, page_thresh); -+ rtl8xxxu_write8(priv, REG_USB_DMA_AGG_TO, 4); -+ priv->rx_buf_aggregation = 1; -+} -+ - static void rtl8xxxu_set_basic_rates(struct rtl8xxxu_priv *priv, u32 rate_cfg) - { - u32 val32; |