From c795794eef8737f6272b2acce9025807af52da81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Thu, 29 Sep 2016 09:48:09 +0200 Subject: mac80211: use upstream patches for rtl8xxxu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also improves rtl8188eu support. Signed-off-by: Álvaro Fernández Rojas --- ...n1-Add-module-parameters-to-adjust-DMA-ag.patch | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 package/kernel/mac80211/patches/652-0012-rtl8xxxu-gen1-Add-module-parameters-to-adjust-DMA-ag.patch (limited to 'package/kernel/mac80211/patches/652-0012-rtl8xxxu-gen1-Add-module-parameters-to-adjust-DMA-ag.patch') diff --git a/package/kernel/mac80211/patches/652-0012-rtl8xxxu-gen1-Add-module-parameters-to-adjust-DMA-ag.patch b/package/kernel/mac80211/patches/652-0012-rtl8xxxu-gen1-Add-module-parameters-to-adjust-DMA-ag.patch new file mode 100644 index 0000000000..90c2a4af27 --- /dev/null +++ b/package/kernel/mac80211/patches/652-0012-rtl8xxxu-gen1-Add-module-parameters-to-adjust-DMA-ag.patch @@ -0,0 +1,74 @@ +From fd83f12278262feccd012b62c30643bd6a6c2888 Mon Sep 17 00:00:00 2001 +From: Jes Sorensen +Date: Mon, 27 Jun 2016 12:32:10 -0400 +Subject: [PATCH] rtl8xxxu: gen1: Add module parameters to adjust DMA + aggregation parameters + +This allows the user to specify DMA aggregation timout and block +count. Blocks are presumably always 512 bytes, so the minimum block +count is 6 for 802.11 packets. + +Signed-off-by: Jes Sorensen +Signed-off-by: Kalle Valo +--- + .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 28 ++++++++++++++++++++++ + 1 file changed, 28 insertions(+) + +--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c ++++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +@@ -45,6 +45,8 @@ + int rtl8xxxu_debug = RTL8XXXU_DEBUG_EFUSE; + static bool rtl8xxxu_ht40_2g; + static bool rtl8xxxu_dma_aggregation; ++static int rtl8xxxu_dma_agg_timeout = -1; ++static int rtl8xxxu_dma_agg_pages = -1; + + MODULE_AUTHOR("Jes Sorensen "); + MODULE_DESCRIPTION("RTL8XXXu USB mac80211 Wireless LAN Driver"); +@@ -65,6 +67,10 @@ module_param_named(ht40_2g, rtl8xxxu_ht4 + MODULE_PARM_DESC(ht40_2g, "Enable HT40 support on the 2.4GHz band"); + module_param_named(dma_aggregation, rtl8xxxu_dma_aggregation, bool, 0600); + MODULE_PARM_DESC(dma_aggregation, "Enable DMA packet aggregation"); ++module_param_named(dma_agg_timeout, rtl8xxxu_dma_agg_timeout, int, 0600); ++MODULE_PARM_DESC(dma_agg_timeout, "Set DMA aggregation timeout (range 1-127)"); ++module_param_named(dma_agg_pages, rtl8xxxu_dma_agg_pages, int, 0600); ++MODULE_PARM_DESC(dma_agg_pages, "Set DMA aggregation pages (range 1-127, 0 to disable)"); + + #define USB_VENDOR_ID_REALTEK 0x0bda + #define RTL8XXXU_RX_URBS 32 +@@ -4441,6 +4447,18 @@ void rtl8xxxu_gen1_init_aggregation(stru + */ + + page_thresh = (priv->fops->rx_agg_buf_size / 512); ++ if (rtl8xxxu_dma_agg_pages >= 0) { ++ if (rtl8xxxu_dma_agg_pages <= page_thresh) ++ timeout = page_thresh; ++ else if (rtl8xxxu_dma_agg_pages <= 6) ++ dev_err(&priv->udev->dev, ++ "%s: dma_agg_pages=%i too small, minium is 6\n", ++ __func__, rtl8xxxu_dma_agg_pages); ++ else ++ dev_err(&priv->udev->dev, ++ "%s: dma_agg_pages=%i larger than limit %i\n", ++ __func__, rtl8xxxu_dma_agg_pages, page_thresh); ++ } + rtl8xxxu_write8(priv, REG_RXDMA_AGG_PG_TH, page_thresh); + /* + * REG_RXDMA_AGG_PG_TH + 1 seems to be the timeout register on +@@ -4448,6 +4466,16 @@ void rtl8xxxu_gen1_init_aggregation(stru + * don't set it, so better set both. + */ + timeout = 4; ++ ++ if (rtl8xxxu_dma_agg_timeout >= 0) { ++ if (rtl8xxxu_dma_agg_timeout <= 127) ++ timeout = rtl8xxxu_dma_agg_timeout; ++ else ++ dev_err(&priv->udev->dev, ++ "%s: Invalid dma_agg_timeout: %i\n", ++ __func__, rtl8xxxu_dma_agg_timeout); ++ } ++ + rtl8xxxu_write8(priv, REG_RXDMA_AGG_PG_TH + 1, timeout); + rtl8xxxu_write8(priv, REG_USB_DMA_AGG_TO, timeout); + priv->rx_buf_aggregation = 1; -- cgit v1.2.3