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