Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 1404 → Rev 1405

/patches/RT3070_linux/readme.txt
5,5 → 5,7
Original driver from http://www.ralinktech.com/ralink/Home/Support/Linux.html, version 12/25/2008 2.0.1.0
(http://www.ralinktech.com.tw/data/drivers/2008_1225_RT3070_Linux_STA_v2.0.1.0.tar.bz2)
 
Patch it and do 'cp RT2870STA.dat RT3070STA.dat'.
 
Compile and install HowTo from: http://wiki.ubuntuusers.de/WLAN/Ralink#RT28xx-Draft-N
 
/patches/RT3070_linux/RT3070.patch
1,5 → 1,170
--- ./os/linux/2870_main_dev.c.orig 2008-12-24 08:34:46.000000000 +0100
+++ ./os/linux/2870_main_dev.c 2009-03-24 21:40:24.000000000 +0100
diff -ru 2008_1225_RT3070_Linux_STA_v2.0.1.0.orig/common/2870_rtmp_init.c 2008_1225_RT3070_Linux_STA_v2.0.1.0/common/2870_rtmp_init.c
--- 2008_1225_RT3070_Linux_STA_v2.0.1.0.orig/common/2870_rtmp_init.c 2008-12-24 07:24:20.000000000 +0100
+++ 2008_1225_RT3070_Linux_STA_v2.0.1.0/common/2870_rtmp_init.c 2009-03-24 23:38:13.000000000 +0100
@@ -715,8 +715,8 @@
usb_dev = pObj->pUsb_Dev;
- pObj->MLMEThr_pid = -1;
- pObj->RTUSBCmdThr_pid = -1;
+ pObj->MLMEThr_tsk = NULL;
+ pObj->RTUSBCmdThr_tsk = NULL;
*ppAd = (PVOID)vmalloc(sizeof(RTMP_ADAPTER));
@@ -766,9 +766,8 @@
init_completion (&pAd->TimerQComplete);
// Creat MLME Thread
- pObj->MLMEThr_pid= -1;
- pObj->MLMEThr_pid = kernel_thread(MlmeThread, pAd, CLONE_VM);
- if (pObj->MLMEThr_pid < 0)
+ pObj->MLMEThr_tsk = kthread_run(MlmeThread, pAd, pAd->net_dev->name);
+ if (IS_ERR(pObj->MLMEThr_tsk))
{
printk (KERN_WARNING "%s: unable to start Mlme thread\n",pAd->net_dev->name);
return NDIS_STATUS_FAILURE;
@@ -777,18 +776,16 @@
wait_for_completion(&(pAd->mlmeComplete));
// Creat Command Thread
- pObj->RTUSBCmdThr_pid= -1;
- pObj->RTUSBCmdThr_pid = kernel_thread(RTUSBCmdThread, pAd, CLONE_VM);
- if (pObj->RTUSBCmdThr_pid < 0)
+ pObj->RTUSBCmdThr_tsk = kthread_run(RTUSBCmdThread, pAd, pAd->net_dev->name);
+ if (IS_ERR(pObj->RTUSBCmdThr_tsk))
{
printk (KERN_WARNING "%s: unable to start RTUSBCmd thread\n",pAd->net_dev->name);
return NDIS_STATUS_FAILURE;
}
wait_for_completion(&(pAd->CmdQComplete));
- pObj->TimerQThr_pid= -1;
- pObj->TimerQThr_pid = kernel_thread(TimerQThread, pAd, CLONE_VM);
- if (pObj->TimerQThr_pid < 0)
+ pObj->TimerQThr_tsk = kthread_run(TimerQThread, pAd, pAd->net_dev->name);
+ if (IS_ERR(pObj->TimerQThr_tsk))
{
printk (KERN_WARNING "%s: unable to start TimerQThread\n",pAd->net_dev->name);
return NDIS_STATUS_FAILURE;
diff -ru 2008_1225_RT3070_Linux_STA_v2.0.1.0.orig/common/ba_action.c 2008_1225_RT3070_Linux_STA_v2.0.1.0/common/ba_action.c
--- 2008_1225_RT3070_Linux_STA_v2.0.1.0.orig/common/ba_action.c 2008-12-24 07:25:38.000000000 +0100
+++ 2008_1225_RT3070_Linux_STA_v2.0.1.0/common/ba_action.c 2009-03-24 23:38:09.000000000 +0100
@@ -542,7 +542,7 @@
pBAEntry->TimeOutValue = TimeOut;
pBAEntry->pAdapter = pAd;
- DBGPRINT(RT_DEBUG_TRACE,("Send AddBA to %02x:%02x:%02x:%02x:%02x Tid:%d isForced:%d Wcid:%d\n"
+ DBGPRINT(RT_DEBUG_TRACE,("Send AddBA to %02x:%02x:%02x:%02x:%02x:%02x Tid:%d isForced:%d Wcid:%d\n"
,pEntry->Addr[0],pEntry->Addr[1],pEntry->Addr[2]
,pEntry->Addr[3],pEntry->Addr[4],pEntry->Addr[5]
,TID,isForced,pEntry->Aid));
@@ -1104,7 +1104,7 @@
RT28XX_MLME_HANDLER(pAd);
//DBGPRINT(RT_DEBUG_TRACE,("BA Ori Session Timeout(%d) : Send ADD BA again\n", pBAEntry->Token));
- DBGPRINT(RT_DEBUG_TRACE,("BA Ori Session Timeout(%d) to %02x:%02x:%02x:%02x:%02x Tid:%d Wcid:%d\n"
+ DBGPRINT(RT_DEBUG_TRACE,("BA Ori Session Timeout(%d) to %02x:%02x:%02x:%02x:%02x:%02x Tid:%d Wcid:%d\n"
,pBAEntry->Token
,pEntry->Addr[0],pEntry->Addr[1],pEntry->Addr[2]
,pEntry->Addr[3],pEntry->Addr[4],pEntry->Addr[5]
diff -ru 2008_1225_RT3070_Linux_STA_v2.0.1.0.orig/common/rtusb_io.c 2008_1225_RT3070_Linux_STA_v2.0.1.0/common/rtusb_io.c
--- 2008_1225_RT3070_Linux_STA_v2.0.1.0.orig/common/rtusb_io.c 2008-12-24 09:04:18.000000000 +0100
+++ 2008_1225_RT3070_Linux_STA_v2.0.1.0/common/rtusb_io.c 2009-03-24 23:38:05.000000000 +0100
@@ -873,7 +873,7 @@
POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie;
- if (pObj->RTUSBCmdThr_pid < 0)
+ if (pObj->RTUSBCmdThr_tsk)
return (NDIS_STATUS_RESOURCES);
status = RTMPAllocateMemory((PVOID *)&cmdqelmt, sizeof(CmdQElmt));
diff -ru 2008_1225_RT3070_Linux_STA_v2.0.1.0.orig/include/rt2870.h 2008_1225_RT3070_Linux_STA_v2.0.1.0/include/rt2870.h
--- 2008_1225_RT3070_Linux_STA_v2.0.1.0.orig/include/rt2870.h 2008-12-24 07:35:36.000000000 +0100
+++ 2008_1225_RT3070_Linux_STA_v2.0.1.0/include/rt2870.h 2009-03-24 23:38:00.000000000 +0100
@@ -570,14 +570,14 @@
#define RTUSBMlmeUp(pAd) \
{ \
POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie; \
- if(pObj->MLMEThr_pid>0) \
+ if(pObj->MLMEThr_tsk) \
up(&(pAd->mlme_semaphore)); \
}
#define RTUSBCMDUp(pAd) \
{ \
POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie; \
- if(pObj->RTUSBCmdThr_pid>0) \
+ if(pObj->RTUSBCmdThr_tsk) \
up(&(pAd->RTUSBCmd_semaphore)); \
}
diff -ru 2008_1225_RT3070_Linux_STA_v2.0.1.0.orig/include/rt_ate.h 2008_1225_RT3070_Linux_STA_v2.0.1.0/include/rt_ate.h
--- 2008_1225_RT3070_Linux_STA_v2.0.1.0.orig/include/rt_ate.h 2008-12-24 08:04:02.000000000 +0100
+++ 2008_1225_RT3070_Linux_STA_v2.0.1.0/include/rt_ate.h 2009-03-24 23:37:49.000000000 +0100
@@ -35,7 +35,7 @@
#ifdef RT2870
#define EEPROM_SIZE 0x400
#ifdef CONFIG_STA_SUPPORT
-#define EEPROM_BIN_FILE_NAME "/etc/Wireless/RT2870STA/e2p.bin"
+#define EEPROM_BIN_FILE_NAME "/etc/Wireless/RT3070STA/e2p.bin"
#endif // CONFIG_STA_SUPPORT //
#endif // RT2870 //
#else // !UCOS //
@@ -75,7 +75,7 @@
#ifdef RT2870
#define EEPROM_SIZE 0x400
#ifdef CONFIG_STA_SUPPORT
-#define EEPROM_BIN_FILE_NAME "/etc/Wireless/RT2870STA/e2p.bin"
+#define EEPROM_BIN_FILE_NAME "/etc/Wireless/RT3070STA/e2p.bin"
#endif // CONFIG_STA_SUPPORT //
#endif // RT2870 //
diff -ru 2008_1225_RT3070_Linux_STA_v2.0.1.0.orig/include/rt_linux.h 2008_1225_RT3070_Linux_STA_v2.0.1.0/include/rt_linux.h
--- 2008_1225_RT3070_Linux_STA_v2.0.1.0.orig/include/rt_linux.h 2008-12-24 08:35:58.000000000 +0100
+++ 2008_1225_RT3070_Linux_STA_v2.0.1.0/include/rt_linux.h 2009-03-24 23:37:56.000000000 +0100
@@ -44,6 +44,7 @@
#include <linux/module.h>
#include <linux/version.h>
#include <linux/kernel.h>
+#include <linux/kthread.h>
#include <linux/spinlock.h>
#include <linux/init.h>
@@ -92,12 +93,12 @@
#ifdef CONFIG_STA_SUPPORT
#ifdef RT2870
-#define STA_PROFILE_PATH "/etc/Wireless/RT2870STA/RT2870STA.dat"
-#define STA_RT2870_IMAGE_FILE_NAME "/etc/Wireless/RT2870STA/rt2870.bin"
-#define STA_NIC_DEVICE_NAME "RT2870STA"
+#define STA_PROFILE_PATH "/etc/Wireless/RT3070STA/RT3070STA.dat"
+#define STA_RT2870_IMAGE_FILE_NAME "/etc/Wireless/RT3070STA/rt3070.bin"
+#define STA_NIC_DEVICE_NAME "RT3070STA"
#define STA_DRIVER_VERSION "2.0.1.0"
#ifdef MULTIPLE_CARD_SUPPORT
-#define CARD_INFO_PATH "/etc/Wireless/RT2870STA/RT2870STACard.dat"
+#define CARD_INFO_PATH "/etc/Wireless/RT3070STA/RT3070STACard.dat"
#endif // MULTIPLE_CARD_SUPPORT //
#endif // RT2870 //
@@ -175,9 +176,9 @@
#ifdef RT2870
struct usb_device *pUsb_Dev;
- pid_t MLMEThr_pid;
- pid_t RTUSBCmdThr_pid;
- pid_t TimerQThr_pid;
+ struct task_struct * MLMEThr_tsk;
+ struct task_struct * RTUSBCmdThr_tsk;
+ struct task_struct * TimerQThr_tsk;
#endif // RT2870 //
struct tasklet_struct rx_done_task;
diff -ru 2008_1225_RT3070_Linux_STA_v2.0.1.0.orig/os/linux/2870_main_dev.c 2008_1225_RT3070_Linux_STA_v2.0.1.0/os/linux/2870_main_dev.c
--- 2008_1225_RT3070_Linux_STA_v2.0.1.0.orig/os/linux/2870_main_dev.c 2008-12-24 08:34:46.000000000 +0100
+++ 2008_1225_RT3070_Linux_STA_v2.0.1.0/os/linux/2870_main_dev.c 2009-03-24 23:37:36.000000000 +0100
@@ -271,7 +271,7 @@
*/
DBGPRINT(RT_DEBUG_TRACE,( "<---%s\n",__FUNCTION__));
114,8 → 279,9
}
}
// Kill tasklets
--- ./os/linux/sta_ioctl.c.orig 2008-12-24 03:54:58.000000000 +0100
+++ ./os/linux/sta_ioctl.c 2009-03-24 21:27:05.000000000 +0100
diff -ru 2008_1225_RT3070_Linux_STA_v2.0.1.0.orig/os/linux/sta_ioctl.c 2008_1225_RT3070_Linux_STA_v2.0.1.0/os/linux/sta_ioctl.c
--- 2008_1225_RT3070_Linux_STA_v2.0.1.0.orig/os/linux/sta_ioctl.c 2008-12-24 03:54:58.000000000 +0100
+++ 2008_1225_RT3070_Linux_STA_v2.0.1.0/os/linux/sta_ioctl.c 2009-03-24 23:37:45.000000000 +0100
@@ -1113,7 +1113,7 @@
memcpy(iwe.u.ap_addr.sa_data, &pAdapter->ScanTab.BssEntry[i].Bssid, ETH_ALEN);
224,161 → 390,3
if (current_ev == previous_ev)
#if WIRELESS_EXT >= 17
return -E2BIG;
--- ./include/rt_ate.h.orig 2008-12-24 08:04:02.000000000 +0100
+++ ./include/rt_ate.h 2009-03-24 22:06:09.000000000 +0100
@@ -35,7 +35,7 @@
#ifdef RT2870
#define EEPROM_SIZE 0x400
#ifdef CONFIG_STA_SUPPORT
-#define EEPROM_BIN_FILE_NAME "/etc/Wireless/RT2870STA/e2p.bin"
+#define EEPROM_BIN_FILE_NAME "/etc/Wireless/RT3070STA/e2p.bin"
#endif // CONFIG_STA_SUPPORT //
#endif // RT2870 //
#else // !UCOS //
@@ -75,7 +75,7 @@
#ifdef RT2870
#define EEPROM_SIZE 0x400
#ifdef CONFIG_STA_SUPPORT
-#define EEPROM_BIN_FILE_NAME "/etc/Wireless/RT2870STA/e2p.bin"
+#define EEPROM_BIN_FILE_NAME "/etc/Wireless/RT3070STA/e2p.bin"
#endif // CONFIG_STA_SUPPORT //
#endif // RT2870 //
--- ./include/rt_linux.h.orig 2008-12-24 08:35:58.000000000 +0100
+++ ./include/rt_linux.h 2009-03-24 22:07:15.000000000 +0100
@@ -44,6 +44,7 @@
#include <linux/module.h>
#include <linux/version.h>
#include <linux/kernel.h>
+#include <linux/kthread.h>
#include <linux/spinlock.h>
#include <linux/init.h>
@@ -92,12 +93,12 @@
#ifdef CONFIG_STA_SUPPORT
#ifdef RT2870
-#define STA_PROFILE_PATH "/etc/Wireless/RT2870STA/RT2870STA.dat"
-#define STA_RT2870_IMAGE_FILE_NAME "/etc/Wireless/RT2870STA/rt2870.bin"
-#define STA_NIC_DEVICE_NAME "RT2870STA"
+#define STA_PROFILE_PATH "/etc/Wireless/RT3070STA/RT3070STA.dat"
+#define STA_RT2870_IMAGE_FILE_NAME "/etc/Wireless/RT3070STA/rt3070.bin"
+#define STA_NIC_DEVICE_NAME "RT3070STA"
#define STA_DRIVER_VERSION "2.0.1.0"
#ifdef MULTIPLE_CARD_SUPPORT
-#define CARD_INFO_PATH "/etc/Wireless/RT2870STA/RT2870STACard.dat"
+#define CARD_INFO_PATH "/etc/Wireless/RT3070STA/RT3070STACard.dat"
#endif // MULTIPLE_CARD_SUPPORT //
#endif // RT2870 //
@@ -175,9 +176,9 @@
#ifdef RT2870
struct usb_device *pUsb_Dev;
- pid_t MLMEThr_pid;
- pid_t RTUSBCmdThr_pid;
- pid_t TimerQThr_pid;
+ struct task_struct * MLMEThr_tsk;
+ struct task_struct * RTUSBCmdThr_tsk;
+ struct task_struct * TimerQThr_tsk;
#endif // RT2870 //
struct tasklet_struct rx_done_task;
--- ./include/rt2870.h.orig 2008-12-24 07:35:36.000000000 +0100
+++ ./include/rt2870.h 2009-03-24 21:40:53.000000000 +0100
@@ -570,14 +570,14 @@
#define RTUSBMlmeUp(pAd) \
{ \
POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie; \
- if(pObj->MLMEThr_pid>0) \
+ if(pObj->MLMEThr_tsk) \
up(&(pAd->mlme_semaphore)); \
}
#define RTUSBCMDUp(pAd) \
{ \
POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie; \
- if(pObj->RTUSBCmdThr_pid>0) \
+ if(pObj->RTUSBCmdThr_tsk) \
up(&(pAd->RTUSBCmd_semaphore)); \
}
--- ./common/rtusb_io.c.orig 2008-12-24 09:04:18.000000000 +0100
+++ ./common/rtusb_io.c 2009-03-24 21:41:41.000000000 +0100
@@ -873,7 +873,7 @@
POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie;
- if (pObj->RTUSBCmdThr_pid < 0)
+ if (pObj->RTUSBCmdThr_tsk)
return (NDIS_STATUS_RESOURCES);
status = RTMPAllocateMemory((PVOID *)&cmdqelmt, sizeof(CmdQElmt));
--- ./common/ba_action.c.orig 2008-12-24 07:25:38.000000000 +0100
+++ ./common/ba_action.c 2009-03-24 21:31:37.000000000 +0100
@@ -542,7 +542,7 @@
pBAEntry->TimeOutValue = TimeOut;
pBAEntry->pAdapter = pAd;
- DBGPRINT(RT_DEBUG_TRACE,("Send AddBA to %02x:%02x:%02x:%02x:%02x Tid:%d isForced:%d Wcid:%d\n"
+ DBGPRINT(RT_DEBUG_TRACE,("Send AddBA to %02x:%02x:%02x:%02x:%02x:%02x Tid:%d isForced:%d Wcid:%d\n"
,pEntry->Addr[0],pEntry->Addr[1],pEntry->Addr[2]
,pEntry->Addr[3],pEntry->Addr[4],pEntry->Addr[5]
,TID,isForced,pEntry->Aid));
@@ -1104,7 +1104,7 @@
RT28XX_MLME_HANDLER(pAd);
//DBGPRINT(RT_DEBUG_TRACE,("BA Ori Session Timeout(%d) : Send ADD BA again\n", pBAEntry->Token));
- DBGPRINT(RT_DEBUG_TRACE,("BA Ori Session Timeout(%d) to %02x:%02x:%02x:%02x:%02x Tid:%d Wcid:%d\n"
+ DBGPRINT(RT_DEBUG_TRACE,("BA Ori Session Timeout(%d) to %02x:%02x:%02x:%02x:%02x:%02x Tid:%d Wcid:%d\n"
,pBAEntry->Token
,pEntry->Addr[0],pEntry->Addr[1],pEntry->Addr[2]
,pEntry->Addr[3],pEntry->Addr[4],pEntry->Addr[5]
--- ./common/2870_rtmp_init.c.orig 2008-12-24 07:24:20.000000000 +0100
+++ ./common/2870_rtmp_init.c 2009-03-24 21:43:26.000000000 +0100
@@ -715,8 +715,8 @@
usb_dev = pObj->pUsb_Dev;
- pObj->MLMEThr_pid = -1;
- pObj->RTUSBCmdThr_pid = -1;
+ pObj->MLMEThr_tsk = NULL;
+ pObj->RTUSBCmdThr_tsk = NULL;
*ppAd = (PVOID)vmalloc(sizeof(RTMP_ADAPTER));
@@ -766,9 +766,8 @@
init_completion (&pAd->TimerQComplete);
// Creat MLME Thread
- pObj->MLMEThr_pid= -1;
- pObj->MLMEThr_pid = kernel_thread(MlmeThread, pAd, CLONE_VM);
- if (pObj->MLMEThr_pid < 0)
+ pObj->MLMEThr_tsk = kthread_run(MlmeThread, pAd, pAd->net_dev->name);
+ if (IS_ERR(pObj->MLMEThr_tsk))
{
printk (KERN_WARNING "%s: unable to start Mlme thread\n",pAd->net_dev->name);
return NDIS_STATUS_FAILURE;
@@ -777,18 +776,16 @@
wait_for_completion(&(pAd->mlmeComplete));
// Creat Command Thread
- pObj->RTUSBCmdThr_pid= -1;
- pObj->RTUSBCmdThr_pid = kernel_thread(RTUSBCmdThread, pAd, CLONE_VM);
- if (pObj->RTUSBCmdThr_pid < 0)
+ pObj->RTUSBCmdThr_tsk = kthread_run(RTUSBCmdThread, pAd, pAd->net_dev->name);
+ if (IS_ERR(pObj->RTUSBCmdThr_tsk))
{
printk (KERN_WARNING "%s: unable to start RTUSBCmd thread\n",pAd->net_dev->name);
return NDIS_STATUS_FAILURE;
}
wait_for_completion(&(pAd->CmdQComplete));
- pObj->TimerQThr_pid= -1;
- pObj->TimerQThr_pid = kernel_thread(TimerQThread, pAd, CLONE_VM);
- if (pObj->TimerQThr_pid < 0)
+ pObj->TimerQThr_tsk = kthread_run(TimerQThread, pAd, pAd->net_dev->name);
+ if (IS_ERR(pObj->TimerQThr_tsk))
{
printk (KERN_WARNING "%s: unable to start TimerQThread\n",pAd->net_dev->name);
return NDIS_STATUS_FAILURE;