diff --git a/kernel/drivers/module-bbswitch/pspec.xml b/kernel/drivers/module-bbswitch/pspec.xml
index 8d7b51d6..80df92dc 100644
--- a/kernel/drivers/module-bbswitch/pspec.xml
+++ b/kernel/drivers/module-bbswitch/pspec.xml
@@ -13,7 +13,7 @@
Kernel module allowing to switch dedicated graphics card on Optimus laptops
kernel module allowing to switch dedicated graphics card on Optimus laptops
- kernel-module-headers
+ kernel-module-headers
https://github.com/Bumblebee-Project/bbswitch/archive/v0.8.tar.gz
@@ -22,7 +22,7 @@
module-bbswitch
- kernel
+ kernel
/lib/modules
@@ -36,6 +36,13 @@
+
+ 2018-03-11
+ 0.8
+ Rebuild for new kernel
+ Kamil Atlı
+ suvari@pisilinux.org
+
2018-03-03
0.8
diff --git a/kernel/drivers/module-broadcom-wl/pspec.xml b/kernel/drivers/module-broadcom-wl/pspec.xml
index 98ecb56c..0873a797 100644
--- a/kernel/drivers/module-broadcom-wl/pspec.xml
+++ b/kernel/drivers/module-broadcom-wl/pspec.xml
@@ -15,7 +15,7 @@
https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/hybrid-v35-nodebug-pcoem-6_30_223_271.tar.gz
https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
- kernel-module-headers
+ kernel-module-headers
patch/license.patch
@@ -28,7 +28,7 @@
module-broadcom-wl
- kernel
+ kernel
module-broadcom-wl-userspace
@@ -57,6 +57,13 @@
+
+ 2018-03-11
+ 6.30.223.271
+ Rebuild for new kernel.
+ Kamil Atlı
+ suvari@pisilinux.org
+
2018-03-03
6.30.223.271
diff --git a/kernel/drivers/module-virtualbox-guest/pspec.xml b/kernel/drivers/module-virtualbox-guest/pspec.xml
index 62ed0620..7d6d1dd7 100644
--- a/kernel/drivers/module-virtualbox-guest/pspec.xml
+++ b/kernel/drivers/module-virtualbox-guest/pspec.xml
@@ -14,14 +14,14 @@
This package provides the kernel modules needed for mouse integration and shared folder support between VirtualBox host and guest systems.
https://github.com/Rmys/Sources/raw/master/module-virtualbox-guest-5.2.8.tar.xz
- kernel-module-headers
+ kernel-module-headers
module-virtualbox-guest
- kernel
+ kernel
baselayout
module-virtualbox-guest-userspace
@@ -52,6 +52,13 @@
+
+ 2018-03-11
+ 5.2.8
+ Rebuild for new kernel.
+ Kamil Atlı
+ suvari@pisilinux.org
+
2018-03-03
5.2.8
diff --git a/kernel/drivers/module-virtualbox/pspec.xml b/kernel/drivers/module-virtualbox/pspec.xml
index a3a8d80a..61d7593f 100644
--- a/kernel/drivers/module-virtualbox/pspec.xml
+++ b/kernel/drivers/module-virtualbox/pspec.xml
@@ -14,7 +14,7 @@
This package provides the kernel support for VirtualBox.
https://github.com/Rmys/Sources/raw/master/module-virtualbox-5.2.8.tar.xz
- kernel-module-headers
+ kernel-module-headers
@@ -25,7 +25,7 @@
ndiswrapper
- kernel
+ kernel
/lib/modules
@@ -41,6 +41,13 @@
+
+ 2018-03-11
+ 1.61
+ Version bump.
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
2018-03-03
1.61
diff --git a/kernel/kernel/files/configs/kernel-x86_64-config b/kernel/kernel/files/configs/kernel-x86_64-config
index 1f95099a..33867e4e 100644
--- a/kernel/kernel/files/configs/kernel-x86_64-config
+++ b/kernel/kernel/files/configs/kernel-x86_64-config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86_64 4.9.80 Kernel Configuration
+# Linux/x86_64 4.9.86 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@@ -2062,6 +2062,7 @@ CONFIG_SCSI_INITIO=m
CONFIG_SCSI_INIA100=m
# CONFIG_SCSI_PPA is not set
# CONFIG_SCSI_IMM is not set
+# CONFIG_PPSCSI is not set
CONFIG_SCSI_STEX=m
CONFIG_SCSI_SYM53C8XX_2=m
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
@@ -6947,12 +6948,3 @@ CONFIG_ARCH_HAS_SG_CHAIN=y
CONFIG_ARCH_HAS_PMEM_API=y
CONFIG_ARCH_HAS_MMIO_FLUSH=y
CONFIG_SBITMAP=y
-
-#
-# Unofficial 3rd party kernel additions
-#
-CONFIG_VIAHSS=m
-CONFIG_NDISWRAPPER=m
-# CONFIG_RTL8812AU is not set
-CONFIG_RTL8723BS=m
-CONFIG_WLAN_SDIO=y
diff --git a/kernel/kernel/files/patches/linux/patch-4.9.86.xz b/kernel/kernel/files/patches/linux/patch-4.9.86.xz
new file mode 100644
index 00000000..40158991
Binary files /dev/null and b/kernel/kernel/files/patches/linux/patch-4.9.86.xz differ
diff --git a/kernel/kernel/files/patches/mageia/net-wireless-realtek-rtl8xxxu-linux-4.11-rc.patch b/kernel/kernel/files/patches/mageia/net-wireless-realtek-rtl8xxxu-linux-4.11-rc.patch
new file mode 100644
index 00000000..6f7092cc
--- /dev/null
+++ b/kernel/kernel/files/patches/mageia/net-wireless-realtek-rtl8xxxu-linux-4.11-rc.patch
@@ -0,0 +1,371 @@
+
+From upstream 4.11-rc2+ git
+
+Fixes mga #20508
+
+Signed-off-by: Thomas Backlund
+
+
+ drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 29 ++--
+ drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c | 2
+ drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c | 4
+ drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c | 2
+ drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_872tb.c | 2
+ drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 121 +++++++++++------
+ drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 2
+ 7 files changed, 105 insertions(+), 57 deletions(-)
+
+diff -Nurp linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c
+--- linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c 2016-12-11 21:17:54.000000000 +0200
++++ linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c 2017-03-07 22:29:07.840867965 +0200
+@@ -1,7 +1,7 @@
+ /*
+ * RTL8XXXU mac80211 USB driver - 8188c/8188r/8192c specific subdriver
+ *
+- * Copyright (c) 2014 - 2016 Jes Sorensen
++ * Copyright (c) 2014 - 2017 Jes Sorensen
+ *
+ * Portions, notably calibration code:
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
+diff -Nurp linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c
+--- linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c 2016-12-11 21:17:54.000000000 +0200
++++ linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c 2017-03-07 22:29:07.841868054 +0200
+@@ -1,7 +1,7 @@
+ /*
+ * RTL8XXXU mac80211 USB driver - 8192e specific subdriver
+ *
+- * Copyright (c) 2014 - 2016 Jes Sorensen
++ * Copyright (c) 2014 - 2017 Jes Sorensen
+ *
+ * Portions, notably calibration code:
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
+@@ -1556,7 +1556,7 @@ exit:
+ return ret;
+ }
+
+-void rtl8192eu_power_off(struct rtl8xxxu_priv *priv)
++static void rtl8192eu_power_off(struct rtl8xxxu_priv *priv)
+ {
+ u8 val8;
+ u16 val16;
+diff -Nurp linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c
+--- linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c 2016-12-11 21:17:54.000000000 +0200
++++ linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c 2017-03-07 22:29:07.841868054 +0200
+@@ -1,7 +1,7 @@
+ /*
+ * RTL8XXXU mac80211 USB driver - 8723a specific subdriver
+ *
+- * Copyright (c) 2014 - 2016 Jes Sorensen
++ * Copyright (c) 2014 - 2017 Jes Sorensen
+ *
+ * Portions, notably calibration code:
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
+diff -Nurp linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c
+--- linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c 2016-12-11 21:17:54.000000000 +0200
++++ linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c 2017-03-07 22:29:07.841868054 +0200
+@@ -1,7 +1,7 @@
+ /*
+ * RTL8XXXU mac80211 USB driver - 8723b specific subdriver
+ *
+- * Copyright (c) 2014 - 2016 Jes Sorensen
++ * Copyright (c) 2014 - 2017 Jes Sorensen
+ *
+ * Portions, notably calibration code:
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
+diff -Nurp linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
+--- linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c 2017-03-18 13:35:47.148080457 +0200
++++ linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c 2017-03-07 22:29:07.841868054 +0200
+@@ -1,7 +1,7 @@
+ /*
+ * RTL8XXXU mac80211 USB driver
+ *
+- * Copyright (c) 2014 - 2016 Jes Sorensen
++ * Copyright (c) 2014 - 2017 Jes Sorensen
+ *
+ * Portions, notably calibration code:
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
+@@ -48,7 +48,7 @@ static bool rtl8xxxu_dma_aggregation;
+ static int rtl8xxxu_dma_agg_timeout = -1;
+ static int rtl8xxxu_dma_agg_pages = -1;
+
+-MODULE_AUTHOR("Jes Sorensen ");
++MODULE_AUTHOR("Jes Sorensen ");
+ MODULE_DESCRIPTION("RTL8XXXu USB mac80211 Wireless LAN Driver");
+ MODULE_LICENSE("GPL");
+ MODULE_FIRMWARE("rtlwifi/rtl8723aufw_A.bin");
+@@ -4767,13 +4767,28 @@ static void rtl8xxxu_dump_action(struct
+ * This format is used on 8188cu/8192cu/8723au
+ */
+ void
+-rtl8xxxu_fill_txdesc_v1(struct ieee80211_hdr *hdr,
+- struct rtl8xxxu_txdesc32 *tx_desc, u32 rate,
+- u16 rate_flag, bool sgi, bool short_preamble,
+- bool ampdu_enable)
++rtl8xxxu_fill_txdesc_v1(struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
++ struct ieee80211_tx_info *tx_info,
++ struct rtl8xxxu_txdesc32 *tx_desc, bool sgi,
++ bool short_preamble, bool ampdu_enable, u32 rts_rate)
+ {
++ struct ieee80211_rate *tx_rate = ieee80211_get_tx_rate(hw, tx_info);
++ struct rtl8xxxu_priv *priv = hw->priv;
++ struct device *dev = &priv->udev->dev;
++ u32 rate;
++ u16 rate_flags = tx_info->control.rates[0].flags;
+ u16 seq_number;
+
++ if (rate_flags & IEEE80211_TX_RC_MCS &&
++ !ieee80211_is_mgmt(hdr->frame_control))
++ rate = tx_info->control.rates[0].idx + DESC_RATE_MCS0;
++ else
++ rate = tx_rate->hw_value;
++
++ if (rtl8xxxu_debug & RTL8XXXU_DEBUG_TX)
++ dev_info(dev, "%s: TX rate: %d, pkt size %d\n",
++ __func__, rate, cpu_to_le16(tx_desc->pkt_size));
++
+ seq_number = IEEE80211_SEQ_TO_SN(le16_to_cpu(hdr->seq_ctrl));
+
+ tx_desc->txdw5 = cpu_to_le32(rate);
+@@ -4804,15 +4819,16 @@ rtl8xxxu_fill_txdesc_v1(struct ieee80211
+ if (sgi)
+ tx_desc->txdw5 |= cpu_to_le32(TXDESC32_SHORT_GI);
+
+- if (rate_flag & IEEE80211_TX_RC_USE_RTS_CTS) {
+- /*
+- * Use RTS rate 24M - does the mac80211 tell
+- * us which to use?
+- */
+- tx_desc->txdw4 |= cpu_to_le32(DESC_RATE_24M <<
+- TXDESC32_RTS_RATE_SHIFT);
++ /*
++ * rts_rate is zero if RTS/CTS or CTS to SELF are not enabled
++ */
++ tx_desc->txdw4 |= cpu_to_le32(rts_rate << TXDESC32_RTS_RATE_SHIFT);
++ if (rate_flags & IEEE80211_TX_RC_USE_RTS_CTS) {
+ tx_desc->txdw4 |= cpu_to_le32(TXDESC32_RTS_CTS_ENABLE);
+ tx_desc->txdw4 |= cpu_to_le32(TXDESC32_HW_RTS_ENABLE);
++ } else if (rate_flags & IEEE80211_TX_RC_USE_CTS_PROTECT) {
++ tx_desc->txdw4 |= cpu_to_le32(TXDESC32_CTS_SELF_ENABLE);
++ tx_desc->txdw4 |= cpu_to_le32(TXDESC32_HW_RTS_ENABLE);
+ }
+ }
+
+@@ -4821,16 +4837,31 @@ rtl8xxxu_fill_txdesc_v1(struct ieee80211
+ * This format is used on 8192eu/8723bu
+ */
+ void
+-rtl8xxxu_fill_txdesc_v2(struct ieee80211_hdr *hdr,
+- struct rtl8xxxu_txdesc32 *tx_desc32, u32 rate,
+- u16 rate_flag, bool sgi, bool short_preamble,
+- bool ampdu_enable)
++rtl8xxxu_fill_txdesc_v2(struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
++ struct ieee80211_tx_info *tx_info,
++ struct rtl8xxxu_txdesc32 *tx_desc32, bool sgi,
++ bool short_preamble, bool ampdu_enable, u32 rts_rate)
+ {
++ struct ieee80211_rate *tx_rate = ieee80211_get_tx_rate(hw, tx_info);
++ struct rtl8xxxu_priv *priv = hw->priv;
++ struct device *dev = &priv->udev->dev;
+ struct rtl8xxxu_txdesc40 *tx_desc40;
++ u32 rate;
++ u16 rate_flags = tx_info->control.rates[0].flags;
+ u16 seq_number;
+
+ tx_desc40 = (struct rtl8xxxu_txdesc40 *)tx_desc32;
+
++ if (rate_flags & IEEE80211_TX_RC_MCS &&
++ !ieee80211_is_mgmt(hdr->frame_control))
++ rate = tx_info->control.rates[0].idx + DESC_RATE_MCS0;
++ else
++ rate = tx_rate->hw_value;
++
++ if (rtl8xxxu_debug & RTL8XXXU_DEBUG_TX)
++ dev_info(dev, "%s: TX rate: %d, pkt size %d\n",
++ __func__, rate, cpu_to_le16(tx_desc40->pkt_size));
++
+ seq_number = IEEE80211_SEQ_TO_SN(le16_to_cpu(hdr->seq_ctrl));
+
+ tx_desc40->txdw4 = cpu_to_le32(rate);
+@@ -4857,15 +4888,19 @@ rtl8xxxu_fill_txdesc_v2(struct ieee80211
+ if (short_preamble)
+ tx_desc40->txdw5 |= cpu_to_le32(TXDESC40_SHORT_PREAMBLE);
+
+- if (rate_flag & IEEE80211_TX_RC_USE_RTS_CTS) {
+- /*
+- * Use RTS rate 24M - does the mac80211 tell
+- * us which to use?
+- */
+- tx_desc40->txdw4 |= cpu_to_le32(DESC_RATE_24M <<
+- TXDESC40_RTS_RATE_SHIFT);
++ tx_desc40->txdw4 |= cpu_to_le32(rts_rate << TXDESC40_RTS_RATE_SHIFT);
++ /*
++ * rts_rate is zero if RTS/CTS or CTS to SELF are not enabled
++ */
++ if (rate_flags & IEEE80211_TX_RC_USE_RTS_CTS) {
+ tx_desc40->txdw3 |= cpu_to_le32(TXDESC40_RTS_CTS_ENABLE);
+ tx_desc40->txdw3 |= cpu_to_le32(TXDESC40_HW_RTS_ENABLE);
++ } else if (rate_flags & IEEE80211_TX_RC_USE_CTS_PROTECT) {
++ /*
++ * For some reason the vendor driver doesn't set
++ * TXDESC40_HW_RTS_ENABLE for CTS to SELF
++ */
++ tx_desc40->txdw3 |= cpu_to_le32(TXDESC40_CTS_SELF_ENABLE);
+ }
+ }
+
+@@ -4875,14 +4910,13 @@ static void rtl8xxxu_tx(struct ieee80211
+ {
+ struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
+ struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb);
+- struct ieee80211_rate *tx_rate = ieee80211_get_tx_rate(hw, tx_info);
+ struct rtl8xxxu_priv *priv = hw->priv;
+ struct rtl8xxxu_txdesc32 *tx_desc;
+ struct rtl8xxxu_tx_urb *tx_urb;
+ struct ieee80211_sta *sta = NULL;
+ struct ieee80211_vif *vif = tx_info->control.vif;
+ struct device *dev = &priv->udev->dev;
+- u32 queue, rate;
++ u32 queue, rts_rate;
+ u16 pktlen = skb->len;
+ u16 seq_number;
+ u16 rate_flag = tx_info->control.rates[0].flags;
+@@ -4909,10 +4943,6 @@ static void rtl8xxxu_tx(struct ieee80211
+ goto error;
+ }
+
+- if (rtl8xxxu_debug & RTL8XXXU_DEBUG_TX)
+- dev_info(dev, "%s: TX rate: %d (%d), pkt size %d\n",
+- __func__, tx_rate->bitrate, tx_rate->hw_value, pktlen);
+-
+ if (ieee80211_is_action(hdr->frame_control))
+ rtl8xxxu_dump_action(dev, hdr);
+
+@@ -4966,12 +4996,6 @@ static void rtl8xxxu_tx(struct ieee80211
+ }
+ }
+
+- if (rate_flag & IEEE80211_TX_RC_MCS &&
+- !ieee80211_is_mgmt(hdr->frame_control))
+- rate = tx_info->control.rates[0].idx + DESC_RATE_MCS0;
+- else
+- rate = tx_rate->hw_value;
+-
+ if (rate_flag & IEEE80211_TX_RC_SHORT_GI ||
+ (ieee80211_is_data_qos(hdr->frame_control) &&
+ sta && sta->ht_cap.cap &
+@@ -4982,10 +5006,17 @@ static void rtl8xxxu_tx(struct ieee80211
+ (sta && vif && vif->bss_conf.use_short_preamble))
+ short_preamble = true;
+
++ if (rate_flag & IEEE80211_TX_RC_USE_RTS_CTS)
++ rts_rate = ieee80211_get_rts_cts_rate(hw, tx_info)->hw_value;
++ else if (rate_flag & IEEE80211_TX_RC_USE_CTS_PROTECT)
++ rts_rate = ieee80211_get_rts_cts_rate(hw, tx_info)->hw_value;
++ else
++ rts_rate = 0;
++
+ seq_number = IEEE80211_SEQ_TO_SN(le16_to_cpu(hdr->seq_ctrl));
+
+- priv->fops->fill_txdesc(hdr, tx_desc, rate, rate_flag,
+- sgi, short_preamble, ampdu_enable);
++ priv->fops->fill_txdesc(hw, hdr, tx_info, tx_desc, sgi, short_preamble,
++ ampdu_enable, rts_rate);
+
+ rtl8xxxu_calc_tx_desc_csum(tx_desc);
+
+@@ -5969,6 +6000,7 @@ static int rtl8xxxu_probe(struct usb_int
+ case 0x8176:
+ case 0x8178:
+ case 0x817f:
++ case 0x818b:
+ untested = 0;
+ break;
+ }
+@@ -6165,6 +6197,12 @@ static struct usb_device_id dev_table[]
+ .driver_info = (unsigned long)&rtl8723au_fops},
+ {USB_DEVICE_AND_INTERFACE_INFO(USB_VENDOR_ID_REALTEK, 0x818b, 0xff, 0xff, 0xff),
+ .driver_info = (unsigned long)&rtl8192eu_fops},
++/* TP-Link TL-WN822N v4 */
++{USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x0108, 0xff, 0xff, 0xff),
++ .driver_info = (unsigned long)&rtl8192eu_fops},
++/* D-Link DWA-131 rev E1, tested by David Patiño */
++{USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x3319, 0xff, 0xff, 0xff),
++ .driver_info = (unsigned long)&rtl8192eu_fops},
+ /* Tested by Myckel Habets */
+ {USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x0109, 0xff, 0xff, 0xff),
+ .driver_info = (unsigned long)&rtl8192eu_fops},
+@@ -6316,6 +6354,13 @@ static struct usb_device_id dev_table[]
+ .driver_info = (unsigned long)&rtl8192cu_fops},
+ {USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0x7822, 0xff, 0xff, 0xff),
+ .driver_info = (unsigned long)&rtl8192cu_fops},
++/* found in rtl8192eu vendor driver */
++{USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x0107, 0xff, 0xff, 0xff),
++ .driver_info = (unsigned long)&rtl8192eu_fops},
++{USB_DEVICE_AND_INTERFACE_INFO(0x2019, 0xab33, 0xff, 0xff, 0xff),
++ .driver_info = (unsigned long)&rtl8192eu_fops},
++{USB_DEVICE_AND_INTERFACE_INFO(USB_VENDOR_ID_REALTEK, 0x818c, 0xff, 0xff, 0xff),
++ .driver_info = (unsigned long)&rtl8192eu_fops},
+ #endif
+ { }
+ };
+diff -Nurp linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
+--- linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h 2016-12-11 21:17:54.000000000 +0200
++++ linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h 2017-03-07 22:29:07.840867965 +0200
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2014 - 2016 Jes Sorensen
++ * Copyright (c) 2014 - 2017 Jes Sorensen
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+@@ -1337,10 +1337,11 @@ struct rtl8xxxu_fileops {
+ u32 ramask, int sgi);
+ void (*report_connect) (struct rtl8xxxu_priv *priv,
+ u8 macid, bool connect);
+- void (*fill_txdesc) (struct ieee80211_hdr *hdr,
+- struct rtl8xxxu_txdesc32 *tx_desc, u32 rate,
+- u16 rate_flag, bool sgi, bool short_preamble,
+- bool ampdu_enable);
++ void (*fill_txdesc) (struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
++ struct ieee80211_tx_info *tx_info,
++ struct rtl8xxxu_txdesc32 *tx_desc, bool sgi,
++ bool short_preamble, bool ampdu_enable,
++ u32 rts_rate);
+ int writeN_block_size;
+ int rx_agg_buf_size;
+ char tx_desc_size;
+@@ -1434,14 +1435,16 @@ int rtl8xxxu_parse_rxdesc24(struct rtl8x
+ int rtl8xxxu_gen2_channel_to_group(int channel);
+ bool rtl8xxxu_gen2_simularity_compare(struct rtl8xxxu_priv *priv,
+ int result[][8], int c1, int c2);
+-void rtl8xxxu_fill_txdesc_v1(struct ieee80211_hdr *hdr,
+- struct rtl8xxxu_txdesc32 *tx_desc, u32 rate,
+- u16 rate_flag, bool sgi, bool short_preamble,
+- bool ampdu_enable);
+-void rtl8xxxu_fill_txdesc_v2(struct ieee80211_hdr *hdr,
+- struct rtl8xxxu_txdesc32 *tx_desc32, u32 rate,
+- u16 rate_flag, bool sgi, bool short_preamble,
+- bool ampdu_enable);
++void rtl8xxxu_fill_txdesc_v1(struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
++ struct ieee80211_tx_info *tx_info,
++ struct rtl8xxxu_txdesc32 *tx_desc, bool sgi,
++ bool short_preamble, bool ampdu_enable,
++ u32 rts_rate);
++void rtl8xxxu_fill_txdesc_v2(struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
++ struct ieee80211_tx_info *tx_info,
++ struct rtl8xxxu_txdesc32 *tx_desc32, bool sgi,
++ bool short_preamble, bool ampdu_enable,
++ u32 rts_rate);
+
+ extern struct rtl8xxxu_fileops rtl8192cu_fops;
+ extern struct rtl8xxxu_fileops rtl8192eu_fops;
+diff -Nurp linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
+--- linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h 2016-12-11 21:17:54.000000000 +0200
++++ linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h 2017-03-07 22:29:07.842868144 +0200
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2014 - 2016 Jes Sorensen
++ * Copyright (c) 2014 - 2017 Jes Sorensen
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
diff --git a/kernel/kernel/pspec.xml b/kernel/kernel/pspec.xml
index bc84ebb1..9383daea 100644
--- a/kernel/kernel/pspec.xml
+++ b/kernel/kernel/pspec.xml
@@ -28,7 +28,7 @@
- patches/linux/patch-4.9.80.xz
+ patches/linux/patch-4.9.86.xz
@@ -44,12 +44,12 @@
patches/mageia/ACPI-video-Add-a-quirk-to-force-acpi-video-backlight.patch
patches/mageia/acpi-do-not-warn-if-_BQC-does-not-exist.patch
patches/mageia/acpi-ACPICA-Events-Fix-acpi_ev_initialize_region-return-v.patch
-
+ patches/mageia/scsi-ppscsi-3.0-buildfix.patch
patches/mageia/scsi-megaraid-new-sysfs-name.patch
patches/mageia/ide-pci-sis5513-965.patch
patches/mageia/mpt-vmware-fix.patch
@@ -139,7 +139,7 @@
patches/mageia/usb-storage-unusual_devs-add-id.patch
patches/mageia/usb-storage-unusual_devs-add-id-2.6.37-buildfix.patch
patches/mageia/media-usb-pwc-lie-in-proc-usb-devices.patch
- patches/mageia/3rd-3rdparty-1.0-tree.patch
+
-
+ patches/mageia/3rd-aes2501-rmmod-oops-fix.patch
patches/mageia/3rd-ndiswrapper-1.60.patch
patches/mageia/3rd-ndiswrapper-Kconfig.patch
patches/mageia/3rd-ndiswrapper-Makefile-build-fix.patch
@@ -165,7 +164,7 @@
patches/mageia/3rd-viahss-2.6.35-buildfix.patch
patches/mageia/3rd-viahss-3.0-buildfix.patch
patches/mageia/3rd-rtl8723bs.patch
- patches/mageia/3rd-rtl8812au.patch
+ patches/mageia/3rd-rtl8812au.patch
patches/mageia/tools-testing-selftest-Makefile-remove-powerpc-reference.patch
patches/mageia/tools-build-Make-fixdep-parsing-wait-for-last-target.patch
patches/mageia/tools-perf-tools-Force-fixdep-compilation-at-the-start-of-.patch
@@ -224,6 +223,17 @@
+
+ 2018-03-10
+ 4.9.86
+ Version Bump.
+ security
+
+ systemRestart
+
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
2018-03-02
4.9.80
diff --git a/kernel/tools/cpupowertools/files/patches/linux/patch-4.9.86.xz b/kernel/tools/cpupowertools/files/patches/linux/patch-4.9.86.xz
new file mode 100644
index 00000000..40158991
Binary files /dev/null and b/kernel/tools/cpupowertools/files/patches/linux/patch-4.9.86.xz differ
diff --git a/kernel/tools/cpupowertools/files/patches/mageia/net-wireless-realtek-rtl8xxxu-linux-4.11-rc.patch b/kernel/tools/cpupowertools/files/patches/mageia/net-wireless-realtek-rtl8xxxu-linux-4.11-rc.patch
new file mode 100644
index 00000000..6f7092cc
--- /dev/null
+++ b/kernel/tools/cpupowertools/files/patches/mageia/net-wireless-realtek-rtl8xxxu-linux-4.11-rc.patch
@@ -0,0 +1,371 @@
+
+From upstream 4.11-rc2+ git
+
+Fixes mga #20508
+
+Signed-off-by: Thomas Backlund
+
+
+ drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 29 ++--
+ drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c | 2
+ drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c | 4
+ drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c | 2
+ drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_872tb.c | 2
+ drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 121 +++++++++++------
+ drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 2
+ 7 files changed, 105 insertions(+), 57 deletions(-)
+
+diff -Nurp linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c
+--- linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c 2016-12-11 21:17:54.000000000 +0200
++++ linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c 2017-03-07 22:29:07.840867965 +0200
+@@ -1,7 +1,7 @@
+ /*
+ * RTL8XXXU mac80211 USB driver - 8188c/8188r/8192c specific subdriver
+ *
+- * Copyright (c) 2014 - 2016 Jes Sorensen
++ * Copyright (c) 2014 - 2017 Jes Sorensen
+ *
+ * Portions, notably calibration code:
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
+diff -Nurp linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c
+--- linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c 2016-12-11 21:17:54.000000000 +0200
++++ linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c 2017-03-07 22:29:07.841868054 +0200
+@@ -1,7 +1,7 @@
+ /*
+ * RTL8XXXU mac80211 USB driver - 8192e specific subdriver
+ *
+- * Copyright (c) 2014 - 2016 Jes Sorensen
++ * Copyright (c) 2014 - 2017 Jes Sorensen
+ *
+ * Portions, notably calibration code:
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
+@@ -1556,7 +1556,7 @@ exit:
+ return ret;
+ }
+
+-void rtl8192eu_power_off(struct rtl8xxxu_priv *priv)
++static void rtl8192eu_power_off(struct rtl8xxxu_priv *priv)
+ {
+ u8 val8;
+ u16 val16;
+diff -Nurp linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c
+--- linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c 2016-12-11 21:17:54.000000000 +0200
++++ linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c 2017-03-07 22:29:07.841868054 +0200
+@@ -1,7 +1,7 @@
+ /*
+ * RTL8XXXU mac80211 USB driver - 8723a specific subdriver
+ *
+- * Copyright (c) 2014 - 2016 Jes Sorensen
++ * Copyright (c) 2014 - 2017 Jes Sorensen
+ *
+ * Portions, notably calibration code:
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
+diff -Nurp linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c
+--- linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c 2016-12-11 21:17:54.000000000 +0200
++++ linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c 2017-03-07 22:29:07.841868054 +0200
+@@ -1,7 +1,7 @@
+ /*
+ * RTL8XXXU mac80211 USB driver - 8723b specific subdriver
+ *
+- * Copyright (c) 2014 - 2016 Jes Sorensen
++ * Copyright (c) 2014 - 2017 Jes Sorensen
+ *
+ * Portions, notably calibration code:
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
+diff -Nurp linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
+--- linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c 2017-03-18 13:35:47.148080457 +0200
++++ linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c 2017-03-07 22:29:07.841868054 +0200
+@@ -1,7 +1,7 @@
+ /*
+ * RTL8XXXU mac80211 USB driver
+ *
+- * Copyright (c) 2014 - 2016 Jes Sorensen
++ * Copyright (c) 2014 - 2017 Jes Sorensen
+ *
+ * Portions, notably calibration code:
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
+@@ -48,7 +48,7 @@ static bool rtl8xxxu_dma_aggregation;
+ static int rtl8xxxu_dma_agg_timeout = -1;
+ static int rtl8xxxu_dma_agg_pages = -1;
+
+-MODULE_AUTHOR("Jes Sorensen ");
++MODULE_AUTHOR("Jes Sorensen ");
+ MODULE_DESCRIPTION("RTL8XXXu USB mac80211 Wireless LAN Driver");
+ MODULE_LICENSE("GPL");
+ MODULE_FIRMWARE("rtlwifi/rtl8723aufw_A.bin");
+@@ -4767,13 +4767,28 @@ static void rtl8xxxu_dump_action(struct
+ * This format is used on 8188cu/8192cu/8723au
+ */
+ void
+-rtl8xxxu_fill_txdesc_v1(struct ieee80211_hdr *hdr,
+- struct rtl8xxxu_txdesc32 *tx_desc, u32 rate,
+- u16 rate_flag, bool sgi, bool short_preamble,
+- bool ampdu_enable)
++rtl8xxxu_fill_txdesc_v1(struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
++ struct ieee80211_tx_info *tx_info,
++ struct rtl8xxxu_txdesc32 *tx_desc, bool sgi,
++ bool short_preamble, bool ampdu_enable, u32 rts_rate)
+ {
++ struct ieee80211_rate *tx_rate = ieee80211_get_tx_rate(hw, tx_info);
++ struct rtl8xxxu_priv *priv = hw->priv;
++ struct device *dev = &priv->udev->dev;
++ u32 rate;
++ u16 rate_flags = tx_info->control.rates[0].flags;
+ u16 seq_number;
+
++ if (rate_flags & IEEE80211_TX_RC_MCS &&
++ !ieee80211_is_mgmt(hdr->frame_control))
++ rate = tx_info->control.rates[0].idx + DESC_RATE_MCS0;
++ else
++ rate = tx_rate->hw_value;
++
++ if (rtl8xxxu_debug & RTL8XXXU_DEBUG_TX)
++ dev_info(dev, "%s: TX rate: %d, pkt size %d\n",
++ __func__, rate, cpu_to_le16(tx_desc->pkt_size));
++
+ seq_number = IEEE80211_SEQ_TO_SN(le16_to_cpu(hdr->seq_ctrl));
+
+ tx_desc->txdw5 = cpu_to_le32(rate);
+@@ -4804,15 +4819,16 @@ rtl8xxxu_fill_txdesc_v1(struct ieee80211
+ if (sgi)
+ tx_desc->txdw5 |= cpu_to_le32(TXDESC32_SHORT_GI);
+
+- if (rate_flag & IEEE80211_TX_RC_USE_RTS_CTS) {
+- /*
+- * Use RTS rate 24M - does the mac80211 tell
+- * us which to use?
+- */
+- tx_desc->txdw4 |= cpu_to_le32(DESC_RATE_24M <<
+- TXDESC32_RTS_RATE_SHIFT);
++ /*
++ * rts_rate is zero if RTS/CTS or CTS to SELF are not enabled
++ */
++ tx_desc->txdw4 |= cpu_to_le32(rts_rate << TXDESC32_RTS_RATE_SHIFT);
++ if (rate_flags & IEEE80211_TX_RC_USE_RTS_CTS) {
+ tx_desc->txdw4 |= cpu_to_le32(TXDESC32_RTS_CTS_ENABLE);
+ tx_desc->txdw4 |= cpu_to_le32(TXDESC32_HW_RTS_ENABLE);
++ } else if (rate_flags & IEEE80211_TX_RC_USE_CTS_PROTECT) {
++ tx_desc->txdw4 |= cpu_to_le32(TXDESC32_CTS_SELF_ENABLE);
++ tx_desc->txdw4 |= cpu_to_le32(TXDESC32_HW_RTS_ENABLE);
+ }
+ }
+
+@@ -4821,16 +4837,31 @@ rtl8xxxu_fill_txdesc_v1(struct ieee80211
+ * This format is used on 8192eu/8723bu
+ */
+ void
+-rtl8xxxu_fill_txdesc_v2(struct ieee80211_hdr *hdr,
+- struct rtl8xxxu_txdesc32 *tx_desc32, u32 rate,
+- u16 rate_flag, bool sgi, bool short_preamble,
+- bool ampdu_enable)
++rtl8xxxu_fill_txdesc_v2(struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
++ struct ieee80211_tx_info *tx_info,
++ struct rtl8xxxu_txdesc32 *tx_desc32, bool sgi,
++ bool short_preamble, bool ampdu_enable, u32 rts_rate)
+ {
++ struct ieee80211_rate *tx_rate = ieee80211_get_tx_rate(hw, tx_info);
++ struct rtl8xxxu_priv *priv = hw->priv;
++ struct device *dev = &priv->udev->dev;
+ struct rtl8xxxu_txdesc40 *tx_desc40;
++ u32 rate;
++ u16 rate_flags = tx_info->control.rates[0].flags;
+ u16 seq_number;
+
+ tx_desc40 = (struct rtl8xxxu_txdesc40 *)tx_desc32;
+
++ if (rate_flags & IEEE80211_TX_RC_MCS &&
++ !ieee80211_is_mgmt(hdr->frame_control))
++ rate = tx_info->control.rates[0].idx + DESC_RATE_MCS0;
++ else
++ rate = tx_rate->hw_value;
++
++ if (rtl8xxxu_debug & RTL8XXXU_DEBUG_TX)
++ dev_info(dev, "%s: TX rate: %d, pkt size %d\n",
++ __func__, rate, cpu_to_le16(tx_desc40->pkt_size));
++
+ seq_number = IEEE80211_SEQ_TO_SN(le16_to_cpu(hdr->seq_ctrl));
+
+ tx_desc40->txdw4 = cpu_to_le32(rate);
+@@ -4857,15 +4888,19 @@ rtl8xxxu_fill_txdesc_v2(struct ieee80211
+ if (short_preamble)
+ tx_desc40->txdw5 |= cpu_to_le32(TXDESC40_SHORT_PREAMBLE);
+
+- if (rate_flag & IEEE80211_TX_RC_USE_RTS_CTS) {
+- /*
+- * Use RTS rate 24M - does the mac80211 tell
+- * us which to use?
+- */
+- tx_desc40->txdw4 |= cpu_to_le32(DESC_RATE_24M <<
+- TXDESC40_RTS_RATE_SHIFT);
++ tx_desc40->txdw4 |= cpu_to_le32(rts_rate << TXDESC40_RTS_RATE_SHIFT);
++ /*
++ * rts_rate is zero if RTS/CTS or CTS to SELF are not enabled
++ */
++ if (rate_flags & IEEE80211_TX_RC_USE_RTS_CTS) {
+ tx_desc40->txdw3 |= cpu_to_le32(TXDESC40_RTS_CTS_ENABLE);
+ tx_desc40->txdw3 |= cpu_to_le32(TXDESC40_HW_RTS_ENABLE);
++ } else if (rate_flags & IEEE80211_TX_RC_USE_CTS_PROTECT) {
++ /*
++ * For some reason the vendor driver doesn't set
++ * TXDESC40_HW_RTS_ENABLE for CTS to SELF
++ */
++ tx_desc40->txdw3 |= cpu_to_le32(TXDESC40_CTS_SELF_ENABLE);
+ }
+ }
+
+@@ -4875,14 +4910,13 @@ static void rtl8xxxu_tx(struct ieee80211
+ {
+ struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
+ struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb);
+- struct ieee80211_rate *tx_rate = ieee80211_get_tx_rate(hw, tx_info);
+ struct rtl8xxxu_priv *priv = hw->priv;
+ struct rtl8xxxu_txdesc32 *tx_desc;
+ struct rtl8xxxu_tx_urb *tx_urb;
+ struct ieee80211_sta *sta = NULL;
+ struct ieee80211_vif *vif = tx_info->control.vif;
+ struct device *dev = &priv->udev->dev;
+- u32 queue, rate;
++ u32 queue, rts_rate;
+ u16 pktlen = skb->len;
+ u16 seq_number;
+ u16 rate_flag = tx_info->control.rates[0].flags;
+@@ -4909,10 +4943,6 @@ static void rtl8xxxu_tx(struct ieee80211
+ goto error;
+ }
+
+- if (rtl8xxxu_debug & RTL8XXXU_DEBUG_TX)
+- dev_info(dev, "%s: TX rate: %d (%d), pkt size %d\n",
+- __func__, tx_rate->bitrate, tx_rate->hw_value, pktlen);
+-
+ if (ieee80211_is_action(hdr->frame_control))
+ rtl8xxxu_dump_action(dev, hdr);
+
+@@ -4966,12 +4996,6 @@ static void rtl8xxxu_tx(struct ieee80211
+ }
+ }
+
+- if (rate_flag & IEEE80211_TX_RC_MCS &&
+- !ieee80211_is_mgmt(hdr->frame_control))
+- rate = tx_info->control.rates[0].idx + DESC_RATE_MCS0;
+- else
+- rate = tx_rate->hw_value;
+-
+ if (rate_flag & IEEE80211_TX_RC_SHORT_GI ||
+ (ieee80211_is_data_qos(hdr->frame_control) &&
+ sta && sta->ht_cap.cap &
+@@ -4982,10 +5006,17 @@ static void rtl8xxxu_tx(struct ieee80211
+ (sta && vif && vif->bss_conf.use_short_preamble))
+ short_preamble = true;
+
++ if (rate_flag & IEEE80211_TX_RC_USE_RTS_CTS)
++ rts_rate = ieee80211_get_rts_cts_rate(hw, tx_info)->hw_value;
++ else if (rate_flag & IEEE80211_TX_RC_USE_CTS_PROTECT)
++ rts_rate = ieee80211_get_rts_cts_rate(hw, tx_info)->hw_value;
++ else
++ rts_rate = 0;
++
+ seq_number = IEEE80211_SEQ_TO_SN(le16_to_cpu(hdr->seq_ctrl));
+
+- priv->fops->fill_txdesc(hdr, tx_desc, rate, rate_flag,
+- sgi, short_preamble, ampdu_enable);
++ priv->fops->fill_txdesc(hw, hdr, tx_info, tx_desc, sgi, short_preamble,
++ ampdu_enable, rts_rate);
+
+ rtl8xxxu_calc_tx_desc_csum(tx_desc);
+
+@@ -5969,6 +6000,7 @@ static int rtl8xxxu_probe(struct usb_int
+ case 0x8176:
+ case 0x8178:
+ case 0x817f:
++ case 0x818b:
+ untested = 0;
+ break;
+ }
+@@ -6165,6 +6197,12 @@ static struct usb_device_id dev_table[]
+ .driver_info = (unsigned long)&rtl8723au_fops},
+ {USB_DEVICE_AND_INTERFACE_INFO(USB_VENDOR_ID_REALTEK, 0x818b, 0xff, 0xff, 0xff),
+ .driver_info = (unsigned long)&rtl8192eu_fops},
++/* TP-Link TL-WN822N v4 */
++{USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x0108, 0xff, 0xff, 0xff),
++ .driver_info = (unsigned long)&rtl8192eu_fops},
++/* D-Link DWA-131 rev E1, tested by David Patiño */
++{USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x3319, 0xff, 0xff, 0xff),
++ .driver_info = (unsigned long)&rtl8192eu_fops},
+ /* Tested by Myckel Habets */
+ {USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x0109, 0xff, 0xff, 0xff),
+ .driver_info = (unsigned long)&rtl8192eu_fops},
+@@ -6316,6 +6354,13 @@ static struct usb_device_id dev_table[]
+ .driver_info = (unsigned long)&rtl8192cu_fops},
+ {USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0x7822, 0xff, 0xff, 0xff),
+ .driver_info = (unsigned long)&rtl8192cu_fops},
++/* found in rtl8192eu vendor driver */
++{USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x0107, 0xff, 0xff, 0xff),
++ .driver_info = (unsigned long)&rtl8192eu_fops},
++{USB_DEVICE_AND_INTERFACE_INFO(0x2019, 0xab33, 0xff, 0xff, 0xff),
++ .driver_info = (unsigned long)&rtl8192eu_fops},
++{USB_DEVICE_AND_INTERFACE_INFO(USB_VENDOR_ID_REALTEK, 0x818c, 0xff, 0xff, 0xff),
++ .driver_info = (unsigned long)&rtl8192eu_fops},
+ #endif
+ { }
+ };
+diff -Nurp linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
+--- linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h 2016-12-11 21:17:54.000000000 +0200
++++ linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h 2017-03-07 22:29:07.840867965 +0200
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2014 - 2016 Jes Sorensen
++ * Copyright (c) 2014 - 2017 Jes Sorensen
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+@@ -1337,10 +1337,11 @@ struct rtl8xxxu_fileops {
+ u32 ramask, int sgi);
+ void (*report_connect) (struct rtl8xxxu_priv *priv,
+ u8 macid, bool connect);
+- void (*fill_txdesc) (struct ieee80211_hdr *hdr,
+- struct rtl8xxxu_txdesc32 *tx_desc, u32 rate,
+- u16 rate_flag, bool sgi, bool short_preamble,
+- bool ampdu_enable);
++ void (*fill_txdesc) (struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
++ struct ieee80211_tx_info *tx_info,
++ struct rtl8xxxu_txdesc32 *tx_desc, bool sgi,
++ bool short_preamble, bool ampdu_enable,
++ u32 rts_rate);
+ int writeN_block_size;
+ int rx_agg_buf_size;
+ char tx_desc_size;
+@@ -1434,14 +1435,16 @@ int rtl8xxxu_parse_rxdesc24(struct rtl8x
+ int rtl8xxxu_gen2_channel_to_group(int channel);
+ bool rtl8xxxu_gen2_simularity_compare(struct rtl8xxxu_priv *priv,
+ int result[][8], int c1, int c2);
+-void rtl8xxxu_fill_txdesc_v1(struct ieee80211_hdr *hdr,
+- struct rtl8xxxu_txdesc32 *tx_desc, u32 rate,
+- u16 rate_flag, bool sgi, bool short_preamble,
+- bool ampdu_enable);
+-void rtl8xxxu_fill_txdesc_v2(struct ieee80211_hdr *hdr,
+- struct rtl8xxxu_txdesc32 *tx_desc32, u32 rate,
+- u16 rate_flag, bool sgi, bool short_preamble,
+- bool ampdu_enable);
++void rtl8xxxu_fill_txdesc_v1(struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
++ struct ieee80211_tx_info *tx_info,
++ struct rtl8xxxu_txdesc32 *tx_desc, bool sgi,
++ bool short_preamble, bool ampdu_enable,
++ u32 rts_rate);
++void rtl8xxxu_fill_txdesc_v2(struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
++ struct ieee80211_tx_info *tx_info,
++ struct rtl8xxxu_txdesc32 *tx_desc32, bool sgi,
++ bool short_preamble, bool ampdu_enable,
++ u32 rts_rate);
+
+ extern struct rtl8xxxu_fileops rtl8192cu_fops;
+ extern struct rtl8xxxu_fileops rtl8192eu_fops;
+diff -Nurp linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
+--- linux-4.9.16/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h 2016-12-11 21:17:54.000000000 +0200
++++ linux-4.11-rc/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h 2017-03-07 22:29:07.842868144 +0200
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2014 - 2016 Jes Sorensen
++ * Copyright (c) 2014 - 2017 Jes Sorensen
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
diff --git a/kernel/tools/cpupowertools/pspec.xml b/kernel/tools/cpupowertools/pspec.xml
index 07263a09..6e5c65cc 100644
--- a/kernel/tools/cpupowertools/pspec.xml
+++ b/kernel/tools/cpupowertools/pspec.xml
@@ -16,9 +16,9 @@
pciutils-devel
-
+
- patches/linux/patch-4.9.80.xz
+ patches/linux/patch-4.9.86.xz
@@ -34,12 +34,12 @@
patches/mageia/ACPI-video-Add-a-quirk-to-force-acpi-video-backlight.patch
patches/mageia/acpi-do-not-warn-if-_BQC-does-not-exist.patch
patches/mageia/acpi-ACPICA-Events-Fix-acpi_ev_initialize_region-return-v.patch
-
+ patches/mageia/scsi-ppscsi-3.0-buildfix.patch
patches/mageia/scsi-megaraid-new-sysfs-name.patch
patches/mageia/ide-pci-sis5513-965.patch
patches/mageia/mpt-vmware-fix.patch
@@ -129,7 +129,7 @@
patches/mageia/usb-storage-unusual_devs-add-id.patch
patches/mageia/usb-storage-unusual_devs-add-id-2.6.37-buildfix.patch
patches/mageia/media-usb-pwc-lie-in-proc-usb-devices.patch
- patches/mageia/3rd-3rdparty-1.0-tree.patch
+
-
+ patches/mageia/3rd-aes2501-rmmod-oops-fix.patch
patches/mageia/3rd-ndiswrapper-1.60.patch
patches/mageia/3rd-ndiswrapper-Kconfig.patch
patches/mageia/3rd-ndiswrapper-Makefile-build-fix.patch
@@ -155,7 +154,7 @@
patches/mageia/3rd-viahss-2.6.35-buildfix.patch
patches/mageia/3rd-viahss-3.0-buildfix.patch
patches/mageia/3rd-rtl8723bs.patch
- patches/mageia/3rd-rtl8812au.patch
+ patches/mageia/3rd-rtl8812au.patch
patches/mageia/tools-testing-selftest-Makefile-remove-powerpc-reference.patch
patches/mageia/tools-build-Make-fixdep-parsing-wait-for-last-target.patch
patches/mageia/tools-perf-tools-Force-fixdep-compilation-at-the-start-of-.patch
@@ -186,6 +185,13 @@
+
+ 2018-03-11
+ 4.9.86
+ Release bump
+ PisiLinux Community
+ admin@pisilinux.org
+
2018-03-03
4.9.80