r131 - tarballs unstable/rt2570/debian unstable/rt2570/debian/patches
benh at alioth.debian.org
benh at alioth.debian.org
Mon Jun 23 01:28:45 UTC 2008
Author: benh
Date: 2008-06-23 01:28:45 +0000 (Mon, 23 Jun 2008)
New Revision: 131
Added:
tarballs/rt2570_1.1.0+cvs20080623.orig.tar.gz
Removed:
unstable/rt2570/debian/patches/004_fix_mlme_queue_locking.diff
Modified:
unstable/rt2570/debian/changelog
unstable/rt2570/debian/patches/000_if_name.diff
unstable/rt2570/debian/patches/006_fix_probe_148f_2573.diff
unstable/rt2570/debian/patches/series
Log:
Added a new CVS snapshot.
Removed obsolete patch.
Refreshed remaining patches.
Added: tarballs/rt2570_1.1.0+cvs20080623.orig.tar.gz
===================================================================
(Binary files differ)
Property changes on: tarballs/rt2570_1.1.0+cvs20080623.orig.tar.gz
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: unstable/rt2570/debian/changelog
===================================================================
--- unstable/rt2570/debian/changelog 2008-06-23 01:17:47 UTC (rev 130)
+++ unstable/rt2570/debian/changelog 2008-06-23 01:28:45 UTC (rev 131)
@@ -1,10 +1,13 @@
-rt2570 (1.1.0+cvs20070927-2) unstable; urgency=low
+rt2570 (1.1.0+cvs20080623-1) unstable; urgency=low
- [Ben Hutchings]
+ * New CVS snapshot
+ - Fixes compile error with Linux 2.6.24 and later
+ - Fixes suspend/resume
+ - Obsoletes 004_fix_mlme_queue_locking.diff
* Copied recommendations and suggestions from modules packages to
rt2570-source to make them more visible
- --
+ -- Ben Hutchings <ben at decadent.org.uk> Mon, 23 Jun 2008 02:18:46 +0100
rt2570 (1.1.0+cvs20070927-1) unstable; urgency=low
Modified: unstable/rt2570/debian/patches/000_if_name.diff
===================================================================
--- unstable/rt2570/debian/patches/000_if_name.diff 2008-06-23 01:17:47 UTC (rev 130)
+++ unstable/rt2570/debian/patches/000_if_name.diff 2008-06-23 01:28:45 UTC (rev 131)
@@ -18,10 +18,10 @@
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0) */
#ifdef RT2500_DBG
-@@ -1608,43 +1608,17 @@
- pAdapter->net->weight = 64;
- pAdapter->MediaState = NdisMediaStateDisconnected;
+@@ -1656,47 +1656,17 @@
+ SET_NETDEV_DEV(netdev, &intf->dev);
+
- {// find available
- int i=0;
- char slot_name[IFNAMSIZ];
@@ -43,6 +43,7 @@
- {
- sprintf(slot_name, netdev->name, i);
-
+- read_lock_bh(&dev_base_lock); // avoid multiple init
- for (device = first_net_device(); device != NULL;
- device = next_net_device(device))
- {
@@ -51,27 +52,29 @@
- break;
- }
- }
+- read_unlock_bh(&dev_base_lock);
+-
- if(device == NULL) break;
- }
- if(i == 8)
- {
- DBGPRINT(RT_DEBUG_ERROR, "No available slot name\n");
-- return NULL;
+- KPRINT(KERN_CRIT, "No available slot name\n");
+- goto out;
- }
- sprintf(netdev->name, slot_name, i);
-- DBGPRINT(RT_DEBUG_INFO, "usbdevice->name %s\n", netdev->name);
+- DBGPRINT(RT_DEBUG_INFO, "usb device name %s\n", netdev->name);
-
/* get Max Packet Size from usb_dev endpoint */
//ifp = dev->actconfig->interface + i;
as = ifp->altsetting + ifp->act_altsetting;
-@@ -1950,43 +1924,16 @@
+@@ -1948,52 +1918,16 @@
SET_NETDEV_DEV(pAdapter->net, &intf->dev);
- {// find available
- int i=0;
- char slot_name[IFNAMSIZ];
-- struct net_device *device;
+ {
struct usb_host_interface *iface_desc;
struct usb_endpoint_descriptor *endpoint;
@@ -88,6 +91,12 @@
- {
- sprintf(slot_name, pAdapter->net->name, i);
-
+-#if 1
+- if(dev_get_by_name(slot_name)==NULL)
+- break;
+-#else
+- {struct net_device *device;
+- read_lock_bh(&dev_base_lock); // avoid multiple init
- for (device = first_net_device(); device != NULL;
- device = next_net_device(device))
- {
@@ -96,16 +105,20 @@
- break;
- }
- }
-- if(device == NULL) break;
+- read_unlock_bh(&dev_base_lock);
+-
+- if(device == NULL) break;}
+-#endif
- }
- if(i == 8)
- {
- DBGPRINT(RT_DEBUG_ERROR, "No available slot name\n");
-- return res;
+- KPRINT(KERN_CRIT, "No available slot name\n");
+- goto out;
- }
-
- sprintf(pAdapter->net->name, slot_name, i);
-- DBGPRINT(RT_DEBUG_INFO, "usbdevice->name %s\n", pAdapter->net->name);
+- DBGPRINT(RT_DEBUG_INFO, "usb device name %s\n", pAdapter->net->name);
-
/* get the active interface descriptor */
iface_desc = intf->cur_altsetting;
Deleted: unstable/rt2570/debian/patches/004_fix_mlme_queue_locking.diff
===================================================================
--- unstable/rt2570/debian/patches/004_fix_mlme_queue_locking.diff 2008-06-23 01:17:47 UTC (rev 130)
+++ unstable/rt2570/debian/patches/004_fix_mlme_queue_locking.diff 2008-06-23 01:28:45 UTC (rev 131)
@@ -1,250 +0,0 @@
---- rt2570.orig/Module/mlme.c
-+++ rt2570/Module/mlme.c
-@@ -242,7 +242,6 @@
- }
-
- pAd->Mlme.Running = FALSE;
-- NdisAllocateSpinLock(&pAd->Mlme.TaskLock);
-
- // initialize the two tables
- // MacTableInit(pAd);
-@@ -350,19 +349,18 @@
-
- // Only accept MLME and Frame from peer side, no other
- // (control/data) frame should get into this state machine
-- NdisAcquireSpinLock(&pAd->Mlme.TaskLock);
-+ NdisAcquireSpinLock(&pAd->Mlme.Queue.Lock);
- if(pAd->Mlme.Running)
- {
-- NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
-+ NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
- return;
- }
-- else
-- {
-- pAd->Mlme.Running = TRUE;
-- }
-- NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
-+ pAd->Mlme.Running = TRUE;
-+
-+ while (MlmeGetHead(&pAd->Mlme.Queue, &Elem)) {
-+ smp_read_barrier_depends();
-+ if (!Elem->Occupied) break;
-
-- while (TRUE) {
- if (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_MLME_RESET_IN_PROGRESS) ||
- RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_HALT_IN_PROGRESS) ||
- RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_REMOVE_IN_PROGRESS))
-@@ -371,18 +369,10 @@
- break;
- }
-
-- NdisAcquireSpinLock(&pAd->Mlme.Queue.Lock);
-- if (!MlmeDequeue(&pAd->Mlme.Queue, &Elem)) {
-- NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
-- break;
-- }
-- NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
--
-- if (pAd->PortCfg.BssType == BSS_MONITOR)
-- continue;
-+ NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
-
- //From message type, determine which state machine I should drive
-- switch (Elem->Machine)
-+ if (pAd->PortCfg.BssType != BSS_MONITOR) switch (Elem->Machine)
- {
- case ASSOC_STATE_MACHINE:
- StateMachinePerformAction(pAd, &pAd->Mlme.AssocMachine, Elem);
-@@ -408,8 +398,10 @@
- } // end of switch
-
- // free MLME element
-+ smp_mb();
- Elem->Occupied = FALSE;
-- Elem->MsgLen = 0;
-+ NdisAcquireSpinLock(&pAd->Mlme.Queue.Lock);
-+ MlmeDequeue(&pAd->Mlme.Queue);
- }
-
- if (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_MLME_RESET_IN_PROGRESS))
-@@ -441,9 +433,8 @@
- RTMP_CLEAR_FLAG(pAd, fRTMP_ADAPTER_MLME_RESET_IN_PROGRESS);
- }
-
-- NdisAcquireSpinLock(&pAd->Mlme.TaskLock);
- pAd->Mlme.Running = FALSE;
-- NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
-+ NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
-
- }
-
-@@ -465,31 +456,26 @@
- RTMPCancelTimer(&pAd->Mlme.SyncAux.BeaconTimer);
- RTMPCancelTimer(&pAd->Mlme.SyncAux.ScanTimer);
-
-- NdisAcquireSpinLock(&pAd->Mlme.TaskLock);
-+ NdisAcquireSpinLock(&pAd->Mlme.Queue.Lock);
- if(pAd->Mlme.Running)
- {
-- NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
-+ NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
- return;
- }
- else
- {
- pAd->Mlme.Running = TRUE;
- }
-- NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
-
- // Remove all Mlme queues elements
-- NdisAcquireSpinLock(&pAd->Mlme.Queue.Lock);
-- while (MlmeDequeue(&pAd->Mlme.Queue, &Elem)) {
-- // free MLME element
-- Elem->Occupied = FALSE;
-- Elem->MsgLen = 0;
-+ while (MlmeGetHead(&pAd->Mlme.Queue, &Elem)) {
-+ MlmeDequeue(&pAd->Mlme.Queue);
-+ Elem->Occupied = FALSE;
- }
-- NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
-
- // Remove running state
-- NdisAcquireSpinLock(&pAd->Mlme.TaskLock);
- pAd->Mlme.Running = FALSE;
-- NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
-+ NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
-
- RTUSBCleanUpMLMEWaitQueue(pAd);
- RTUSBCleanUpMLMEBulkOutQueue(pAd);
-@@ -2793,11 +2779,12 @@
- NdisReleaseSpinLock(&Queue->Lock);
- DBGPRINT(RT_DEBUG_INFO,"MlmeEnqueue, num=%d\n",Queue->Num);
-
-- Queue->Entry[Tail].Occupied = TRUE;
- Queue->Entry[Tail].Machine = Machine;
- Queue->Entry[Tail].MsgType = MsgType;
- Queue->Entry[Tail].MsgLen = MsgLen;
- memcpy(Queue->Entry[Tail].Msg, Msg, MsgLen);
-+ smp_wmb();
-+ Queue->Entry[Tail].Occupied = TRUE;
- }
- return TRUE;
- }
-@@ -2870,19 +2857,20 @@
- DBGPRINT(RT_DEBUG_INFO, "MlmeEnqueueForRecv, num=%d\n",Queue->Num);
-
- // OK, we got all the informations, it is time to put things into queue
-- Queue->Entry[Tail].Occupied = TRUE;
- Queue->Entry[Tail].Machine = Machine;
- Queue->Entry[Tail].MsgType = MsgType;
- Queue->Entry[Tail].MsgLen = MsgLen;
-
- Queue->Entry[Tail].Rssi = Rssi;
- memcpy(Queue->Entry[Tail].Msg, Msg, MsgLen);
-+ smp_wmb();
-+ Queue->Entry[Tail].Occupied = TRUE;
-
- RTUSBMlmeUp(pAd, (&(pAd->mlme_semaphore)));
-
- return TRUE;
- }
--/*! \brief Dequeue a message from the MLME Queue
-+/*! \brief Get the first message from the MLME Queue
- * WARNING: Must be call with Mlme.Queue.Lock held
- * \param *Queue The MLME Queue
- * \param *Elem The message dequeued from MLME Queue
-@@ -2893,15 +2881,36 @@
- IRQL = DISPATCH_LEVEL
-
- */
--BOOLEAN MlmeDequeue(
-+BOOLEAN MlmeGetHead(
- IN MLME_QUEUE *Queue,
- OUT MLME_QUEUE_ELEM **Elem)
- {
- if (Queue->Num == 0)
- return FALSE; //Empty
-
-- *Elem = &Queue->Entry[Queue->Head++];
-- Queue->Head %= MAX_LEN_OF_MLME_QUEUE;
-+ *Elem = &Queue->Entry[Queue->Head];
-+ DBGPRINT(RT_DEBUG_INFO, "MlmeDequeue, num=%d\n",Queue->Num);
-+
-+ return TRUE;
-+}
-+
-+/*! \brief Remove the first message from the MLME Queue
-+ * WARNING: Must be call with Mlme.Queue.Lock held
-+ * \param *Queue The MLME Queue
-+ * \return TRUE if a message was remove, FALSE if the queue was empty
-+ * \pre
-+ * \post
-+
-+ IRQL = DISPATCH_LEVEL
-+
-+ */
-+BOOLEAN MlmeDequeue(
-+ IN MLME_QUEUE *Queue)
-+{
-+ if (Queue->Num == 0)
-+ return FALSE; //Empty
-+
-+ Queue->Head = (Queue->Head + 1) % MAX_LEN_OF_MLME_QUEUE;
- Queue->Num--;
- DBGPRINT(RT_DEBUG_INFO, "MlmeDequeue, num=%d\n",Queue->Num);
-
-@@ -2918,15 +2927,14 @@
-
- RTMP_SET_FLAG(pAd, fRTMP_ADAPTER_MLME_RESET_IN_PROGRESS);
-
-- NdisAcquireSpinLock(&pAd->Mlme.TaskLock);
-+ NdisAcquireSpinLock(&pAd->Mlme.Queue.Lock);
- if(pAd->Mlme.Running)
- {
- DBGPRINT(RT_DEBUG_TRACE, "<== MlmeRestartStateMachine, Mlme is Runing[Queue=%d]!\n", pAd->Mlme.Queue.Num);
-- NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
-+ NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
- return;
- }
- pAd->Mlme.Running = TRUE;
-- NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
-
- MlmeQueueDestroy(&pAd->Mlme.Queue);
-
-@@ -2956,9 +2964,8 @@
- RTMP_CLEAR_FLAG(pAd, fRTMP_ADAPTER_MLME_RESET_IN_PROGRESS);
-
- // Remove running state
-- NdisAcquireSpinLock(&pAd->Mlme.TaskLock);
- pAd->Mlme.Running = FALSE;
-- NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
-+ NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
-
- DBGPRINT(RT_DEBUG_TRACE, "<== MlmeRestartStateMachine\n");
- }
---- rt2570.orig/Module/rt2570sw.h
-+++ rt2570/Module/rt2570sw.h
-@@ -1077,7 +1077,6 @@
- ULONG ChannelQuality; // 0..100, Channel Quality Indication for Roaming
-
- BOOLEAN Running;
-- spinlock_t TaskLock;
- MLME_QUEUE Queue;
-
- UINT ShiftReg;
-@@ -2341,10 +2340,13 @@
- IN ULONG MsgLen,
- IN PVOID Msg);
-
--BOOLEAN MlmeDequeue(
-+BOOLEAN MlmeGetHead(
- IN MLME_QUEUE *Queue,
- OUT MLME_QUEUE_ELEM **Elem);
-
-+BOOLEAN MlmeDequeue(
-+ IN MLME_QUEUE *Queue);
-+
- #if 1
- VOID MlmeRestartStateMachine(
- IN PRT2570ADAPTER pAd);
Modified: unstable/rt2570/debian/patches/006_fix_probe_148f_2573.diff
===================================================================
--- unstable/rt2570/debian/patches/006_fix_probe_148f_2573.diff 2008-06-23 01:17:47 UTC (rev 130)
+++ unstable/rt2570/debian/patches/006_fix_probe_148f_2573.diff 2008-06-23 01:28:45 UTC (rev 131)
@@ -8,14 +8,7 @@
int i;
struct net_device *netdev;
int res = -ENOMEM;
-@@ -1881,16 +1883,25 @@
- {
- //if (!(pAdapter->net = init_etherdev(0, 0) )) {
- printk("alloc_etherdev failed\n");
--
-- module_put(THIS_MODULE);
-+ usb_put_dev(dev);
- return res;
+@@ -1884,10 +1885,20 @@
}
pAdapter = netdev->priv;
@@ -24,10 +17,10 @@
+ RTUSBReadMACRegister(pAdapter, MAC_CSR0, &version);
+ if (version == 0 || (le16_to_cpu(version) & 0xfff0) != 0)
+ {
-+ printk("ASIC version not matching\n");
++ KPRINT(KERN_INFO, "ASIC version not matching\n");
+ kfree(netdev);
-+ usb_put_dev(dev);
-+ return -ENODEV;
++ res = -ENODEV;
++ goto out_noalloc;
+ }
+
pAdapter->net = netdev;
@@ -36,4 +29,4 @@
- pAdapter->usb = dev;
SET_MODULE_OWNER(pAdapter->net);
ether_setup(pAdapter->net);
- netdev->open = usb_rtusb_open;
+
Modified: unstable/rt2570/debian/patches/series
===================================================================
--- unstable/rt2570/debian/patches/series 2008-06-23 01:17:47 UTC (rev 130)
+++ unstable/rt2570/debian/patches/series 2008-06-23 01:28:45 UTC (rev 131)
@@ -1,4 +1,3 @@
000_if_name.diff -p0
-004_fix_mlme_queue_locking.diff
005_fix_delays.diff
006_fix_probe_148f_2573.diff
More information about the Pkg-ralink-commits
mailing list