RTL8192CU: add kernel 3.10 patches

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2013-07-03 12:41:04 +02:00
parent 772ccfb229
commit f3e1aa0b8f
3 changed files with 1804 additions and 0 deletions

View File

@ -0,0 +1,285 @@
From 0bb2e327dd12e44fbd67ff169217fa1f7f0c609b Mon Sep 17 00:00:00 2001
From: kolasa <kkolasa@winsoft.pl>
Date: Sun, 12 May 2013 21:21:46 +0200
Subject: [PATCH] switching to proc_create ( /proc for read/write is not yet
usable )
---
.../os_dep/linux/os_intfs.c | 105 ++++++++++++++++++++-
1 file changed, 100 insertions(+), 5 deletions(-)
diff --git a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c
index 4d057a6..17f46f6 100644
--- a/os_dep/linux/os_intfs.c
+++ b/os_dep/linux/os_intfs.c
@@ -275,14 +275,22 @@ void rtw_proc_init_one(struct net_device *dev)
#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
rtw_proc=create_proc_entry(rtw_proc_name, S_IFDIR, proc_net);
#else
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
rtw_proc=create_proc_entry(rtw_proc_name, S_IFDIR, init_net.proc_net);
+#else
+ rtw_proc=proc_mkdir(rtw_proc_name, init_net.proc_net);
+#endif
#endif
if (rtw_proc == NULL) {
DBG_8192C(KERN_ERR "Unable to create rtw_proc directory\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("ver_info", S_IFREG | S_IRUGO, rtw_proc, proc_get_drv_version, dev);
+#else
+ entry = proc_create_data("ver_info", S_IFREG | S_IRUGO, rtw_proc, proc_get_drv_version, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
@@ -293,10 +301,13 @@ void rtw_proc_init_one(struct net_device *dev)
if(padapter->dir_dev == NULL)
{
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
padapter->dir_dev = create_proc_entry(dev->name,
S_IFDIR | S_IRUGO | S_IXUGO,
rtw_proc);
-
+#else
+ padapter->dir_dev = proc_mkdir(dev->name,rtw_proc);
+#endif
dir_dev = padapter->dir_dev;
if(dir_dev==NULL)
@@ -324,84 +335,136 @@ void rtw_proc_init_one(struct net_device *dev)
rtw_proc_cnt++;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("write_reg", S_IFREG | S_IRUGO,
dir_dev, proc_get_write_reg, dev);
+#else
+ entry = proc_create_data("write_reg", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_write_reg, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry->write_proc = proc_set_write_reg;
entry = create_proc_read_entry("read_reg", S_IFREG | S_IRUGO,
dir_dev, proc_get_read_reg, dev);
+#else
+ entry = proc_create_data("read_reg", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_read_reg, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry->write_proc = proc_set_read_reg;
-
entry = create_proc_read_entry("fwstate", S_IFREG | S_IRUGO,
dir_dev, proc_get_fwstate, dev);
+#else
+ entry = proc_create_data("fwstate", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_fwstate, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
-
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("sec_info", S_IFREG | S_IRUGO,
dir_dev, proc_get_sec_info, dev);
+#else
+ entry = proc_create_data("sec_info", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_sec_info, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("mlmext_state", S_IFREG | S_IRUGO,
dir_dev, proc_get_mlmext_state, dev);
+#else
+ entry = proc_create_data("mlmext_state", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_mlmext_state, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
-
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("qos_option", S_IFREG | S_IRUGO,
dir_dev, proc_get_qos_option, dev);
+#else
+ entry = proc_create_data("qos_option", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_qos_option, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("ht_option", S_IFREG | S_IRUGO,
dir_dev, proc_get_ht_option, dev);
+#else
+ entry = proc_create_data("ht_option", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_ht_option, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("rf_info", S_IFREG | S_IRUGO,
dir_dev, proc_get_rf_info, dev);
+#else
+ entry = proc_create_data("rf_info", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_rf_info, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("ap_info", S_IFREG | S_IRUGO,
dir_dev, proc_get_ap_info, dev);
+#else
+ entry = proc_create_data("ap_info", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_ap_info, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("adapter_state", S_IFREG | S_IRUGO,
dir_dev, proc_get_adapter_state, dev);
+#else
+ entry = proc_create_data("adapter_state", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_adapter_state, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("trx_info", S_IFREG | S_IRUGO,
dir_dev, proc_get_trx_info, dev);
+#else
+ entry = proc_create_data("trx_info", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_trx_info, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
@@ -409,8 +472,13 @@ void rtw_proc_init_one(struct net_device *dev)
#ifdef CONFIG_AP_MODE
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("all_sta_info", S_IFREG | S_IRUGO,
dir_dev, proc_get_all_sta_info, dev);
+#else
+ entry = proc_create_data("all_sta_info", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_all_sta_info, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
@@ -418,8 +486,13 @@ void rtw_proc_init_one(struct net_device *dev)
#endif
#ifdef DBG_MEMORY_LEAK
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("_malloc_cnt", S_IFREG | S_IRUGO,
dir_dev, proc_get_malloc_cnt, dev);
+#else
+ entry = proc_create_data("_malloc_cnt", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_malloc_cnt, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
@@ -427,38 +500,60 @@ void rtw_proc_init_one(struct net_device *dev)
#endif
#ifdef CONFIG_FIND_BEST_CHANNEL
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("best_channel", S_IFREG | S_IRUGO,
dir_dev, proc_get_best_channel, dev);
+#else
+ entry = proc_create_data("best_channel", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_best_channel, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("rx_signal", S_IFREG | S_IRUGO,
dir_dev, proc_get_rx_signal, dev);
+#else
+ entry = proc_create_data("rx_signal", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_rx_signal, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry->write_proc = proc_set_rx_signal;
entry = create_proc_read_entry("ampdu_enable", S_IFREG | S_IRUGO,
dir_dev, proc_get_ampdu_enable, dev);
+#else
+ entry = proc_create_data("ampdu_enable", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_ampdu_enable, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry->write_proc = proc_set_ampdu_enable;
entry = create_proc_read_entry("rssi_disp", S_IFREG | S_IRUGO,
dir_dev, proc_get_rssi_disp, dev);
+#else
+ entry = proc_create_data("rssi_disp", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_rssi_disp, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry->write_proc = proc_set_rssi_disp;
-
+#endif
}
void rtw_proc_remove_one(struct net_device *dev)
--
1.8.1.6

View File

@ -0,0 +1,92 @@
From e30a6db935752679770b31668e899a7b77e1fec4 Mon Sep 17 00:00:00 2001
From: kolasa <kkolasa@winsoft.pl>
Date: Mon, 13 May 2013 11:43:03 +0200
Subject: [PATCH] Usable /proc/net/rtl819xC/ver_info
---
.../core/rtw_debug.c | 9 +++++++++
.../include/rtw_debug.h | 5 ++++-
.../os_dep/linux/os_intfs.c | 14 +++++++++++++-
3 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/core/rtw_debug.c b/core/rtw_debug.c
index 04e472d..018fe48 100644
--- a/core/rtw_debug.c
+++ b/core/rtw_debug.c
@@ -62,6 +62,7 @@
#ifdef CONFIG_PROC_DEBUG
#include <rtw_version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
int proc_get_drv_version(char *page, char **start,
off_t offset, int count,
int *eof, void *data)
@@ -75,6 +76,14 @@ int proc_get_drv_version(char *page, char **start,
*eof = 1;
return len;
}
+#else
+int proc_get_drv_version(struct seq_file *m, void* data)
+{
+ struct net_device *dev = data;
+
+ return seq_printf(m, "%s\n", DRIVERVERSION);
+}
+#endif
int proc_get_write_reg(char *page, char **start,
off_t offset, int count,
diff --git a/include/rtw_debug.h b/include/rtw_debug.h
index eca6692..5b3e5cc 100644
--- a/include/rtw_debug.h
+++ b/include/rtw_debug.h
@@ -285,10 +285,13 @@
#ifdef CONFIG_PROC_DEBUG
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
int proc_get_drv_version(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
-
+#else
+ int proc_get_drv_version(struct seq_file *m, void *data);
+#endif
int proc_get_write_reg(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
diff --git a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c
index 99a5a1c..0e61bf9 100644
--- a/os_dep/linux/os_intfs.c
+++ b/os_dep/linux/os_intfs.c
@@ -255,6 +255,18 @@
static struct proc_dir_entry *rtw_proc = NULL;
static int rtw_proc_cnt = 0;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
+static int drv_version_proc_open(struct inode *inode, struct file *file){
+ return single_open(file, proc_get_drv_version, NULL);
+}
+
+static const struct file_operations drv_version_fops = {
+ .open = drv_version_proc_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+};
+#endif
+
void rtw_proc_init_one(struct net_device *dev)
{
struct proc_dir_entry *dir_dev = NULL;
@@ -289,7 +301,7 @@ void rtw_proc_init_one(struct net_device *dev)
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("ver_info", S_IFREG | S_IRUGO, rtw_proc, proc_get_drv_version, dev);
#else
- entry = proc_create_data("ver_info", S_IFREG | S_IRUGO, rtw_proc, proc_get_drv_version, dev);
+ entry = proc_create_data("ver_info", S_IFREG | S_IRUGO, rtw_proc, &drv_version_fops, dev);
#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
--
1.8.1.6