diff --git a/packages/linux-drivers/RTL8192CU/package.mk b/packages/linux-drivers/RTL8192CU/package.mk
index 51dbffc477..9407b3f7a0 100644
--- a/packages/linux-drivers/RTL8192CU/package.mk
+++ b/packages/linux-drivers/RTL8192CU/package.mk
@@ -1,24 +1,25 @@
################################################################################
-# This file is part of OpenELEC - http://www.openelec.tv
+# This file is part of LibreELEC - https://libreelec.tv
+# Copyright (C) 2018-present Team LibreELEC
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
#
-# OpenELEC is free software: you can redistribute it and/or modify
+# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
-# OpenELEC is distributed in the hope that it will be useful,
+# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with OpenELEC. If not, see .
+# along with LibreELEC. If not, see .
################################################################################
PKG_NAME="RTL8192CU"
-PKG_VERSION="8757801"
-PKG_SHA256="8738f74fbfb003dd4de77c482d70fca9dacb05ab4eb44147a8046fb4d5531ee7"
+PKG_VERSION="756f2ec"
+PKG_SHA256="83e0858914dfe1455df9fd824ade8776746b8730143ae3946f7b7f9556fd9365"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/pvaret/rtl8192cu-fixes"
diff --git a/packages/linux-drivers/RTL8192CU/patches/RTL8192CU-0201-kernel-4.7.patch b/packages/linux-drivers/RTL8192CU/patches/RTL8192CU-0201-kernel-4.7.patch
deleted file mode 100644
index 73f9d108b1..0000000000
--- a/packages/linux-drivers/RTL8192CU/patches/RTL8192CU-0201-kernel-4.7.patch
+++ /dev/null
@@ -1,259 +0,0 @@
-diff -Naur a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c
---- a/os_dep/linux/ioctl_cfg80211.c 2016-06-23 13:32:35.544763290 +0100
-+++ b/os_dep/linux/ioctl_cfg80211.c 2016-06-23 13:33:02.888918609 +0100
-@@ -57,7 +57,7 @@
- }
-
- #define CHAN2G(_channel, _freq, _flags) { \
-- .band = IEEE80211_BAND_2GHZ, \
-+ .band = NL80211_BAND_2GHZ, \
- .center_freq = (_freq), \
- .hw_value = (_channel), \
- .flags = (_flags), \
-@@ -66,7 +66,7 @@
- }
-
- #define CHAN5G(_channel, _flags) { \
-- .band = IEEE80211_BAND_5GHZ, \
-+ .band = NL80211_BAND_5GHZ, \
- .center_freq = 5000 + (5 * (_channel)), \
- .hw_value = (_channel), \
- .flags = (_flags), \
-@@ -166,18 +166,18 @@
- }
-
- struct ieee80211_supported_band *rtw_spt_band_alloc(
-- enum ieee80211_band band
-+ enum nl80211_band band
- )
- {
- struct ieee80211_supported_band *spt_band = NULL;
- int n_channels, n_bitrates;
-
-- if(band == IEEE80211_BAND_2GHZ)
-+ if(band == NL80211_BAND_2GHZ)
- {
- n_channels = RTW_2G_CHANNELS_NUM;
- n_bitrates = RTW_G_RATES_NUM;
- }
-- else if(band == IEEE80211_BAND_5GHZ)
-+ else if(band == NL80211_BAND_5GHZ)
- {
- n_channels = RTW_5G_CHANNELS_NUM;
- n_bitrates = RTW_A_RATES_NUM;
-@@ -201,12 +201,12 @@
- spt_band->n_channels = n_channels;
- spt_band->n_bitrates = n_bitrates;
-
-- if(band == IEEE80211_BAND_2GHZ)
-+ if(band == NL80211_BAND_2GHZ)
- {
- rtw_2g_channels_init(spt_band->channels);
- rtw_2g_rates_init(spt_band->bitrates);
- }
-- else if(band == IEEE80211_BAND_5GHZ)
-+ else if(band == NL80211_BAND_5GHZ)
- {
- rtw_5g_channels_init(spt_band->channels);
- rtw_5g_rates_init(spt_band->bitrates);
-@@ -226,13 +226,13 @@
- if(!spt_band)
- return;
-
-- if(spt_band->band == IEEE80211_BAND_2GHZ)
-+ if(spt_band->band == NL80211_BAND_2GHZ)
- {
- size = sizeof(struct ieee80211_supported_band)
- + sizeof(struct ieee80211_channel)*RTW_2G_CHANNELS_NUM
- + sizeof(struct ieee80211_rate)*RTW_G_RATES_NUM;
- }
-- else if(spt_band->band == IEEE80211_BAND_5GHZ)
-+ else if(spt_band->band == NL80211_BAND_5GHZ)
- {
- size = sizeof(struct ieee80211_supported_band)
- + sizeof(struct ieee80211_channel)*RTW_5G_CHANNELS_NUM
-@@ -301,12 +301,12 @@
- /* see 802.11 17.3.8.3.2 and Annex J
- * there are overlapping channel numbers in 5GHz and 2GHz bands */
-
-- if (band == IEEE80211_BAND_5GHZ) {
-+ if (band == NL80211_BAND_5GHZ) {
- if (chan >= 182 && chan <= 196)
- return 4000 + chan * 5;
- else
- return 5000 + chan * 5;
-- } else { /* IEEE80211_BAND_2GHZ */
-+ } else { /* NL80211_BAND_2GHZ */
- if (chan == 14)
- return 2484;
- else if (chan < 14)
-@@ -391,9 +391,9 @@
- DBG_871X("%s, got sr, but ssid mismatch, to remove this bss\n", __func__);
-
- if (pselect_network->Configuration.DSConfig <= RTW_CH_MAX_2G_CHANNEL)
-- freq = rtw_ieee80211_channel_to_frequency(pselect_network->Configuration.DSConfig, IEEE80211_BAND_2GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(pselect_network->Configuration.DSConfig, NL80211_BAND_2GHZ);
- else
-- freq = rtw_ieee80211_channel_to_frequency(pselect_network->Configuration.DSConfig, IEEE80211_BAND_5GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(pselect_network->Configuration.DSConfig, NL80211_BAND_5GHZ);
-
- notify_channel = ieee80211_get_channel(wiphy, freq);
- pselect_bss = cfg80211_get_bss(wiphy, NULL/*notify_channel*/,
-@@ -424,9 +424,9 @@
-
- channel = pnetwork->network.Configuration.DSConfig;
- if (channel <= RTW_CH_MAX_2G_CHANNEL)
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_2GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(channel, NL80211_BAND_2GHZ);
- else
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_5GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(channel, NL80211_BAND_5GHZ);
-
- notify_channel = ieee80211_get_channel(wiphy, freq);
-
-@@ -569,9 +569,9 @@
- return _FALSE;
-
- if (pnetwork->Configuration.DSConfig <= RTW_CH_MAX_2G_CHANNEL)
-- freq = rtw_ieee80211_channel_to_frequency(pnetwork->Configuration.DSConfig, IEEE80211_BAND_2GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(pnetwork->Configuration.DSConfig, NL80211_BAND_2GHZ);
- else
-- freq = rtw_ieee80211_channel_to_frequency(pnetwork->Configuration.DSConfig, IEEE80211_BAND_5GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(pnetwork->Configuration.DSConfig, NL80211_BAND_5GHZ);
-
- notify_channel = ieee80211_get_channel(padapter->rtw_wdev->wiphy, freq);
- bss = cfg80211_get_bss(padapter->rtw_wdev->wiphy, notify_channel,
-@@ -626,9 +626,9 @@
- u16 channel = cur_network->network.Configuration.DSConfig;
-
- if (channel <= RTW_CH_MAX_2G_CHANNEL)
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_2GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(channel, NL80211_BAND_2GHZ);
- else
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_5GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(channel, NL80211_BAND_5GHZ);
-
- notify_channel = ieee80211_get_channel(wiphy, freq);
- #endif
-@@ -3097,9 +3097,9 @@
- #else /* defined(RTW_USE_CFG80211_STA_EVENT) */
- channel = pmlmeext->cur_channel;
- if (channel <= RTW_CH_MAX_2G_CHANNEL)
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_2GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(channel, NL80211_BAND_2GHZ);
- else
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_5GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(channel, NL80211_BAND_5GHZ);
-
- #ifdef COMPAT_KERNEL_RELEASE
- rtw_cfg80211_rx_mgmt(padapter, freq, 0, pmgmt_frame, frame_len, GFP_ATOMIC);
-@@ -3142,9 +3142,9 @@
- #else /* defined(RTW_USE_CFG80211_STA_EVENT) */
- channel = pmlmeext->cur_channel;
- if (channel <= RTW_CH_MAX_2G_CHANNEL)
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_2GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(channel, NL80211_BAND_2GHZ);
- else
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_5GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(channel, NL80211_BAND_5GHZ);
-
- pmgmt_frame = mgmt_buf;
- pwlanhdr = (struct rtw_ieee80211_hdr *)pmgmt_frame;
-@@ -3950,9 +3950,9 @@
-
- indicate:
- if (channel <= RTW_CH_MAX_2G_CHANNEL)
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_2GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(channel, NL80211_BAND_2GHZ);
- else
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_5GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(channel, NL80211_BAND_5GHZ);
-
- #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE)
- rtw_cfg80211_rx_mgmt(padapter, freq, 0, pmgmt_frame, frame_len, GFP_ATOMIC);
-@@ -3990,9 +3990,9 @@
-
- indicate:
- if (channel <= RTW_CH_MAX_2G_CHANNEL)
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_2GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(channel, NL80211_BAND_2GHZ);
- else
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_5GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(channel, NL80211_BAND_5GHZ);
-
- #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE)
- rtw_cfg80211_rx_mgmt(padapter, freq, 0, pmgmt_frame, frame_len, GFP_ATOMIC);
-@@ -4020,9 +4020,9 @@
- DBG_871X("RTW_Rx:category(%u), action(%u)\n", category, action);
-
- if (channel <= RTW_CH_MAX_2G_CHANNEL)
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_2GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(channel, NL80211_BAND_2GHZ);
- else
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_5GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(channel, NL80211_BAND_5GHZ);
-
- #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE)
- rtw_cfg80211_rx_mgmt(adapter, freq, 0, frame, frame_len, GFP_ATOMIC);
-@@ -5199,7 +5199,7 @@
- #endif
- };
-
--static void rtw_cfg80211_init_ht_capab(struct ieee80211_sta_ht_cap *ht_cap, enum ieee80211_band band, u8 rf_type)
-+static void rtw_cfg80211_init_ht_capab(struct ieee80211_sta_ht_cap *ht_cap, enum nl80211_band band, u8 rf_type)
- {
-
- #define MAX_BIT_RATE_40MHZ_MCS15 300 /* Mbps */
-@@ -5223,7 +5223,7 @@
- ht_cap->mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED;
-
- /*
-- *hw->wiphy->bands[IEEE80211_BAND_2GHZ]
-+ *hw->wiphy->bands[NL80211_BAND_2GHZ]
- *base on ant_num
- *rx_mask: RX mask
- *if rx_ant =1 rx_mask[0]=0xff;==>MCS0-MCS7
-@@ -5268,16 +5268,16 @@
-
- /* if (padapter->registrypriv.wireless_mode & WIRELESS_11G) */
- {
-- bands = wiphy->bands[IEEE80211_BAND_2GHZ];
-+ bands = wiphy->bands[NL80211_BAND_2GHZ];
- if(bands)
-- rtw_cfg80211_init_ht_capab(&bands->ht_cap, IEEE80211_BAND_2GHZ, rf_type);
-+ rtw_cfg80211_init_ht_capab(&bands->ht_cap, NL80211_BAND_2GHZ, rf_type);
- }
-
- /* if (padapter->registrypriv.wireless_mode & WIRELESS_11A) */
- {
-- bands = wiphy->bands[IEEE80211_BAND_5GHZ];
-+ bands = wiphy->bands[NL80211_BAND_5GHZ];
- if(bands)
-- rtw_cfg80211_init_ht_capab(&bands->ht_cap, IEEE80211_BAND_5GHZ, rf_type);
-+ rtw_cfg80211_init_ht_capab(&bands->ht_cap, NL80211_BAND_5GHZ, rf_type);
- }
- }
-
-@@ -5348,9 +5348,9 @@
- wiphy->n_cipher_suites = ARRAY_SIZE(rtw_cipher_suites);
-
- /* if (padapter->registrypriv.wireless_mode & WIRELESS_11G) */
-- wiphy->bands[IEEE80211_BAND_2GHZ] = rtw_spt_band_alloc(IEEE80211_BAND_2GHZ);
-+ wiphy->bands[NL80211_BAND_2GHZ] = rtw_spt_band_alloc(NL80211_BAND_2GHZ);
- /* if (padapter->registrypriv.wireless_mode & WIRELESS_11A) */
-- wiphy->bands[IEEE80211_BAND_5GHZ] = rtw_spt_band_alloc(IEEE80211_BAND_5GHZ);
-+ wiphy->bands[NL80211_BAND_5GHZ] = rtw_spt_band_alloc(NL80211_BAND_5GHZ);
-
- #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38) && LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0))
- wiphy->flags |= WIPHY_FLAG_SUPPORTS_SEPARATE_DEFAULT_KEYS;
-@@ -5456,8 +5456,8 @@
-
- pwdev_priv = wdev_to_priv(wdev);
-
-- rtw_spt_band_free(wdev->wiphy->bands[IEEE80211_BAND_2GHZ]);
-- rtw_spt_band_free(wdev->wiphy->bands[IEEE80211_BAND_5GHZ]);
-+ rtw_spt_band_free(wdev->wiphy->bands[NL80211_BAND_2GHZ]);
-+ rtw_spt_band_free(wdev->wiphy->bands[NL80211_BAND_5GHZ]);
-
- wiphy_free(wdev->wiphy);
-