diff options
Diffstat (limited to 'package/kernel/mac80211/patches/657-0002-rtl8xxxu-Add-initial-code-to-detect-8188eu-devices.patch')
-rw-r--r-- | package/kernel/mac80211/patches/657-0002-rtl8xxxu-Add-initial-code-to-detect-8188eu-devices.patch | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/657-0002-rtl8xxxu-Add-initial-code-to-detect-8188eu-devices.patch b/package/kernel/mac80211/patches/657-0002-rtl8xxxu-Add-initial-code-to-detect-8188eu-devices.patch new file mode 100644 index 0000000..9847d3e --- /dev/null +++ b/package/kernel/mac80211/patches/657-0002-rtl8xxxu-Add-initial-code-to-detect-8188eu-devices.patch @@ -0,0 +1,121 @@ +From bde0ecd13877c4074fa59f317c201e19ac4d75cf Mon Sep 17 00:00:00 2001 +From: Jes Sorensen <Jes.Sorensen@redhat.com> +Date: Mon, 27 Jun 2016 14:23:44 -0400 +Subject: [PATCH] rtl8xxxu: Add initial code to detect 8188eu devices + +So far this just detects the device and tries to load firmware. + +Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> +--- + drivers/net/wireless/realtek/rtl8xxxu/Makefile | 2 +- + drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 1 + + .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c | 65 ++++++++++++++++++++++ + .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 3 + + 4 files changed, 70 insertions(+), 1 deletion(-) + create mode 100644 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c + +--- a/drivers/net/wireless/realtek/rtl8xxxu/Makefile ++++ b/drivers/net/wireless/realtek/rtl8xxxu/Makefile +@@ -1,4 +1,4 @@ + obj-$(CPTCFG_RTL8XXXU) += rtl8xxxu.o + + rtl8xxxu-y := rtl8xxxu_core.o rtl8xxxu_8192e.o rtl8xxxu_8723b.o \ +- rtl8xxxu_8723a.o rtl8xxxu_8192c.o ++ rtl8xxxu_8723a.o rtl8xxxu_8192c.o rtl8xxxu_8188e.o +--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h ++++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h +@@ -1443,6 +1443,7 @@ void rtl8xxxu_fill_txdesc_v2(struct ieee + u16 rate_flag, bool sgi, bool short_preamble, + bool ampdu_enable); + ++extern struct rtl8xxxu_fileops rtl8188eu_fops; + extern struct rtl8xxxu_fileops rtl8192cu_fops; + extern struct rtl8xxxu_fileops rtl8192eu_fops; + extern struct rtl8xxxu_fileops rtl8723au_fops; +--- /dev/null ++++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c +@@ -0,0 +1,65 @@ ++/* ++ * RTL8XXXU mac80211 USB driver - 8188e specific subdriver ++ * ++ * Copyright (c) 2014 - 2016 Jes Sorensen <Jes.Sorensen@redhat.com> ++ * ++ * Portions, notably calibration code: ++ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. ++ * ++ * This driver was written as a replacement for the vendor provided ++ * rtl8723au driver. As the Realtek 8xxx chips are very similar in ++ * their programming interface, I have started adding support for ++ * additional 8xxx chips like the 8192cu, 8188cus, etc. ++ * ++ * 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 ++ * published by the Free Software Foundation. ++ * ++ * This program 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. ++ */ ++ ++#include <linux/init.h> ++#include <linux/kernel.h> ++#include <linux/sched.h> ++#include <linux/errno.h> ++#include <linux/slab.h> ++#include <linux/module.h> ++#include <linux/spinlock.h> ++#include <linux/list.h> ++#include <linux/usb.h> ++#include <linux/netdevice.h> ++#include <linux/etherdevice.h> ++#include <linux/ethtool.h> ++#include <linux/wireless.h> ++#include <linux/firmware.h> ++#include <linux/moduleparam.h> ++#include <net/mac80211.h> ++#include "rtl8xxxu.h" ++#include "rtl8xxxu_regs.h" ++ ++static int rtl8188eu_parse_efuse(struct rtl8xxxu_priv *priv) ++{ ++ return 0; ++} ++ ++static int rtl8188eu_load_firmware(struct rtl8xxxu_priv *priv) ++{ ++ char *fw_name; ++ int ret; ++ ++ fw_name = "rtlwifi/rtl8188eufw.bin"; ++ ++ ret = rtl8xxxu_load_firmware(priv, fw_name); ++ ++ return -EINVAL; ++ return ret; ++} ++ ++struct rtl8xxxu_fileops rtl8188eu_fops = { ++ .parse_efuse = rtl8188eu_parse_efuse, ++ .load_firmware = rtl8188eu_load_firmware, ++ .reset_8051 = rtl8xxxu_reset_8051, ++}; +--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c ++++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +@@ -54,6 +54,7 @@ MODULE_LICENSE("GPL"); + MODULE_FIRMWARE("rtlwifi/rtl8723aufw_A.bin"); + MODULE_FIRMWARE("rtlwifi/rtl8723aufw_B.bin"); + MODULE_FIRMWARE("rtlwifi/rtl8723aufw_B_NoBT.bin"); ++MODULE_FIRMWARE("rtlwifi/rtl8188eufw.bin"); + MODULE_FIRMWARE("rtlwifi/rtl8192cufw_A.bin"); + MODULE_FIRMWARE("rtlwifi/rtl8192cufw_B.bin"); + MODULE_FIRMWARE("rtlwifi/rtl8192cufw_TMSC.bin"); +@@ -6159,6 +6160,8 @@ static struct usb_device_id dev_table[] + {USB_DEVICE_AND_INTERFACE_INFO(USB_VENDOR_ID_REALTEK, 0xb720, 0xff, 0xff, 0xff), + .driver_info = (unsigned long)&rtl8723bu_fops}, + #ifdef CPTCFG_RTL8XXXU_UNTESTED ++{USB_DEVICE_AND_INTERFACE_INFO(USB_VENDOR_ID_REALTEK, 0x8179, 0xff, 0xff, 0xff), ++ .driver_info = (unsigned long)&rtl8188eu_fops}, + /* Still supported by rtlwifi */ + {USB_DEVICE_AND_INTERFACE_INFO(USB_VENDOR_ID_REALTEK, 0x8176, 0xff, 0xff, 0xff), + .driver_info = (unsigned long)&rtl8192cu_fops}, |