Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 1403 → Rev 1404

/patches/RT3070_linux/RT3070.patch
0,0 → 1,384
--- ./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
@@ -271,7 +271,7 @@
*/
DBGPRINT(RT_DEBUG_TRACE,( "<---%s\n",__FUNCTION__));
- pObj->MLMEThr_pid = -1;
+ pObj->MLMEThr_tsk = NULL;
complete_and_exit (&pAd->mlmeComplete, 0);
return 0;
@@ -379,7 +379,7 @@
*/
DBGPRINT(RT_DEBUG_TRACE,( "<---RTUSBCmdThread\n"));
- pObj->RTUSBCmdThr_pid = -1;
+ pObj->RTUSBCmdThr_tsk = NULL;
complete_and_exit (&pAd->CmdQComplete, 0);
return 0;
@@ -473,7 +473,7 @@
*/
DBGPRINT(RT_DEBUG_TRACE,( "<---%s\n",__FUNCTION__));
- pObj->TimerQThr_pid = -1;
+ pObj->TimerQThr_tsk = NULL;
complete_and_exit(&pAd->TimerQComplete, 0);
return 0;
@@ -955,68 +955,68 @@
RTUSBCancelPendingIRPs(pAd);
// Terminate Threads
- if (pObj->MLMEThr_pid >= 0)
+ if (pObj->MLMEThr_tsk)
{
- printk("Terminate the MLMEThr_pid=%d!\n", pObj->MLMEThr_pid);
+ printk("Terminate the MLMEThr_tsk=%p!\n", pObj->MLMEThr_tsk);
mb();
pAd->mlme_kill = 1;
//RT28XX_MLME_HANDLER(pAd);
mb();
- ret = kill_proc (pObj->MLMEThr_pid, SIGTERM, 1);
+ ret = send_sig (SIGTERM, pObj->MLMEThr_tsk, 1);
if (ret)
{
- printk (KERN_WARNING "%s: unable to Mlme thread, pid=%d, ret=%d!\n",
- pAd->net_dev->name, pObj->MLMEThr_pid, ret);
+ printk (KERN_WARNING "%s: unable to Mlme thread, tsk=%p, ret=%d!\n",
+ pAd->net_dev->name, pObj->MLMEThr_tsk, ret);
}
else
{
//wait_for_completion (&pAd->notify);
wait_for_completion (&pAd->mlmeComplete);
- pObj->MLMEThr_pid = -1;
+ pObj->MLMEThr_tsk = NULL;
}
}
- if (pObj->RTUSBCmdThr_pid >= 0)
+ if (pObj->RTUSBCmdThr_tsk)
{
- printk("Terminate the RTUSBCmdThr_pid=%d!\n", pObj->RTUSBCmdThr_pid);
+ printk("Terminate the RTUSBCmdThr_tsk=%p!\n", pObj->RTUSBCmdThr_tsk);
mb();
NdisAcquireSpinLock(&pAd->CmdQLock);
pAd->CmdQ.CmdQState = RT2870_THREAD_STOPED;
NdisReleaseSpinLock(&pAd->CmdQLock);
mb();
//RTUSBCMDUp(pAd);
- ret = kill_proc(pObj->RTUSBCmdThr_pid, SIGTERM, 1);
+ ret = send_sig (SIGTERM, pObj->RTUSBCmdThr_tsk, 1);
if (ret)
{
- printk(KERN_WARNING "%s: unable to RTUSBCmd thread, pid=%d, ret=%d!\n",
- pAd->net_dev->name, pObj->RTUSBCmdThr_pid, ret);
+ printk(KERN_WARNING "%s: unable to RTUSBCmd thread, tsk=%p, ret=%d!\n",
+ pAd->net_dev->name, pObj->RTUSBCmdThr_tsk, ret);
}
else
{
//wait_for_completion (&pAd->notify);
wait_for_completion (&pAd->CmdQComplete);
- pObj->RTUSBCmdThr_pid = -1;
+ pObj->RTUSBCmdThr_tsk = NULL;
}
}
- if (pObj->TimerQThr_pid >= 0)
+ if (pObj->TimerQThr_tsk)
{
POS_COOKIE pObj = (POS_COOKIE)pAd->OS_Cookie;
- printk("Terminate the TimerQThr_pid=%d!\n", pObj->TimerQThr_pid);
+ printk("Terminate the TimerQThr_tsk=%p!\n", pObj->TimerQThr_tsk);
mb();
pAd->TimerFunc_kill = 1;
mb();
- ret = kill_proc(pObj->TimerQThr_pid, SIGTERM, 1);
+ ret = send_sig (SIGTERM, pObj->TimerQThr_tsk, 1);
if (ret)
{
- printk(KERN_WARNING "%s: unable to stop TimerQThread, pid=%d, ret=%d!\n",
- pAd->net_dev->name, pObj->TimerQThr_pid, ret);
+ printk(KERN_WARNING "%s: unable to stop TimerQThread, tsk=%p, ret=%d!\n",
+ pAd->net_dev->name, pObj->TimerQThr_tsk, ret);
}
else
{
printk("wait_for_completion TimerQThr\n");
wait_for_completion(&pAd->TimerQComplete);
- pObj->TimerQThr_pid = -1;
+ pObj->TimerQThr_tsk = NULL;
}
}
// 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
@@ -1113,7 +1113,7 @@
memcpy(iwe.u.ap_addr.sa_data, &pAdapter->ScanTab.BssEntry[i].Bssid, ETH_ALEN);
previous_ev = current_ev;
- current_ev = iwe_stream_add_event(current_ev,end_buf, &iwe, IW_EV_ADDR_LEN);
+ current_ev = iwe_stream_add_event(info, current_ev,end_buf, &iwe, IW_EV_ADDR_LEN);
if (current_ev == previous_ev)
#if WIRELESS_EXT >= 17
return -E2BIG;
@@ -1192,7 +1192,7 @@
}
previous_ev = current_ev;
- current_ev = iwe_stream_add_event(current_ev,end_buf, &iwe, IW_EV_ADDR_LEN);
+ current_ev = iwe_stream_add_event(info, current_ev,end_buf, &iwe, IW_EV_ADDR_LEN);
if (current_ev == previous_ev)
#if WIRELESS_EXT >= 17
return -E2BIG;
@@ -1208,7 +1208,7 @@
iwe.u.data.flags = 1;
previous_ev = current_ev;
- current_ev = iwe_stream_add_point(current_ev,end_buf, &iwe, pAdapter->ScanTab.BssEntry[i].Ssid);
+ current_ev = iwe_stream_add_point(info, current_ev,end_buf, &iwe, pAdapter->ScanTab.BssEntry[i].Ssid);
if (current_ev == previous_ev)
#if WIRELESS_EXT >= 17
return -E2BIG;
@@ -1235,7 +1235,7 @@
iwe.len = IW_EV_UINT_LEN;
previous_ev = current_ev;
- current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_UINT_LEN);
+ current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe, IW_EV_UINT_LEN);
if (current_ev == previous_ev)
#if WIRELESS_EXT >= 17
return -E2BIG;
@@ -1255,7 +1255,7 @@
iwe.u.freq.i = 0;
previous_ev = current_ev;
- current_ev = iwe_stream_add_event(current_ev,end_buf, &iwe, IW_EV_FREQ_LEN);
+ current_ev = iwe_stream_add_event(info, current_ev,end_buf, &iwe, IW_EV_FREQ_LEN);
if (current_ev == previous_ev)
#if WIRELESS_EXT >= 17
return -E2BIG;
@@ -1270,7 +1270,7 @@
iwe.u.qual.level = 0;
iwe.u.qual.noise = 0;
set_quality(pAdapter, &iwe.u.qual, pAdapter->ScanTab.BssEntry[i].Rssi);
- current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_QUAL_LEN);
+ current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe, IW_EV_QUAL_LEN);
if (current_ev == previous_ev)
#if WIRELESS_EXT >= 17
return -E2BIG;
@@ -1288,7 +1288,7 @@
iwe.u.data.flags = IW_ENCODE_DISABLED;
previous_ev = current_ev;
- current_ev = iwe_stream_add_point(current_ev, end_buf,&iwe, (char *)pAdapter->SharedKey[BSS0][(iwe.u.data.flags & IW_ENCODE_INDEX)-1].Key);
+ current_ev = iwe_stream_add_point(info, current_ev, end_buf,&iwe, (char *)pAdapter->SharedKey[BSS0][(iwe.u.data.flags & IW_ENCODE_INDEX)-1].Key);
if (current_ev == previous_ev)
#if WIRELESS_EXT >= 17
return -E2BIG;
@@ -1316,7 +1316,7 @@
iwe.u.bitrate.value = (tmpRate/2) * 1000000;
iwe.u.bitrate.disabled = 0;
- current_val = iwe_stream_add_value(current_ev,
+ current_val = iwe_stream_add_value(info, current_ev,
current_val, end_buf, &iwe,
IW_EV_PARAM_LEN);
@@ -1340,7 +1340,7 @@
pAdapter->ScanTab.BssEntry[i].WpaIE.IELen);
iwe.cmd = IWEVGENIE;
iwe.u.data.length = pAdapter->ScanTab.BssEntry[i].WpaIE.IELen;
- current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, custom);
+ current_ev = iwe_stream_add_point(info, current_ev, end_buf, &iwe, custom);
if (current_ev == previous_ev)
#if WIRELESS_EXT >= 17
return -E2BIG;
@@ -1358,7 +1358,7 @@
pAdapter->ScanTab.BssEntry[i].RsnIE.IELen);
iwe.cmd = IWEVGENIE;
iwe.u.data.length = pAdapter->ScanTab.BssEntry[i].RsnIE.IELen;
- current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, custom);
+ current_ev = iwe_stream_add_point(info, current_ev, end_buf, &iwe, custom);
if (current_ev == previous_ev)
#if WIRELESS_EXT >= 17
return -E2BIG;
@@ -1379,7 +1379,7 @@
for (idx = 0; idx < pAdapter->ScanTab.BssEntry[i].WpaIE.IELen; idx++)
sprintf(custom, "%s%02x", custom, pAdapter->ScanTab.BssEntry[i].WpaIE.IE[idx]);
previous_ev = current_ev;
- current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, custom);
+ current_ev = iwe_stream_add_point(info, current_ev, end_buf, &iwe, custom);
if (current_ev == previous_ev)
#if WIRELESS_EXT >= 17
return -E2BIG;
@@ -1399,7 +1399,7 @@
for (idx = 0; idx < pAdapter->ScanTab.BssEntry[i].RsnIE.IELen; idx++)
sprintf(custom, "%s%02x", custom, pAdapter->ScanTab.BssEntry[i].RsnIE.IE[idx]);
previous_ev = current_ev;
- current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, custom);
+ current_ev = iwe_stream_add_point(info, current_ev, end_buf, &iwe, custom);
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;
/patches/RT3070_linux/readme.txt
0,0 → 1,9
Tested with LogiLink WLAN 11 N USB Adapter
(http://www.logilink.eu/cmsfiles/modules/i-sell2u/showproduct.htm?isu_zeigeartikel=WL0049)
under Ubuntu 8.10, 2.6.27-7-generic #1 SMP i686
 
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)
 
Compile and install HowTo from: http://wiki.ubuntuusers.de/WLAN/Ralink#RT28xx-Draft-N