[PATCH 256/342] Staging: rt{28,30}70: merge rt{28,30}70/sta/*.[ch]

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Greg Kroah-Hartman
Date: Friday, June 19, 2009 - 11:08 am

From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
 drivers/staging/rt3070/sta/aironet.c   | 1313 +-----------------
 drivers/staging/rt3070/sta/assoc.c     | 1734 +----------------------
 drivers/staging/rt3070/sta/auth.c      |  462 +------
 drivers/staging/rt3070/sta/auth_rsp.c  |  150 +--
 drivers/staging/rt3070/sta/connect.c   | 2462 +-------------------------------
 drivers/staging/rt3070/sta/rtmp_data.c | 2430 +-------------------------------
 drivers/staging/rt3070/sta/sanity.c    |  419 +------
 drivers/staging/rt3070/sta/sync.c      | 1602 +---------------------
 drivers/staging/rt3070/sta/wpa.c       | 2084 +---------------------------
 9 files changed, 9 insertions(+), 12647 deletions(-)

diff --git a/drivers/staging/rt3070/sta/aironet.c b/drivers/staging/rt3070/sta/aironet.c
index 4af4a19..48fcc46 100644
--- a/drivers/staging/rt3070/sta/aironet.c
+++ b/drivers/staging/rt3070/sta/aironet.c
@@ -1,1312 +1 @@
-/*
- *************************************************************************
- * Ralink Tech Inc.
- * 5F., No.36, Taiyuan St., Jhubei City,
- * Hsinchu County 302,
- * Taiwan, R.O.C.
- *
- * (c) Copyright 2002-2007, Ralink Technology, Inc.
- *
- * This program is free software; you can redistribute it and/or modify  *
- * it under the terms of the GNU General Public License as published by  *
- * the Free Software Foundation; either version 2 of the License, or     *
- * (at your option) any later version.                                   *
- *                                                                       *
- * This program is distributed in the hope that it will be useful,       *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- * GNU General Public License for more details.                          *
- *                                                                       *
- * You should have received a copy of the GNU General Public License     *
- * along with this program; if not, write to the                         *
- * Free Software Foundation, Inc.,                                       *
- * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
- *                                                                       *
- *************************************************************************
-
-	Module Name:
-	aironet.c
-
-	Abstract:
-
-	Revision History:
-	Who			When			What
-	--------	----------		----------------------------------------------
-	Paul Lin	04-06-15		Initial
-*/
-#include "../rt_config.h"
-
-/*
-	==========================================================================
-	Description:
-		association	state machine init,	including state	transition and timer init
-	Parameters:
-		S -	pointer	to the association state machine
-	==========================================================================
- */
-VOID	AironetStateMachineInit(
-	IN	PRTMP_ADAPTER		pAd,
-	IN	STATE_MACHINE		*S,
-	OUT	STATE_MACHINE_FUNC	Trans[])
-{
-	StateMachineInit(S,	Trans, MAX_AIRONET_STATE, MAX_AIRONET_MSG, (STATE_MACHINE_FUNC)Drop, AIRONET_IDLE, AIRONET_MACHINE_BASE);
-	StateMachineSetAction(S, AIRONET_IDLE, MT2_AIRONET_MSG, (STATE_MACHINE_FUNC)AironetMsgAction);
-	StateMachineSetAction(S, AIRONET_IDLE, MT2_AIRONET_SCAN_REQ, (STATE_MACHINE_FUNC)AironetRequestAction);
-	StateMachineSetAction(S, AIRONET_SCANNING, MT2_AIRONET_SCAN_DONE, (STATE_MACHINE_FUNC)AironetReportAction);
-}
-
-/*
-	==========================================================================
-	Description:
-		This is	state machine function.
-		When receiving EAPOL packets which is  for 802.1x key management.
-		Use	both in	WPA, and WPAPSK	case.
-		In this	function, further dispatch to different	functions according	to the received	packet.	 3 categories are :
-		  1.  normal 4-way pairwisekey and 2-way groupkey handshake
-		  2.  MIC error	(Countermeasures attack)  report packet	from STA.
-		  3.  Request for pairwise/group key update	from STA
-	Return:
-	==========================================================================
-*/
-VOID	AironetMsgAction(
-	IN	PRTMP_ADAPTER	pAd,
-	IN	MLME_QUEUE_ELEM	*Elem)
-{
-	USHORT							Length;
-	UCHAR							Index, i;
-	PUCHAR							pData;
-	PAIRONET_RM_REQUEST_FRAME		pRMReq;
-	PRM_REQUEST_ACTION				pReqElem;
-
-	DBGPRINT(RT_DEBUG_TRACE, ("-----> AironetMsgAction\n"));
-
-	// 0. Get Aironet IAPP header first
-	pRMReq = (PAIRONET_RM_REQUEST_FRAME) &Elem->Msg[LENGTH_802_11];
-	pData  = (PUCHAR) &Elem->Msg[LENGTH_802_11];
-
-	// 1. Change endian format form network to little endian
-	Length = be2cpu16(pRMReq->IAPP.Length);
-
-	// 2.0 Sanity check, this should only happen when CCX 2.0 support is enabled
-	if (pAd->StaCfg.CCXEnable != TRUE)
-		return;
-
-	// 2.1 Radio measurement must be on
-	if (pAd->StaCfg.CCXControl.field.RMEnable != 1)
-		return;
-
-	// 2.2. Debug print all bit information
-	DBGPRINT(RT_DEBUG_TRACE, ("IAPP ID & Length %d\n", Length));
-	DBGPRINT(RT_DEBUG_TRACE, ("IAPP Type %x\n", pRMReq->IAPP.Type));
-	DBGPRINT(RT_DEBUG_TRACE, ("IAPP SubType %x\n", pRMReq->IAPP.SubType));
-	DBGPRINT(RT_DEBUG_TRACE, ("IAPP Dialog Token %x\n", pRMReq->IAPP.Token));
-	DBGPRINT(RT_DEBUG_TRACE, ("IAPP Activation Delay %x\n", pRMReq->Delay));
-	DBGPRINT(RT_DEBUG_TRACE, ("IAPP Measurement Offset %x\n", pRMReq->Offset));
-
-	// 3. Check IAPP frame type, it must be 0x32 for Cisco Aironet extension
-	if (pRMReq->IAPP.Type != AIRONET_IAPP_TYPE)
-	{
-		DBGPRINT(RT_DEBUG_ERROR, ("Wrong IAPP type for Cisco Aironet extension\n"));
-		return;
-	}
-
-	// 4. Check IAPP frame subtype, it must be 0x01 for Cisco Aironet extension request.
-	//    Since we are acting as client only, we will disregards reply subtype.
-	if (pRMReq->IAPP.SubType != AIRONET_IAPP_SUBTYPE_REQUEST)
-	{
-		DBGPRINT(RT_DEBUG_ERROR, ("Wrong IAPP subtype for Cisco Aironet extension\n"));
-		return;
-	}
-
-	// 5. Verify Destination MAC and Source MAC, both should be all zeros.
-	if (! MAC_ADDR_EQUAL(pRMReq->IAPP.DA, ZERO_MAC_ADDR))
-	{
-		DBGPRINT(RT_DEBUG_ERROR, ("Wrong IAPP DA for Cisco Aironet extension, it's not Zero\n"));
-		return;
-	}
-
-	if (! MAC_ADDR_EQUAL(pRMReq->IAPP.SA, ZERO_MAC_ADDR))
-	{
-		DBGPRINT(RT_DEBUG_ERROR, ("Wrong IAPP SA for Cisco Aironet extension, it's not Zero\n"));
-		return;
-	}
-
-	// 6. Reinit all report related fields
-	NdisZeroMemory(pAd->StaCfg.FrameReportBuf, 2048);
-	NdisZeroMemory(pAd->StaCfg.BssReportOffset, sizeof(USHORT) * MAX_LEN_OF_BSS_TABLE);
-	NdisZeroMemory(pAd->StaCfg.MeasurementRequest, sizeof(RM_REQUEST_ACTION) * 4);
-
-	// 7. Point to the start of first element report element
-	pAd->StaCfg.FrameReportLen   = LENGTH_802_11 + sizeof(AIRONET_IAPP_HEADER);
-	DBGPRINT(RT_DEBUG_TRACE, ("FR len = %d\n", pAd->StaCfg.FrameReportLen));
-	pAd->StaCfg.LastBssIndex     = 0xff;
-	pAd->StaCfg.RMReqCnt         = 0;
-	pAd->StaCfg.ParallelReq      = FALSE;
-	pAd->StaCfg.ParallelDuration = 0;
-	pAd->StaCfg.ParallelChannel  = 0;
-	pAd->StaCfg.IAPPToken        = pRMReq->IAPP.Token;
-	pAd->StaCfg.CurrentRMReqIdx  = 0;
-	pAd->StaCfg.CLBusyBytes      = 0;
-	// Reset the statistics
-	for (i = 0; i < 8; i++)
-		pAd->StaCfg.RPIDensity[i] = 0;
-
-	Index = 0;
-
-	// 8. Save dialog token for report
-	pAd->StaCfg.IAPPToken = pRMReq->IAPP.Token;
-
-	// Save Activation delay & measurement offset, Not really needed
-
-	// 9. Point to the first request element
-	pData += sizeof(AIRONET_RM_REQUEST_FRAME);
-	//    Length should exclude the CISCO Aironet SNAP header
-	Length -= (sizeof(AIRONET_RM_REQUEST_FRAME) - LENGTH_802_1_H);
-
-	// 10. Start Parsing the Measurement elements.
-	//    Be careful about multiple MR elements within one frames.
-	while (Length > 0)
-	{
-		pReqElem = (PRM_REQUEST_ACTION) pData;
-		switch (pReqElem->ReqElem.Eid)
-		{
-			case IE_MEASUREMENT_REQUEST:
-				// From the example, it seems we only need to support one request in one frame
-				// There is no multiple request in one frame.
-				// Besides, looks like we need to take care the measurement request only.
-				// The measurement request is always 4 bytes.
-
-				// Start parsing this type of request.
-				// 0. Eid is IE_MEASUREMENT_REQUEST
-				// 1. Length didn't include Eid and Length field, it always be 8.
-				// 2. Measurement Token, we nned to save it for the corresponding report.
-				// 3. Measurement Mode, Although there are definitions, but we din't see value other than
-				//    0 from test specs examples.
-				// 4. Measurement Type, this is what we need to do.
-				switch (pReqElem->ReqElem.Type)
-				{
-					case MSRN_TYPE_CHANNEL_LOAD_REQ:
-					case MSRN_TYPE_NOISE_HIST_REQ:
-					case MSRN_TYPE_BEACON_REQ:
-						// Check the Enable non-serving channel measurement control
-						if (pAd->StaCfg.CCXControl.field.DCRMEnable == 0)
-						{
-							// Check channel before enqueue the action
-							if (pReqElem->Measurement.Channel != pAd->CommonCfg.Channel)
-								break;
-						}
-						else
-						{
-							// If off channel measurement, check the TU duration limit
-							if (pReqElem->Measurement.Channel != pAd->CommonCfg.Channel)
-								if (pReqElem->Measurement.Duration > pAd->StaCfg.CCXControl.field.TuLimit)
-									break;
-						}
-
-						// Save requests and execute actions later
-						NdisMoveMemory(&pAd->StaCfg.MeasurementRequest[Index], pReqElem, sizeof(RM_REQUEST_ACTION));
-						Index += 1;
-						break;
-
-					case MSRN_TYPE_FRAME_REQ:
-						// Since it's option, we will support later
-						// FrameRequestAction(pAd, pData);
-						break;
-
-					default:
-						break;
-				}
-
-				// Point to next Measurement request
-				pData  += sizeof(RM_REQUEST_ACTION);
-				Length -= sizeof(RM_REQUEST_ACTION);
-				break;
-
-			// We accept request only, all others are dropped
-			case IE_MEASUREMENT_REPORT:
-			case IE_AP_TX_POWER:
-			case IE_MEASUREMENT_CAPABILITY:
-			default:
-				return;
-		}
-	}
-
-	// 11. Update some flags and index
-	pAd->StaCfg.RMReqCnt = Index;
-
-	if (Index)
-	{
-		MlmeEnqueue(pAd, AIRONET_STATE_MACHINE, MT2_AIRONET_SCAN_REQ, 0, NULL);
-		RT28XX_MLME_HANDLER(pAd);
-	}
-
-	DBGPRINT(RT_DEBUG_TRACE, ("<----- AironetMsgAction\n"));
-}
-
-/*
-	========================================================================
-
-	Routine Description:
-
-	Arguments:
-
-	Return Value:
-		None
-
-	Note:
-
-	========================================================================
-*/
-VOID	AironetRequestAction(
-	IN	PRTMP_ADAPTER	pAd,
-	IN	MLME_QUEUE_ELEM	*Elem)
-{
-	PRM_REQUEST_ACTION	pReq;
-
-	// 1. Point to next request element
-	pReq = (PRM_REQUEST_ACTION) &pAd->StaCfg.MeasurementRequest[pAd->StaCfg.CurrentRMReqIdx];
-
-	// 2. Parse measurement type and call appropriate functions
-	if (pReq->ReqElem.Type == MSRN_TYPE_CHANNEL_LOAD_REQ)
-		// Channel Load measurement request
-		ChannelLoadRequestAction(pAd, pAd->StaCfg.CurrentRMReqIdx);
-	else if (pReq->ReqElem.Type == MSRN_TYPE_NOISE_HIST_REQ)
-		// Noise Histogram measurement request
-		NoiseHistRequestAction(pAd, pAd->StaCfg.CurrentRMReqIdx);
-	else if (pReq->ReqElem.Type == MSRN_TYPE_BEACON_REQ)
-		// Beacon measurement request
-		BeaconRequestAction(pAd, pAd->StaCfg.CurrentRMReqIdx);
-	else
-		// Unknown. Do nothing and return, this should never happen
-		return;
-
-	// 3. Peek into the next request, if it's parallel, we will update the scan time to the largest one
-	if ((pAd->StaCfg.CurrentRMReqIdx + 1) < pAd->StaCfg.RMReqCnt)
-	{
-		pReq = (PRM_REQUEST_ACTION) &pAd->StaCfg.MeasurementRequest[pAd->StaCfg.CurrentRMReqIdx + 1];
-		// Check for parallel bit
-		if ((pReq->ReqElem.Mode & 0x01) && (pReq->Measurement.Channel == pAd->StaCfg.CCXScanChannel))
-		{
-			// Update parallel mode request information
-			pAd->StaCfg.ParallelReq = TRUE;
-			pAd->StaCfg.CCXScanTime = ((pReq->Measurement.Duration > pAd->StaCfg.CCXScanTime) ?
-			(pReq->Measurement.Duration) : (pAd->StaCfg.CCXScanTime));
-		}
-	}
-
-	// 4. Call RT28XX_MLME_HANDLER to execute the request mlme commands, Scan request is the only one used
-	RT28XX_MLME_HANDLER(pAd);
-
-}
-
-
-/*
-	========================================================================
-
-	Routine Description:
-		Prepare channel load report action, special scan operation added
-		to support
-
-	Arguments:
-		pAd	Pointer	to our adapter
-		pData		Start from element ID
-
-	Return Value:
-		None
-
-	Note:
-
-	========================================================================
-*/
-VOID	ChannelLoadRequestAction(
-	IN	PRTMP_ADAPTER	pAd,
-	IN	UCHAR			Index)
-{
-	PRM_REQUEST_ACTION				pReq;
-	MLME_SCAN_REQ_STRUCT			ScanReq;
-	UCHAR							ZeroSsid[32];
-	NDIS_STATUS						NStatus;
-	PUCHAR							pOutBuffer = NULL;
-	PHEADER_802_11					pNullFrame;
-
-	DBGPRINT(RT_DEBUG_TRACE, ("ChannelLoadRequestAction ----->\n"));
-
-	pReq = (PRM_REQUEST_ACTION) &pAd->StaCfg.MeasurementRequest[Index];
-	NdisZeroMemory(ZeroSsid, 32);
-
-	// Prepare for special scan request
-	// The scan definition is different with our Active, Passive scan definition.
-	// For CCX2, Active means send out probe request with broadcast BSSID.
-	// Passive means no probe request sent, only listen to the beacons.
-	// The channel scanned is fixed as specified, no need to scan all channels.
-	// The scan wait time is specified in the request too.
-	// Passive scan Mode
-
-	// Control state machine is not idle, reject the request
-	if ((pAd->Mlme.CntlMachine.CurrState != CNTL_IDLE) && (Index == 0))
-		return;
-
-	// Fill out stuff for scan request
-	ScanParmFill(pAd, &ScanReq, ZeroSsid, 0, BSS_ANY, SCAN_CISCO_CHANNEL_LOAD);
-	MlmeEnqueue(pAd, SYNC_STATE_MACHINE, MT2_MLME_SCAN_REQ, sizeof(MLME_SCAN_REQ_STRUCT), &ScanReq);
-	pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_OID_LIST_SCAN;
-
-	// Reset some internal control flags to make sure this scan works.
-	BssTableInit(&pAd->StaCfg.CCXBssTab);
-	pAd->StaCfg.ScanCnt        = 0;
-	pAd->StaCfg.CCXScanChannel = pReq->Measurement.Channel;
-	pAd->StaCfg.CCXScanTime    = pReq->Measurement.Duration;
-
-	DBGPRINT(RT_DEBUG_TRACE, ("Duration %d, Channel %d!\n", pReq->Measurement.Duration, pReq->Measurement.Channel));
-
-	// If it's non serving channel scan, send out a null frame with PSM bit on.
-	if (pAd->StaCfg.CCXScanChannel != pAd->CommonCfg.Channel)
-	{
-		// Use MLME enqueue method
-		NStatus = MlmeAllocateMemory(pAd, (PVOID)&pOutBuffer);  //Get an unused nonpaged memory
-		if (NStatus	!= NDIS_STATUS_SUCCESS)
-			return;
-
-		pNullFrame = (PHEADER_802_11) pOutBuffer;;
-		// Make the power save Null frame with PSM bit on
-		MgtMacHeaderInit(pAd, pNullFrame, SUBTYPE_NULL_FUNC, 1, pAd->CommonCfg.Bssid, pAd->CommonCfg.Bssid);
-		pNullFrame->Duration 	= 0;
-		pNullFrame->FC.Type 	= BTYPE_DATA;
-		pNullFrame->FC.PwrMgmt	= PWR_SAVE;
-
-		// Send using priority queue
-		MiniportMMRequest(pAd, 0, pOutBuffer, sizeof(HEADER_802_11));
-		MlmeFreeMemory(pAd, pOutBuffer);
-		DBGPRINT(RT_DEBUG_TRACE, ("Send PSM Data frame for off channel RM\n"));
-		RTMPusecDelay(5000);
-	}
-
-	pAd->StaCfg.CCXReqType     = MSRN_TYPE_CHANNEL_LOAD_REQ;
-	pAd->StaCfg.CLBusyBytes    = 0;
-	// Enable Rx with promiscuous reception
-	RTMP_IO_WRITE32(pAd, RX_FILTR_CFG, 0x1010);
-
-	// Set channel load measurement flag
-	RTMP_SET_FLAG(pAd, fRTMP_ADAPTER_RADIO_MEASUREMENT);
-
-	pAd->Mlme.AironetMachine.CurrState = AIRONET_SCANNING;
-
-	DBGPRINT(RT_DEBUG_TRACE, ("ChannelLoadRequestAction <-----\n"));
-}
-
-/*
-	========================================================================
-
-	Routine Description:
-		Prepare noise histogram report action, special scan operation added
-		to support
-
-	Arguments:
-		pAd	Pointer	to our adapter
-		pData		Start from element ID
-
-	Return Value:
-		None
-
-	Note:
-
-	========================================================================
-*/
-VOID	NoiseHistRequestAction(
-	IN	PRTMP_ADAPTER	pAd,
-	IN	UCHAR			Index)
-{
-	PRM_REQUEST_ACTION				pReq;
-	MLME_SCAN_REQ_STRUCT			ScanReq;
-	UCHAR							ZeroSsid[32], i;
-	NDIS_STATUS						NStatus;
-	PUCHAR							pOutBuffer = NULL;
-	PHEADER_802_11					pNullFrame;
-
-	DBGPRINT(RT_DEBUG_TRACE, ("NoiseHistRequestAction ----->\n"));
-
-	pReq = (PRM_REQUEST_ACTION) &pAd->StaCfg.MeasurementRequest[Index];
-	NdisZeroMemory(ZeroSsid, 32);
-
-	// Prepare for special scan request
-	// The scan definition is different with our Active, Passive scan definition.
-	// For CCX2, Active means send out probe request with broadcast BSSID.
-	// Passive means no probe request sent, only listen to the beacons.
-	// The channel scanned is fixed as specified, no need to scan all channels.
-	// The scan wait time is specified in the request too.
-	// Passive scan Mode
-
-	// Control state machine is not idle, reject the request
-	if ((pAd->Mlme.CntlMachine.CurrState != CNTL_IDLE) && (Index == 0))
-		return;
-
-	// Fill out stuff for scan request
-	ScanParmFill(pAd, &ScanReq, ZeroSsid, 0, BSS_ANY, SCAN_CISCO_NOISE);
-	MlmeEnqueue(pAd, SYNC_STATE_MACHINE, MT2_MLME_SCAN_REQ, sizeof(MLME_SCAN_REQ_STRUCT), &ScanReq);
-	pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_OID_LIST_SCAN;
-
-	// Reset some internal control flags to make sure this scan works.
-	BssTableInit(&pAd->StaCfg.CCXBssTab);
-	pAd->StaCfg.ScanCnt        = 0;
-	pAd->StaCfg.CCXScanChannel = pReq->Measurement.Channel;
-	pAd->StaCfg.CCXScanTime    = pReq->Measurement.Duration;
-	pAd->StaCfg.CCXReqType     = MSRN_TYPE_NOISE_HIST_REQ;
-
-	DBGPRINT(RT_DEBUG_TRACE, ("Duration %d, Channel %d!\n", pReq->Measurement.Duration, pReq->Measurement.Channel));
-
-	// If it's non serving channel scan, send out a null frame with PSM bit on.
-	if (pAd->StaCfg.CCXScanChannel != pAd->CommonCfg.Channel)
-	{
-		// Use MLME enqueue method
-		NStatus = MlmeAllocateMemory(pAd, (PVOID)&pOutBuffer);  //Get an unused nonpaged memory
-		if (NStatus	!= NDIS_STATUS_SUCCESS)
-			return;
-
-		pNullFrame = (PHEADER_802_11) pOutBuffer;
-		// Make the power save Null frame with PSM bit on
-		MgtMacHeaderInit(pAd, pNullFrame, SUBTYPE_NULL_FUNC, 1, pAd->CommonCfg.Bssid, pAd->CommonCfg.Bssid);
-		pNullFrame->Duration 	= 0;
-		pNullFrame->FC.Type  	= BTYPE_DATA;
-		pNullFrame->FC.PwrMgmt	= PWR_SAVE;
-
-		// Send using priority queue
-		MiniportMMRequest(pAd, 0, pOutBuffer, sizeof(HEADER_802_11));
-		MlmeFreeMemory(pAd, pOutBuffer);
-		DBGPRINT(RT_DEBUG_TRACE, ("Send PSM Data frame for off channel RM\n"));
-		RTMPusecDelay(5000);
-	}
-
-	// Reset the statistics
-	for (i = 0; i < 8; i++)
-		pAd->StaCfg.RPIDensity[i] = 0;
-
-	// Enable Rx with promiscuous reception
-	RTMP_IO_WRITE32(pAd, RX_FILTR_CFG, 0x1010);
-
-	// Set channel load measurement flag
-	RTMP_SET_FLAG(pAd, fRTMP_ADAPTER_RADIO_MEASUREMENT);
-
-	pAd->Mlme.AironetMachine.CurrState = AIRONET_SCANNING;
-
-	DBGPRINT(RT_DEBUG_TRACE, ("NoiseHistRequestAction <-----\n"));
-}
-
-/*
-	========================================================================
-
-	Routine Description:
-		Prepare Beacon report action, special scan operation added
-		to support
-
-	Arguments:
-		pAd	Pointer	to our adapter
-		pData		Start from element ID
-
-	Return Value:
-		None
-
-	Note:
-
-	========================================================================
-*/
-VOID	BeaconRequestAction(
-	IN	PRTMP_ADAPTER	pAd,
-	IN	UCHAR			Index)
-{
-	PRM_REQUEST_ACTION				pReq;
-	NDIS_STATUS						NStatus;
-	PUCHAR							pOutBuffer = NULL;
-	PHEADER_802_11					pNullFrame;
-	MLME_SCAN_REQ_STRUCT			ScanReq;
-	UCHAR							ZeroSsid[32];
-
-	DBGPRINT(RT_DEBUG_TRACE, ("BeaconRequestAction ----->\n"));
-
-	pReq = (PRM_REQUEST_ACTION) &pAd->StaCfg.MeasurementRequest[Index];
-	NdisZeroMemory(ZeroSsid, 32);
-
-	// Prepare for special scan request
-	// The scan definition is different with our Active, Passive scan definition.
-	// For CCX2, Active means send out probe request with broadcast BSSID.
-	// Passive means no probe request sent, only listen to the beacons.
-	// The channel scanned is fixed as specified, no need to scan all channels.
-	// The scan wait time is specified in the request too.
-	if (pReq->Measurement.ScanMode == MSRN_SCAN_MODE_PASSIVE)
-	{
-		// Passive scan Mode
-		DBGPRINT(RT_DEBUG_TRACE, ("Passive Scan Mode!\n"));
-
-		// Control state machine is not idle, reject the request
-		if ((pAd->Mlme.CntlMachine.CurrState != CNTL_IDLE) && (Index == 0))
-			return;
-
-		// Fill out stuff for scan request
-		ScanParmFill(pAd, &ScanReq, ZeroSsid, 0, BSS_ANY, SCAN_CISCO_PASSIVE);
-		MlmeEnqueue(pAd, SYNC_STATE_MACHINE, MT2_MLME_SCAN_REQ, sizeof(MLME_SCAN_REQ_STRUCT), &ScanReq);
-		pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_OID_LIST_SCAN;
-
-		// Reset some internal control flags to make sure this scan works.
-		BssTableInit(&pAd->StaCfg.CCXBssTab);
-		pAd->StaCfg.ScanCnt        = 0;
-		pAd->StaCfg.CCXScanChannel = pReq->Measurement.Channel;
-		pAd->StaCfg.CCXScanTime    = pReq->Measurement.Duration;
-		pAd->StaCfg.CCXReqType     = MSRN_TYPE_BEACON_REQ;
-		DBGPRINT(RT_DEBUG_TRACE, ("Duration %d!\n", pReq->Measurement.Duration));
-
-		// If it's non serving channel scan, send out a null frame with PSM bit on.
-		if (pAd->StaCfg.CCXScanChannel != pAd->CommonCfg.Channel)
-		{
-			// Use MLME enqueue method
-			NStatus = MlmeAllocateMemory(pAd, (PVOID)&pOutBuffer);  //Get an unused nonpaged memory
-			if (NStatus	!= NDIS_STATUS_SUCCESS)
-				return;
-
-			pNullFrame = (PHEADER_802_11) pOutBuffer;
-			// Make the power save Null frame with PSM bit on
-			MgtMacHeaderInit(pAd, pNullFrame, SUBTYPE_NULL_FUNC, 1, pAd->CommonCfg.Bssid, pAd->CommonCfg.Bssid);
-			pNullFrame->Duration 	= 0;
-			pNullFrame->FC.Type     = BTYPE_DATA;
-			pNullFrame->FC.PwrMgmt  = PWR_SAVE;
-
-			// Send using priority queue
-			MiniportMMRequest(pAd, 0, pOutBuffer, sizeof(HEADER_802_11));
-			MlmeFreeMemory(pAd, pOutBuffer);
-			DBGPRINT(RT_DEBUG_TRACE, ("Send PSM Data frame for off channel RM\n"));
-			RTMPusecDelay(5000);
-		}
-
-		pAd->Mlme.AironetMachine.CurrState = AIRONET_SCANNING;
-	}
-	else if (pReq->Measurement.ScanMode == MSRN_SCAN_MODE_ACTIVE)
-	{
-		// Active scan Mode
-		DBGPRINT(RT_DEBUG_TRACE, ("Active Scan Mode!\n"));
-
-		// Control state machine is not idle, reject the request
-		if (pAd->Mlme.CntlMachine.CurrState != CNTL_IDLE)
-			return;
-
-		// Fill out stuff for scan request
-		ScanParmFill(pAd, &ScanReq, ZeroSsid, 0, BSS_ANY, SCAN_CISCO_ACTIVE);
-		MlmeEnqueue(pAd, SYNC_STATE_MACHINE, MT2_MLME_SCAN_REQ, sizeof(MLME_SCAN_REQ_STRUCT), &ScanReq);
-		pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_OID_LIST_SCAN;
-
-		// Reset some internal control flags to make sure this scan works.
-		BssTableInit(&pAd->StaCfg.CCXBssTab);
-		pAd->StaCfg.ScanCnt        = 0;
-		pAd->StaCfg.CCXScanChannel = pReq->Measurement.Channel;
-		pAd->StaCfg.CCXScanTime    = pReq->Measurement.Duration;
-		pAd->StaCfg.CCXReqType     = MSRN_TYPE_BEACON_REQ;
-		DBGPRINT(RT_DEBUG_TRACE, ("Duration %d!\n", pReq->Measurement.Duration));
-
-		// If it's non serving channel scan, send out a null frame with PSM bit on.
-		if (pAd->StaCfg.CCXScanChannel != pAd->CommonCfg.Channel)
-		{
-			// Use MLME enqueue method
-			NStatus = MlmeAllocateMemory(pAd, (PVOID)&pOutBuffer);  //Get an unused nonpaged memory
-			if (NStatus	!= NDIS_STATUS_SUCCESS)
-				return;
-
-			pNullFrame = (PHEADER_802_11) pOutBuffer;
-			// Make the power save Null frame with PSM bit on
-			MgtMacHeaderInit(pAd, pNullFrame, SUBTYPE_NULL_FUNC, 1, pAd->CommonCfg.Bssid, pAd->CommonCfg.Bssid);
-			pNullFrame->Duration 	= 0;
-			pNullFrame->FC.Type     = BTYPE_DATA;
-			pNullFrame->FC.PwrMgmt  = PWR_SAVE;
-
-			// Send using priority queue
-			MiniportMMRequest(pAd, 0, pOutBuffer, sizeof(HEADER_802_11));
-			MlmeFreeMemory(pAd, pOutBuffer);
-			DBGPRINT(RT_DEBUG_TRACE, ("Send PSM Data frame for off channel RM\n"));
-			RTMPusecDelay(5000);
-		}
-
-		pAd->Mlme.AironetMachine.CurrState = AIRONET_SCANNING;
-	}
-	else if (pReq->Measurement.ScanMode == MSRN_SCAN_MODE_BEACON_TABLE)
-	{
-		// Beacon report Mode, report all the APS in current bss table
-		DBGPRINT(RT_DEBUG_TRACE, ("Beacon Report Mode!\n"));
-
-		// Copy current BSS table to CCX table, we can omit this step later on.
-		NdisMoveMemory(&pAd->StaCfg.CCXBssTab, &pAd->ScanTab, sizeof(BSS_TABLE));
-
-		// Create beacon report from Bss table
-		AironetCreateBeaconReportFromBssTable(pAd);
-
-		// Set state to scanning
-		pAd->Mlme.AironetMachine.CurrState = AIRONET_SCANNING;
-
-		// Enqueue report request
-		// Cisco scan request is finished, prepare beacon report
-		MlmeEnqueue(pAd, AIRONET_STATE_MACHINE, MT2_AIRONET_SCAN_DONE, 0, NULL);
-	}
-	else
-	{
-		// Wrong scan Mode
-		DBGPRINT(RT_DEBUG_TRACE, ("Wrong Scan Mode!\n"));
-	}
-
-	DBGPRINT(RT_DEBUG_TRACE, ("BeaconRequestAction <-----\n"));
-}
-
-/*
-	========================================================================
-
-	Routine Description:
-
-	Arguments:
-
-	Return Value:
-		None
-
-	Note:
-
-	========================================================================
-*/
-VOID	AironetReportAction(
-	IN	PRTMP_ADAPTER	pAd,
-	IN	MLME_QUEUE_ELEM	*Elem)
-{
-	PRM_REQUEST_ACTION	pReq;
-	ULONG				Now32;
-
-    NdisGetSystemUpTime(&Now32);
-	pAd->StaCfg.LastBeaconRxTime = Now32;
-
-	pReq = (PRM_REQUEST_ACTION) &pAd->StaCfg.MeasurementRequest[pAd->StaCfg.CurrentRMReqIdx];
-
-	DBGPRINT(RT_DEBUG_TRACE, ("AironetReportAction ----->\n"));
-
-	// 1. Parse measurement type and call appropriate functions
-	if (pReq->ReqElem.Type == MSRN_TYPE_CHANNEL_LOAD_REQ)
-		// Channel Load measurement request
-		ChannelLoadReportAction(pAd, pAd->StaCfg.CurrentRMReqIdx);
-	else if (pReq->ReqElem.Type == MSRN_TYPE_NOISE_HIST_REQ)
-		// Noise Histogram measurement request
-		NoiseHistReportAction(pAd, pAd->StaCfg.CurrentRMReqIdx);
-	else if (pReq->ReqElem.Type == MSRN_TYPE_BEACON_REQ)
-		// Beacon measurement request
-		BeaconReportAction(pAd, pAd->StaCfg.CurrentRMReqIdx);
-	else
-		// Unknown. Do nothing and return
-		;
-
-	// 2. Point to the correct index of action element, start from 0
-	pAd->StaCfg.CurrentRMReqIdx++;
-
-	// 3. Check for parallel actions
-	if (pAd->StaCfg.ParallelReq == TRUE)
-	{
-		pReq = (PRM_REQUEST_ACTION) &pAd->StaCfg.MeasurementRequest[pAd->StaCfg.CurrentRMReqIdx];
-
-		// Process next action right away
-		if (pReq->ReqElem.Type == MSRN_TYPE_CHANNEL_LOAD_REQ)
-			// Channel Load measurement request
-			ChannelLoadReportAction(pAd, pAd->StaCfg.CurrentRMReqIdx);
-		else if (pReq->ReqElem.Type == MSRN_TYPE_NOISE_HIST_REQ)
-			// Noise Histogram measurement request
-			NoiseHistReportAction(pAd, pAd->StaCfg.CurrentRMReqIdx);
-
-		pAd->StaCfg.ParallelReq = FALSE;
-		pAd->StaCfg.CurrentRMReqIdx++;
-	}
-
-	if (pAd->StaCfg.CurrentRMReqIdx >= pAd->StaCfg.RMReqCnt)
-	{
-		// 4. There is no more unprocessed measurement request, go for transmit this report
-		AironetFinalReportAction(pAd);
-		pAd->Mlme.AironetMachine.CurrState = AIRONET_IDLE;
-	}
-	else
-	{
-		pReq = (PRM_REQUEST_ACTION) &pAd->StaCfg.MeasurementRequest[pAd->StaCfg.CurrentRMReqIdx];
-
-		if (pReq->Measurement.Channel != pAd->CommonCfg.Channel)
-		{
-			RTMPusecDelay(100000);
-		}
-
-		// 5. There are more requests to be measure
-		MlmeEnqueue(pAd, AIRONET_STATE_MACHINE, MT2_AIRONET_SCAN_REQ, 0, NULL);
-		RT28XX_MLME_HANDLER(pAd);
-	}
-
-	DBGPRINT(RT_DEBUG_TRACE, ("AironetReportAction <-----\n"));
-}
-
-/*
-	========================================================================
-
-	Routine Description:
-
-	Arguments:
-
-	Return Value:
-		None
-
-	Note:
-
-	========================================================================
-*/
-VOID	AironetFinalReportAction(
-	IN	PRTMP_ADAPTER	pAd)
-{
-	PUCHAR					pDest;
-	PAIRONET_IAPP_HEADER	pIAPP;
-	PHEADER_802_11			pHeader;
-	UCHAR					AckRate = RATE_2;
-	USHORT					AckDuration = 0;
-	NDIS_STATUS				NStatus;
-	PUCHAR					pOutBuffer = NULL;
-	ULONG					FrameLen = 0;
-
-	DBGPRINT(RT_DEBUG_TRACE, ("AironetFinalReportAction ----->\n"));
-
-	// 0. Set up the frame pointer, Frame was inited at the end of message action
-	pDest = &pAd->StaCfg.FrameReportBuf[LENGTH_802_11];
-
-	// 1. Update report IAPP fields
-	pIAPP = (PAIRONET_IAPP_HEADER) pDest;
-
-	// 2. Copy Cisco SNAP header
-	NdisMoveMemory(pIAPP->CiscoSnapHeader, SNAP_AIRONET, LENGTH_802_1_H);
-
-	// 3. network order for this 16bit length
-	pIAPP->Length  = cpu2be16(pAd->StaCfg.FrameReportLen - LENGTH_802_11 - LENGTH_802_1_H);
-
-	// 3.1 sanity check the report length, ignore it if there is nothing to report
-	if (be2cpu16(pIAPP->Length) <= 18)
-		return;
-
-	// 4. Type must be 0x32
-	pIAPP->Type    = AIRONET_IAPP_TYPE;
-
-	// 5. SubType for report must be 0x81
-	pIAPP->SubType = AIRONET_IAPP_SUBTYPE_REPORT;
-
-	// 6. DA is not used and must be zero, although the whole frame was cleared at the start of function
-	//    We will do it again here. We can use BSSID instead
-	COPY_MAC_ADDR(pIAPP->DA, pAd->CommonCfg.Bssid);
-
-	// 7. SA is the client reporting which must be our MAC
-	COPY_MAC_ADDR(pIAPP->SA, pAd->CurrentAddress);
-
-	// 8. Copy the saved dialog token
-	pIAPP->Token = pAd->StaCfg.IAPPToken;
-
-	// 9. Make the Report frame 802.11 header
-	//    Reuse function in wpa.c
-	pHeader = (PHEADER_802_11) pAd->StaCfg.FrameReportBuf;
-	pAd->Sequence ++;
-	WpaMacHeaderInit(pAd, pHeader, 0, pAd->CommonCfg.Bssid);
-
-	// ACK size	is 14 include CRC, and its rate	is based on real time information
-	AckRate     = pAd->CommonCfg.ExpectedACKRate[pAd->CommonCfg.MlmeRate];
-	AckDuration = RTMPCalcDuration(pAd, AckRate, 14);
-	pHeader->Duration = pAd->CommonCfg.Dsifs + AckDuration;
-
-	// Use MLME enqueue method
-	NStatus = MlmeAllocateMemory(pAd, &pOutBuffer);  //Get an unused nonpaged memory
-	if (NStatus	!= NDIS_STATUS_SUCCESS)
-		return;
-
-	// 10. Prepare report frame with dynamic outbuffer. Just simply copy everything.
-	MakeOutgoingFrame(pOutBuffer,                       &FrameLen,
-	                  pAd->StaCfg.FrameReportLen, pAd->StaCfg.FrameReportBuf,
-		              END_OF_ARGS);
-
-	// 11. Send using priority queue
-	MiniportMMRequest(pAd, 0, pOutBuffer, FrameLen);
-	MlmeFreeMemory(pAd, pOutBuffer);
-
-	pAd->StaCfg.CCXReqType = MSRN_TYPE_UNUSED;
-
-	DBGPRINT(RT_DEBUG_TRACE, ("AironetFinalReportAction <-----\n"));
-}
-
-/*
-	========================================================================
-
-	Routine Description:
-
-	Arguments:
-
-	Return Value:
-		None
-
-	Note:
-
-	========================================================================
-*/
-VOID	ChannelLoadReportAction(
-	IN	PRTMP_ADAPTER	pAd,
-	IN	UCHAR			Index)
-{
-	PMEASUREMENT_REPORT_ELEMENT	pReport;
-	PCHANNEL_LOAD_REPORT		pLoad;
-	PUCHAR						pDest;
-	UCHAR						CCABusyFraction;
-
-	DBGPRINT(RT_DEBUG_TRACE, ("ChannelLoadReportAction ----->\n"));
-
-	// Disable Rx with promiscuous reception, make it back to normal
-	RTMP_IO_WRITE32(pAd, RX_FILTR_CFG, STANORMAL); // Staion not drop control frame will fail WiFi Certification.
-
-	// 0. Setup pointer for processing beacon & probe response
-	pDest = (PUCHAR) &pAd->StaCfg.FrameReportBuf[pAd->StaCfg.FrameReportLen];
-	pReport = (PMEASUREMENT_REPORT_ELEMENT) pDest;
-
-	// 1. Fill Measurement report element field.
-	pReport->Eid    = IE_MEASUREMENT_REPORT;
-	// Fixed Length at 9, not include Eid and length fields
-	pReport->Length = 9;
-	pReport->Token  = pAd->StaCfg.MeasurementRequest[Index].ReqElem.Token;
-	pReport->Mode   = pAd->StaCfg.MeasurementRequest[Index].ReqElem.Mode;
-	pReport->Type   = MSRN_TYPE_CHANNEL_LOAD_REQ;
-
-	// 2. Fill channel report measurement data
-	pDest += sizeof(MEASUREMENT_REPORT_ELEMENT);
-	pLoad  = (PCHANNEL_LOAD_REPORT) pDest;
-	pLoad->Channel  = pAd->StaCfg.MeasurementRequest[Index].Measurement.Channel;
-	pLoad->Spare    = 0;
-	pLoad->Duration = pAd->StaCfg.MeasurementRequest[Index].Measurement.Duration;
-
-	// 3. Calculate the CCA Busy Fraction
-	//    (Bytes + ACK size) * 8 / Tx speed * 255 / 1000 / measurement duration, use 24 us Tx speed
-	//     =  (Bytes + ACK) / 12 / duration
-	//     9 is the good value for pAd->StaCfg.CLFactor
-	// CCABusyFraction = (UCHAR) (pAd->StaCfg.CLBusyBytes / 9 / pLoad->Duration);
-	CCABusyFraction = (UCHAR) (pAd->StaCfg.CLBusyBytes / pAd->StaCfg.CLFactor / pLoad->Duration);
-	if (CCABusyFraction < 10)
-			CCABusyFraction = (UCHAR) (pAd->StaCfg.CLBusyBytes / 3 / pLoad->Duration) + 1;
-
-	pLoad->CCABusy = CCABusyFraction;
-	DBGPRINT(RT_DEBUG_TRACE, ("CLBusyByte %ld, Duration %d, Result, %d\n", pAd->StaCfg.CLBusyBytes, pLoad->Duration, CCABusyFraction));
-
-	DBGPRINT(RT_DEBUG_TRACE, ("FrameReportLen %d\n", pAd->StaCfg.FrameReportLen));
-	pAd->StaCfg.FrameReportLen += (sizeof(MEASUREMENT_REPORT_ELEMENT) + sizeof(CHANNEL_LOAD_REPORT));
-	DBGPRINT(RT_DEBUG_TRACE, ("FrameReportLen %d\n", pAd->StaCfg.FrameReportLen));
-
-	// 4. Clear channel load measurement flag
-	RTMP_CLEAR_FLAG(pAd, fRTMP_ADAPTER_RADIO_MEASUREMENT);
-
-	// 5. reset to idle state
-	pAd->Mlme.AironetMachine.CurrState = AIRONET_IDLE;
-
-	DBGPRINT(RT_DEBUG_TRACE, ("ChannelLoadReportAction <-----\n"));
-}
-
-/*
-	========================================================================
-
-	Routine Description:
-
-	Arguments:
-
-	Return Value:
-		None
-
-	Note:
-
-	========================================================================
-*/
-VOID	NoiseHistReportAction(
-	IN	PRTMP_ADAPTER	pAd,
-	IN	UCHAR			Index)
-{
-	PMEASUREMENT_REPORT_ELEMENT	pReport;
-	PNOISE_HIST_REPORT			pNoise;
-	PUCHAR						pDest;
-	UCHAR						i,NoiseCnt;
-	USHORT						TotalRPICnt, TotalRPISum;
-
-	DBGPRINT(RT_DEBUG_TRACE, ("NoiseHistReportAction ----->\n"));
-
-	// 0. Disable Rx with promiscuous reception, make it back to normal
-	RTMP_IO_WRITE32(pAd, RX_FILTR_CFG, STANORMAL); // Staion not drop control frame will fail WiFi Certification.
-	// 1. Setup pointer for processing beacon & probe response
-	pDest = (PUCHAR) &pAd->StaCfg.FrameReportBuf[pAd->StaCfg.FrameReportLen];
-	pReport = (PMEASUREMENT_REPORT_ELEMENT) pDest;
-
-	// 2. Fill Measurement report element field.
-	pReport->Eid    = IE_MEASUREMENT_REPORT;
-	// Fixed Length at 16, not include Eid and length fields
-	pReport->Length = 16;
-	pReport->Token  = pAd->StaCfg.MeasurementRequest[Index].ReqElem.Token;
-	pReport->Mode   = pAd->StaCfg.MeasurementRequest[Index].ReqElem.Mode;
-	pReport->Type   = MSRN_TYPE_NOISE_HIST_REQ;
-
-	// 3. Fill noise histogram report measurement data
-	pDest += sizeof(MEASUREMENT_REPORT_ELEMENT);
-	pNoise  = (PNOISE_HIST_REPORT) pDest;
-	pNoise->Channel  = pAd->StaCfg.MeasurementRequest[Index].Measurement.Channel;
-	pNoise->Spare    = 0;
-	pNoise->Duration = pAd->StaCfg.MeasurementRequest[Index].Measurement.Duration;
-	// 4. Fill Noise histogram, the total RPI counts should be 0.4 * TU
-	//    We estimate 4000 normal packets received durning 10 seconds test.
-	//    Adjust it if required.
-	// 3 is a good value for pAd->StaCfg.NHFactor
-	// TotalRPICnt = pNoise->Duration * 3 / 10;
-	TotalRPICnt = pNoise->Duration * pAd->StaCfg.NHFactor / 10;
-	TotalRPISum = 0;
-
-	for (i = 0; i < 8; i++)
-	{
-		TotalRPISum += pAd->StaCfg.RPIDensity[i];
-		DBGPRINT(RT_DEBUG_TRACE, ("RPI %d Conuts %d\n", i, pAd->StaCfg.RPIDensity[i]));
-	}
-
-	// Double check if the counter is larger than our expectation.
-	// We will replace it with the total number plus a fraction.
-	if (TotalRPISum > TotalRPICnt)
-		TotalRPICnt = TotalRPISum + pNoise->Duration / 20;
-
-	DBGPRINT(RT_DEBUG_TRACE, ("Total RPI Conuts %d\n", TotalRPICnt));
-
-	// 5. Initialize noise count for the total summation of 0xff
-	NoiseCnt = 0;
-	for (i = 1; i < 8; i++)
-	{
-		pNoise->Density[i] = (UCHAR) (pAd->StaCfg.RPIDensity[i] * 255 / TotalRPICnt);
-		if ((pNoise->Density[i] == 0) && (pAd->StaCfg.RPIDensity[i] != 0))
-			pNoise->Density[i]++;
-		NoiseCnt += pNoise->Density[i];
-		DBGPRINT(RT_DEBUG_TRACE, ("Reported RPI[%d]  = 0x%02x\n", i, pNoise->Density[i]));
-	}
-
-	// 6. RPI[0] represents the rest of counts
-	pNoise->Density[0] = 0xff - NoiseCnt;
-	DBGPRINT(RT_DEBUG_TRACE, ("Reported RPI[0]  = 0x%02x\n", pNoise->Density[0]));
-
-	pAd->StaCfg.FrameReportLen += (sizeof(MEASUREMENT_REPORT_ELEMENT) + sizeof(NOISE_HIST_REPORT));
-
-	// 7. Clear channel load measurement flag
-	RTMP_CLEAR_FLAG(pAd, fRTMP_ADAPTER_RADIO_MEASUREMENT);
-
-	// 8. reset to idle state
-	pAd->Mlme.AironetMachine.CurrState = AIRONET_IDLE;
-
-	DBGPRINT(RT_DEBUG_TRACE, ("NoiseHistReportAction <-----\n"));
-}
-
-/*
-	========================================================================
-
-	Routine Description:
-		Prepare Beacon report action,
-
-	Arguments:
-		pAd	Pointer	to our adapter
-
-	Return Value:
-		None
-
-	Note:
-
-	========================================================================
-*/
-VOID	BeaconReportAction(
-	IN	PRTMP_ADAPTER	pAd,
-	IN	UCHAR			Index)
-{
-	DBGPRINT(RT_DEBUG_TRACE, ("BeaconReportAction ----->\n"));
-
-	// Looks like we don't have anything thing need to do here.
-	// All measurement report already finished in AddBeaconReport
-	// The length is in the FrameReportLen
-
-	// reset Beacon index for next beacon request
-	pAd->StaCfg.LastBssIndex = 0xff;
-
-	// reset to idle state
-	pAd->Mlme.AironetMachine.CurrState = AIRONET_IDLE;
-
-	DBGPRINT(RT_DEBUG_TRACE, ("BeaconReportAction <-----\n"));
-}
-
-/*
-	========================================================================
-
-	Routine Description:
-
-	Arguments:
-		Index		Current BSSID in CCXBsstab entry index
-
-	Return Value:
-
-	Note:
-
-	========================================================================
-*/
-VOID	AironetAddBeaconReport(
-	IN	PRTMP_ADAPTER		pAd,
-	IN	ULONG				Index,
-	IN	PMLME_QUEUE_ELEM	pElem)
-{
-	PVOID						pMsg;
-	PUCHAR						pSrc, pDest;
-	UCHAR						ReqIdx;
-	ULONG						MsgLen;
-	USHORT						Length;
-	PFRAME_802_11				pFrame;
-	PMEASUREMENT_REPORT_ELEMENT	pReport;
-	PEID_STRUCT			        pEid;
-	PBEACON_REPORT				pBeaconReport;
-	PBSS_ENTRY					pBss;
-
-	// 0. Setup pointer for processing beacon & probe response
-	pMsg   = pElem->Msg;
-	MsgLen = pElem->MsgLen;
-	pFrame = (PFRAME_802_11) pMsg;
-	pSrc   = pFrame->Octet;				// Start from AP TSF
-	pBss   = (PBSS_ENTRY) &pAd->StaCfg.CCXBssTab.BssEntry[Index];
-	ReqIdx = pAd->StaCfg.CurrentRMReqIdx;
-
-	// 1 Check the Index, if we already create this entry, only update the average RSSI
-	if ((Index <= pAd->StaCfg.LastBssIndex) && (pAd->StaCfg.LastBssIndex != 0xff))
-	{
-		pDest  = (PUCHAR) &pAd->StaCfg.FrameReportBuf[pAd->StaCfg.BssReportOffset[Index]];
-		// Point to bss report information
-		pDest += sizeof(MEASUREMENT_REPORT_ELEMENT);
-		pBeaconReport = (PBEACON_REPORT) pDest;
-
-		// Update Rx power, in dBm
-		// Get the original RSSI readback from BBP
-		pBeaconReport->RxPower += pAd->BbpRssiToDbmDelta;
-		// Average the Rssi reading
-		pBeaconReport->RxPower  = (pBeaconReport->RxPower + pBss->Rssi) / 2;
-		// Get to dBm format
-		pBeaconReport->RxPower -= pAd->BbpRssiToDbmDelta;
-
-		DBGPRINT(RT_DEBUG_TRACE, ("Bssid %02x:%02x:%02x:%02x:%02x:%02x ",
-			pBss->Bssid[0], pBss->Bssid[1], pBss->Bssid[2],
-			pBss->Bssid[3], pBss->Bssid[4], pBss->Bssid[5]));
-		DBGPRINT(RT_DEBUG_TRACE, ("RxPower[%ld] Rssi %d, Avg Rssi %d\n", Index, (pBss->Rssi - pAd->BbpRssiToDbmDelta), pBeaconReport->RxPower - 256));
-		DBGPRINT(RT_DEBUG_TRACE, ("FrameReportLen = %d\n", pAd->StaCfg.BssReportOffset[Index]));
-
-		// Update other information here
-
-		// Done
-		return;
-	}
-
-	// 2. Update reported Index
-	pAd->StaCfg.LastBssIndex = Index;
-
-	// 3. Setup the buffer address for copying this BSSID into reporting frame
-	//    The offset should start after 802.11 header and report frame header.
-	pDest = (PUCHAR) &pAd->StaCfg.FrameReportBuf[pAd->StaCfg.FrameReportLen];
-
-	// 4. Save the start offset of each Bss in report frame
-	pAd->StaCfg.BssReportOffset[Index] = pAd->StaCfg.FrameReportLen;
-
-	// 5. Fill Measurement report fields
-	pReport = (PMEASUREMENT_REPORT_ELEMENT) pDest;
-	pReport->Eid = IE_MEASUREMENT_REPORT;
-	pReport->Length = 0;
-	pReport->Token  = pAd->StaCfg.MeasurementRequest[ReqIdx].ReqElem.Token;
-	pReport->Mode   = pAd->StaCfg.MeasurementRequest[ReqIdx].ReqElem.Mode;
-	pReport->Type   = MSRN_TYPE_BEACON_REQ;
-	Length          = sizeof(MEASUREMENT_REPORT_ELEMENT);
-	pDest          += sizeof(MEASUREMENT_REPORT_ELEMENT);
-
-	// 6. Start thebeacon report format
-	pBeaconReport = (PBEACON_REPORT) pDest;
-	pDest        += sizeof(BEACON_REPORT);
-	Length       += sizeof(BEACON_REPORT);
-
-	// 7. Copy Channel number
-	pBeaconReport->Channel        = pBss->Channel;
-	pBeaconReport->Spare          = 0;
-	pBeaconReport->Duration       = pAd->StaCfg.MeasurementRequest[ReqIdx].Measurement.Duration;
-	pBeaconReport->PhyType        = ((pBss->SupRateLen+pBss->ExtRateLen > 4) ? PHY_ERP : PHY_DSS);
-	// 8. Rx power, in dBm
-	pBeaconReport->RxPower        = pBss->Rssi - pAd->BbpRssiToDbmDelta;
-
-	DBGPRINT(RT_DEBUG_TRACE, ("Bssid %02x:%02x:%02x:%02x:%02x:%02x ",
-		pBss->Bssid[0], pBss->Bssid[1], pBss->Bssid[2],
-		pBss->Bssid[3], pBss->Bssid[4], pBss->Bssid[5]));
-	DBGPRINT(RT_DEBUG_TRACE, ("RxPower[%ld], Rssi %d\n", Index, pBeaconReport->RxPower - 256));
-	DBGPRINT(RT_DEBUG_TRACE, ("FrameReportLen = %d\n", pAd->StaCfg.FrameReportLen));
-
-	pBeaconReport->BeaconInterval = pBss->BeaconPeriod;
-	COPY_MAC_ADDR(pBeaconReport->BSSID, pFrame->Hdr.Addr3);
-	NdisMoveMemory(pBeaconReport->ParentTSF, pSrc, 4);
-	NdisMoveMemory(pBeaconReport->TargetTSF, &pElem->TimeStamp.u.LowPart, 4);
-	NdisMoveMemory(&pBeaconReport->TargetTSF[4], &pElem->TimeStamp.u.HighPart, 4);
-
-	// 9. Skip the beacon frame and offset to start of capabilityinfo since we already processed capabilityinfo
-	pSrc += (TIMESTAMP_LEN + 2);
-	pBeaconReport->CapabilityInfo = *(USHORT *)pSrc;
-
-	// 10. Point to start of element ID
-	pSrc += 2;
-	pEid = (PEID_STRUCT) pSrc;
-
-	// 11. Start process all variable Eid oayload and add the appropriate to the frame report
-	while (((PUCHAR) pEid + pEid->Len + 1) < ((PUCHAR) pFrame + MsgLen))
-	{
-		// Only limited EID are required to report for CCX 2. It includes SSID, Supported rate,
-		// FH paramenter set, DS parameter set, CF parameter set, IBSS parameter set,
-		// TIM (report first 4 bytes only, radio measurement capability
-		switch (pEid->Eid)
-		{
-			case IE_SSID:
-			case IE_SUPP_RATES:
-			case IE_FH_PARM:
-			case IE_DS_PARM:
-			case IE_CF_PARM:
-			case IE_IBSS_PARM:
-				NdisMoveMemory(pDest, pEid, pEid->Len + 2);
-				pDest  += (pEid->Len + 2);
-				Length += (pEid->Len + 2);
-				break;
-
-			case IE_MEASUREMENT_CAPABILITY:
-				// Since this IE is duplicated with WPA security IE, we has to do sanity check before
-				// recognize it.
-				// 1. It also has fixed 6 bytes IE length.
-				if (pEid->Len != 6)
-					break;
-				// 2. Check the Cisco Aironet OUI
-				if (NdisEqualMemory(CISCO_OUI, (pSrc + 2), 3))
-				{
-					// Matched, this is what we want
-					NdisMoveMemory(pDest, pEid, pEid->Len + 2);
-					pDest  += (pEid->Len + 2);
-					Length += (pEid->Len + 2);
-				}
-				break;
-
-			case IE_TIM:
-				if (pEid->Len > 4)
-				{
-					// May truncate and report the first 4 bytes only, with the eid & len, total should be 6
-					NdisMoveMemory(pDest, pEid, 6);
-					pDest  += 6;
-					Length += 6;
-				}
-				else
-				{
-					NdisMoveMemory(pDest, pEid, pEid->Len + 2);
-					pDest  += (pEid->Len + 2);
-					Length += (pEid->Len + 2);
-				}
-				break;
-
-			default:
-				break;
-		}
-		// 12. Move to next element ID
-		pSrc += (2 + pEid->Len);
-		pEid = (PEID_STRUCT) pSrc;
-	}
-
-	// 13. Update the length in the header, not include EID and length
-	pReport->Length = Length - 4;
-
-	// 14. Update the frame report buffer data length
-	pAd->StaCfg.FrameReportLen += Length;
-	DBGPRINT(RT_DEBUG_TRACE, ("FR len = %d\n", pAd->StaCfg.FrameReportLen));
-}
-
-/*
-	========================================================================
-
-	Routine Description:
-
-	Arguments:
-		Index		Current BSSID in CCXBsstab entry index
-
-	Return Value:
-
-	Note:
-
-	========================================================================
-*/
-VOID	AironetCreateBeaconReportFromBssTable(
-	IN	PRTMP_ADAPTER		pAd)
-{
-	PMEASUREMENT_REPORT_ELEMENT	pReport;
-	PBEACON_REPORT				pBeaconReport;
-	UCHAR						Index, ReqIdx;
-	USHORT						Length;
-	PUCHAR						pDest;
-	PBSS_ENTRY					pBss;
-
-	// 0. setup base pointer
-	ReqIdx = pAd->StaCfg.CurrentRMReqIdx;
-
-	for (Index = 0; Index < pAd->StaCfg.CCXBssTab.BssNr; Index++)
-	{
-		// 1. Setup the buffer address for copying this BSSID into reporting frame
-		//    The offset should start after 802.11 header and report frame header.
-		pDest  = (PUCHAR) &pAd->StaCfg.FrameReportBuf[pAd->StaCfg.FrameReportLen];
-		pBss   = (PBSS_ENTRY) &pAd->StaCfg.CCXBssTab.BssEntry[Index];
-		Length = 0;
-
-		// 2. Fill Measurement report fields
-		pReport         = (PMEASUREMENT_REPORT_ELEMENT) pDest;
-		pReport->Eid    = IE_MEASUREMENT_REPORT;
-		pReport->Length = 0;
-		pReport->Token  = pAd->StaCfg.MeasurementRequest[ReqIdx].ReqElem.Token;
-		pReport->Mode   = pAd->StaCfg.MeasurementRequest[ReqIdx].ReqElem.Mode;
-		pReport->Type   = MSRN_TYPE_BEACON_REQ;
-		Length          = sizeof(MEASUREMENT_REPORT_ELEMENT);
-		pDest          += sizeof(MEASUREMENT_REPORT_ELEMENT);
-
-		// 3. Start the beacon report format
-		pBeaconReport = (PBEACON_REPORT) pDest;
-		pDest        += sizeof(BEACON_REPORT);
-		Length       += sizeof(BEACON_REPORT);
-
-		// 4. Copy Channel number
-		pBeaconReport->Channel        = pBss->Channel;
-		pBeaconReport->Spare          = 0;
-		pBeaconReport->Duration       = pAd->StaCfg.MeasurementRequest[ReqIdx].Measurement.Duration;
-		pBeaconReport->PhyType        = ((pBss->SupRateLen+pBss->ExtRateLen > 4) ? PHY_ERP : PHY_DSS);
-		pBeaconReport->RxPower        = pBss->Rssi - pAd->BbpRssiToDbmDelta;
-		pBeaconReport->BeaconInterval = pBss->BeaconPeriod;
-		pBeaconReport->CapabilityInfo = pBss->CapabilityInfo;
-		COPY_MAC_ADDR(pBeaconReport->BSSID, pBss->Bssid);
-		NdisMoveMemory(pBeaconReport->ParentTSF, pBss->PTSF, 4);
-		NdisMoveMemory(pBeaconReport->TargetTSF, pBss->TTSF, 8);
-
-		// 5. Create SSID
-		*pDest++ = 0x00;
-		*pDest++ = pBss->SsidLen;
-		NdisMoveMemory(pDest, pBss->Ssid, pBss->SsidLen);
-		pDest  += pBss->SsidLen;
-		Length += (2 + pBss->SsidLen);
-
-		// 6. Create SupportRates
-		*pDest++ = 0x01;
-		*pDest++ = pBss->SupRateLen;
-		NdisMoveMemory(pDest, pBss->SupRate, pBss->SupRateLen);
-		pDest  += pBss->SupRateLen;
-		Length += (2 + pBss->SupRateLen);
-
-		// 7. DS Parameter
-		*pDest++ = 0x03;
-		*pDest++ = 1;
-		*pDest++ = pBss->Channel;
-		Length  += 3;
-
-		// 8. IBSS parameter if presents
-		if (pBss->BssType == BSS_ADHOC)
-		{
-			*pDest++ = 0x06;
-			*pDest++ = 2;
-			*(PUSHORT) pDest = pBss->AtimWin;
-			pDest   += 2;
-			Length  += 4;
-		}
-
-		// 9. Update length field, not include EID and length
-		pReport->Length = Length - 4;
-
-		// 10. Update total frame size
-		pAd->StaCfg.FrameReportLen += Length;
-	}
-}
+#include "../../rt2870/sta/aironet.c"
diff --git a/drivers/staging/rt3070/sta/assoc.c b/drivers/staging/rt3070/sta/assoc.c
index afe9836..1987a2a 100644
--- a/drivers/staging/rt3070/sta/assoc.c
+++ b/drivers/staging/rt3070/sta/assoc.c
@@ -1,1733 +1 @@
-/*
- *************************************************************************
- * Ralink Tech Inc.
- * 5F., No.36, Taiyuan St., Jhubei City,
- * Hsinchu County 302,
- * Taiwan, R.O.C.
- *
- * (c) Copyright 2002-2007, Ralink Technology, Inc.
- *
- * This program is free software; you can redistribute it and/or modify  *
- * it under the terms of the GNU General Public License as published by  *
- * the Free Software Foundation; either version 2 of the License, or     *
- * (at your option) any later version.                                   *
- *                                                                       *
- * This program is distributed in the hope that it will be useful,       *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- * GNU General Public License for more details.                          *
- *                                                                       *
- * You should have received a copy of the GNU General Public License     *
- * along with this program; if not, write to the                         *
- * Free Software Foundation, Inc.,                                       *
- * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
- *                                                                       *
- *************************************************************************
-
-	Module Name:
-	assoc.c
-
-	Abstract:
-
-	Revision History:
-	Who			When			What
-	--------	----------		----------------------------------------------
-	John		2004-9-3		porting from RT2500
-*/
-#include "../rt_config.h"
-
-UCHAR	CipherWpaTemplate[] = {
-		0xdd, 					// WPA IE
-		0x16,					// Length
-		0x00, 0x50, 0xf2, 0x01,	// oui
-		0x01, 0x00,				// Version
-		0x00, 0x50, 0xf2, 0x02,	// Multicast
-		0x01, 0x00,				// Number of unicast
-		0x00, 0x50, 0xf2, 0x02,	// unicast
-		0x01, 0x00,				// number of authentication method
-		0x00, 0x50, 0xf2, 0x01	// authentication
-		};
-
-UCHAR	CipherWpa2Template[] = {
-		0x30,					// RSN IE
-		0x14,					// Length
-		0x01, 0x00,				// Version
-		0x00, 0x0f, 0xac, 0x02,	// group cipher, TKIP
-		0x01, 0x00,				// number of pairwise
-		0x00, 0x0f, 0xac, 0x02,	// unicast
-		0x01, 0x00,				// number of authentication method
-		0x00, 0x0f, 0xac, 0x02,	// authentication
-		0x00, 0x00,				// RSN capability
-		};
-
-UCHAR	Ccx2IeInfo[] = { 0x00, 0x40, 0x96, 0x03, 0x02};
-
-/*
-	==========================================================================
-	Description:
-		association state machine init, including state transition and timer init
-	Parameters:
-		S - pointer to the association state machine
-
-	IRQL = PASSIVE_LEVEL
-
-	==========================================================================
- */
-VOID AssocStateMachineInit(
-	IN	PRTMP_ADAPTER	pAd,
-	IN  STATE_MACHINE *S,
-	OUT STATE_MACHINE_FUNC Trans[])
-{
-	StateMachineInit(S, Trans, MAX_ASSOC_STATE, MAX_ASSOC_MSG, (STATE_MACHINE_FUNC)Drop, ASSOC_IDLE, ASSOC_MACHINE_BASE);
-
-	// first column
-	StateMachineSetAction(S, ASSOC_IDLE, MT2_MLME_ASSOC_REQ, (STATE_MACHINE_FUNC)MlmeAssocReqAction);
-	StateMachineSetAction(S, ASSOC_IDLE, MT2_MLME_REASSOC_REQ, (STATE_MACHINE_FUNC)MlmeReassocReqAction);
-	StateMachineSetAction(S, ASSOC_IDLE, MT2_MLME_DISASSOC_REQ, (STATE_MACHINE_FUNC)MlmeDisassocReqAction);
-	StateMachineSetAction(S, ASSOC_IDLE, MT2_PEER_DISASSOC_REQ, (STATE_MACHINE_FUNC)PeerDisassocAction);
-
-	// second column
-	StateMachineSetAction(S, ASSOC_WAIT_RSP, MT2_MLME_ASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenAssoc);
-	StateMachineSetAction(S, ASSOC_WAIT_RSP, MT2_MLME_REASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenReassoc);
-	StateMachineSetAction(S, ASSOC_WAIT_RSP, MT2_MLME_DISASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenDisassociate);
-	StateMachineSetAction(S, ASSOC_WAIT_RSP, MT2_PEER_DISASSOC_REQ, (STATE_MACHINE_FUNC)PeerDisassocAction);
-	StateMachineSetAction(S, ASSOC_WAIT_RSP, MT2_PEER_ASSOC_RSP, (STATE_MACHINE_FUNC)PeerAssocRspAction);
-	//
-	// Patch 3Com AP MOde:3CRWE454G72
-	// We send Assoc request frame to this AP, it always send Reassoc Rsp not Associate Rsp.
-	//
-	StateMachineSetAction(S, ASSOC_WAIT_RSP, MT2_PEER_REASSOC_RSP, (STATE_MACHINE_FUNC)PeerAssocRspAction);
-	StateMachineSetAction(S, ASSOC_WAIT_RSP, MT2_ASSOC_TIMEOUT, (STATE_MACHINE_FUNC)AssocTimeoutAction);
-
-	// third column
-	StateMachineSetAction(S, REASSOC_WAIT_RSP, MT2_MLME_ASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenAssoc);
-	StateMachineSetAction(S, REASSOC_WAIT_RSP, MT2_MLME_REASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenReassoc);
-	StateMachineSetAction(S, REASSOC_WAIT_RSP, MT2_MLME_DISASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenDisassociate);
-	StateMachineSetAction(S, REASSOC_WAIT_RSP, MT2_PEER_DISASSOC_REQ, (STATE_MACHINE_FUNC)PeerDisassocAction);
-	StateMachineSetAction(S, REASSOC_WAIT_RSP, MT2_PEER_REASSOC_RSP, (STATE_MACHINE_FUNC)PeerReassocRspAction);
-	//
-	// Patch, AP doesn't send Reassociate Rsp frame to Station.
-	//
-	StateMachineSetAction(S, REASSOC_WAIT_RSP, MT2_PEER_ASSOC_RSP, (STATE_MACHINE_FUNC)PeerReassocRspAction);
-	StateMachineSetAction(S, REASSOC_WAIT_RSP, MT2_REASSOC_TIMEOUT, (STATE_MACHINE_FUNC)ReassocTimeoutAction);
-
-	// fourth column
-	StateMachineSetAction(S, DISASSOC_WAIT_RSP, MT2_MLME_ASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenAssoc);
-	StateMachineSetAction(S, DISASSOC_WAIT_RSP, MT2_MLME_REASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenReassoc);
-	StateMachineSetAction(S, DISASSOC_WAIT_RSP, MT2_MLME_DISASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenDisassociate);
-	StateMachineSetAction(S, DISASSOC_WAIT_RSP, MT2_PEER_DISASSOC_REQ, (STATE_MACHINE_FUNC)PeerDisassocAction);
-	StateMachineSetAction(S, DISASSOC_WAIT_RSP, MT2_DISASSOC_TIMEOUT, (STATE_MACHINE_FUNC)DisassocTimeoutAction);
-
-	// initialize the timer
-	RTMPInitTimer(pAd, &pAd->MlmeAux.AssocTimer, GET_TIMER_FUNCTION(AssocTimeout), pAd, FALSE);
-	RTMPInitTimer(pAd, &pAd->MlmeAux.ReassocTimer, GET_TIMER_FUNCTION(ReassocTimeout), pAd, FALSE);
-	RTMPInitTimer(pAd, &pAd->MlmeAux.DisassocTimer, GET_TIMER_FUNCTION(DisassocTimeout), pAd, FALSE);
-}
-
-/*
-	==========================================================================
-	Description:
-		Association timeout procedure. After association timeout, this function
-		will be called and it will put a message into the MLME queue
-	Parameters:
-		Standard timer parameters
-
-	IRQL = DISPATCH_LEVEL
-
-	==========================================================================
- */
-VOID AssocTimeout(IN PVOID SystemSpecific1,
-				 IN PVOID FunctionContext,
-				 IN PVOID SystemSpecific2,
-				 IN PVOID SystemSpecific3)
-{
-	RTMP_ADAPTER *pAd = (RTMP_ADAPTER *)FunctionContext;
-
-	// Do nothing if the driver is starting halt state.
-	// This might happen when timer already been fired before cancel timer with mlmehalt
-	if (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_HALT_IN_PROGRESS | fRTMP_ADAPTER_NIC_NOT_EXIST))
-		return;
-
-	MlmeEnqueue(pAd, ASSOC_STATE_MACHINE, MT2_ASSOC_TIMEOUT, 0, NULL);
-	RT28XX_MLME_HANDLER(pAd);
-}
-
-/*
-	==========================================================================
-	Description:
-		Reassociation timeout procedure. After reassociation timeout, this
-		function will be called and put a message into the MLME queue
-	Parameters:
-		Standard timer parameters
-
-	IRQL = DISPATCH_LEVEL
-
-	==========================================================================
- */
-VOID ReassocTimeout(IN PVOID SystemSpecific1,
-					IN PVOID FunctionContext,
-					IN PVOID SystemSpecific2,
-					IN PVOID SystemSpecific3)
-{
-	RTMP_ADAPTER *pAd = (RTMP_ADAPTER *)FunctionContext;
-
-	// Do nothing if the driver is starting halt state.
-	// This might happen when timer already been fired before cancel timer with mlmehalt
-	if (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_HALT_IN_PROGRESS | fRTMP_ADAPTER_NIC_NOT_EXIST))
-		return;
-
-	MlmeEnqueue(pAd, ASSOC_STATE_MACHINE, MT2_REASSOC_TIMEOUT, 0, NULL);
-	RT28XX_MLME_HANDLER(pAd);
-}
-
-/*
-	==========================================================================
-	Description:
-		Disassociation timeout procedure. After disassociation timeout, this
-		function will be called and put a message into the MLME queue
-	Parameters:
-		Standard timer parameters
-
-	IRQL = DISPATCH_LEVEL
-
-	==========================================================================
- */
-VOID DisassocTimeout(IN PVOID SystemSpecific1,
-					IN PVOID FunctionContext,
-					IN PVOID SystemSpecific2,
-					IN PVOID SystemSpecific3)
-{
-	RTMP_ADAPTER *pAd = (RTMP_ADAPTER *)FunctionContext;
-
-	// Do nothing if the driver is starting halt state.
-	// This might happen when timer already been fired before cancel timer with mlmehalt
-	if (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_HALT_IN_PROGRESS | fRTMP_ADAPTER_NIC_NOT_EXIST))
-		return;
-
-	MlmeEnqueue(pAd, ASSOC_STATE_MACHINE, MT2_DISASSOC_TIMEOUT, 0, NULL);
-	RT28XX_MLME_HANDLER(pAd);
-}
-
-/*
-	==========================================================================
-	Description:
-		mlme assoc req handling procedure
-	Parameters:
-		Adapter - Adapter pointer
-		Elem - MLME Queue Element
-	Pre:
-		the station has been authenticated and the following information is stored in the config
-			-# SSID
-			-# supported rates and their length
-			-# listen interval (Adapter->StaCfg.default_listen_count)
-			-# Transmit power  (Adapter->StaCfg.tx_power)
-	Post  :
-		-# An association request frame is generated and sent to the air
-		-# Association timer starts
-		-# Association state -> ASSOC_WAIT_RSP
-
-	IRQL = DISPATCH_LEVEL
-
-	==========================================================================
- */
-VOID MlmeAssocReqAction(
-	IN PRTMP_ADAPTER pAd,
-	IN MLME_QUEUE_ELEM *Elem)
-{
-	UCHAR			ApAddr[6];
-	HEADER_802_11	AssocHdr;
-	UCHAR			Ccx2Len = 5;
-	UCHAR			WmeIe[9] = {IE_VENDOR_SPECIFIC, 0x07, 0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, 0x00};
-	USHORT			ListenIntv;
-	ULONG			Timeout;
-	USHORT			CapabilityInfo;
-	BOOLEAN			TimerCancelled;
-	PUCHAR			pOutBuffer = NULL;
-	NDIS_STATUS		NStatus;
-	ULONG			FrameLen = 0;
-	ULONG			tmp;
-	USHORT			VarIesOffset;
-	UCHAR			CkipFlag;
-	UCHAR			CkipNegotiationBuffer[CKIP_NEGOTIATION_LENGTH];
-	UCHAR			AironetCkipIe = IE_AIRONET_CKIP;
-	UCHAR			AironetCkipLen = CKIP_NEGOTIATION_LENGTH;
-	UCHAR			AironetIPAddressIE = IE_AIRONET_IPADDRESS;
-	UCHAR			AironetIPAddressLen = AIRONET_IPADDRESS_LENGTH;
-	UCHAR			AironetIPAddressBuffer[AIRONET_IPADDRESS_LENGTH] = {0x00, 0x40, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00};
-	USHORT			Status;
-
-	// Block all authentication request durning WPA block period
-	if (pAd->StaCfg.bBlockAssoc == TRUE)
-	{
-		DBGPRINT(RT_DEBUG_TRACE, ("ASSOC - Block Assoc request durning WPA block period!\n"));
-		pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-		Status = MLME_STATE_MACHINE_REJECT;
-		MlmeEnqueue(pAd, MLME_CNTL_STATE_MACHINE, MT2_ASSOC_CONF, 2, &Status);
-	}
-	// check sanity first
-	else if (MlmeAssocReqSanity(pAd, Elem->Msg, Elem->MsgLen, ApAddr, &CapabilityInfo, &Timeout, &ListenIntv))
-	{
-		RTMPCancelTimer(&pAd->MlmeAux.AssocTimer, &TimerCancelled);
-		COPY_MAC_ADDR(pAd->MlmeAux.Bssid, ApAddr);
-
-		// Get an unused nonpaged memory
-		NStatus = MlmeAllocateMemory(pAd, &pOutBuffer);
-		if (NStatus != NDIS_STATUS_SUCCESS)
-		{
-			DBGPRINT(RT_DEBUG_TRACE,("ASSOC - MlmeAssocReqAction() allocate memory failed \n"));
-			pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
-			Status = MLME_FAIL_NO_RESOURCE;
-			MlmeEnqueue(pAd, MLME_CNTL_STATE_MACHINE, MT2_ASSOC_CONF, 2, &Status);
-			return;
-		}
-
-		// Add by James 03/06/27
-		pAd->StaCfg.AssocInfo.Length = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION);
-		// Association don't need to report MAC address
-		pAd->StaCfg.AssocInfo.AvailableRequestFixedIEs =
-			NDIS_802_11_AI_REQFI_CAPABILITIES | NDIS_802_11_AI_REQFI_LISTENINTERVAL;
-		pAd->StaCfg.AssocInfo.RequestFixedIEs.Capabilities = CapabilityInfo;
-		pAd->StaCfg.AssocInfo.RequestFixedIEs.ListenInterval = ListenIntv;
-		// Only reassociate need this
-		//COPY_MAC_ADDR(pAd->StaCfg.AssocInfo.RequestFixedIEs.CurrentAPAddress, ApAddr);
-		pAd->StaCfg.AssocInfo.OffsetRequestIEs = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION);
-
-        NdisZeroMemory(pAd->StaCfg.ReqVarIEs, MAX_VIE_LEN);
-		// First add SSID
-		VarIesOffset = 0;
-		NdisMoveMemory(pAd->StaCfg.ReqVarIEs + VarIesOffset, &SsidIe, 1);
-		VarIesOffset += 1;
-		NdisMoveMemory(pAd->StaCfg.ReqVarIEs + VarIesOffset, &pAd->MlmeAux.SsidLen, 1);
-		VarIesOffset += 1;
-		NdisMoveMemory(pAd->StaCfg.ReqVarIEs + VarIesOffset, pAd->MlmeAux.Ssid, pAd->MlmeAux.SsidLen);
-		VarIesOffset += pAd->MlmeAux.SsidLen;
-
-		// Second add Supported rates
-		NdisMoveMemory(pAd->StaCfg.ReqVarIEs + VarIesOffset, &SupRateIe, 1);
-		VarIesOffset += 1;
-		NdisMoveMemory(pAd->StaCfg.ReqVarIEs + VarIesOffset, &pAd->MlmeAux.SupRateLen, 1);
-		VarIesOffset += 1;
-		NdisMoveMemory(pAd->StaCfg.ReqVarIEs + VarIesOffset, pAd->MlmeAux.SupRate, pAd->MlmeAux.SupRateLen);
-		VarIesOffset += pAd->MlmeAux.SupRateLen;
-		// End Add by James
-
-        if ((pAd->CommonCfg.Channel > 14) &&
-            (pAd->CommonCfg.bIEEE80211H == TRUE))
-            CapabilityInfo |= 0x0100;
-
-		DBGPRINT(RT_DEBUG_TRACE, ("ASSOC - Send ASSOC request...\n"));
-		MgtMacHeaderInit(pAd, &AssocHdr, SUBTYPE_ASSOC_REQ, 0, ApAddr, ApAddr);
-
-		// Build basic frame first
-		MakeOutgoingFrame(pOutBuffer,				&FrameLen,
-						  sizeof(HEADER_802_11),	&AssocHdr,
-						  2,						&CapabilityInfo,
-						  2,						&ListenIntv,
-						  1,						&SsidIe,
-						  1,						&pAd->MlmeAux.SsidLen,
-						  pAd->MlmeAux.SsidLen, 	pAd->MlmeAux.Ssid,
-						  1,						&SupRateIe,
-						  1,						&pAd->MlmeAux.SupRateLen,
-						  pAd->MlmeAux.SupRateLen,  pAd->MlmeAux.SupRate,
-						  END_OF_ARGS);
-
-		if (pAd->MlmeAux.ExtRateLen != 0)
-		{
-			MakeOutgoingFrame(pOutBuffer + FrameLen,    &tmp,
-							  1,                        &ExtRateIe,
-							  1,                        &pAd->MlmeAux.ExtRateLen,
-							  pAd->MlmeAux.ExtRateLen,  pAd->MlmeAux.ExtRate,
-							  END_OF_ARGS);
-			FrameLen += tmp;
-		}
-
-		// HT
-		if ((pAd->MlmeAux.HtCapabilityLen > 0) && (pAd->CommonCfg.PhyMode >= PHY_11ABGN_MIXED))
-		{
-			ULONG TmpLen;
-			UCHAR HtLen;
-			UCHAR BROADCOM[4] = {0x0, 0x90, 0x4c, 0x33};
-			if (pAd->StaActive.SupportedPhyInfo.bPreNHt == TRUE)
-			{
-				HtLen = SIZE_HT_CAP_IE + 4;
-				MakeOutgoingFrame(pOutBuffer + FrameLen,            &TmpLen,
-							  1,                                &WpaIe,
-							  1,                                &HtLen,
-							  4,                                &BROADCOM[0],
-							 pAd->MlmeAux.HtCapabilityLen,          &pAd->MlmeAux.HtCapability,
-							  END_OF_ARGS);
-			}
-			else
-			{
-				MakeOutgoingFrame(pOutBuffer + FrameLen,            &TmpLen,
-							  1,                                &HtCapIe,
-							  1,                                &pAd->MlmeAux.HtCapabilityLen,
-							 pAd->MlmeAux.HtCapabilityLen,          &pAd->MlmeAux.HtCapability,
-							  END_OF_ARGS);
-			}
-			FrameLen += TmpLen;
-		}
-
-		// add Ralink proprietary IE to inform AP this STA is going to use AGGREGATION or PIGGY-BACK+AGGREGATION
-		// Case I: (Aggregation + Piggy-Back)
-		// 1. user enable aggregation, AND
-		// 2. Mac support piggy-back
-		// 3. AP annouces it's PIGGY-BACK+AGGREGATION-capable in BEACON
-		// Case II: (Aggregation)
-		// 1. user enable aggregation, AND
-		// 2. AP annouces it's AGGREGATION-capable in BEACON
-		if (pAd->CommonCfg.bAggregationCapable)
-		{
-			if ((pAd->CommonCfg.bPiggyBackCapable) && ((pAd->MlmeAux.APRalinkIe & 0x00000003) == 3))
-			{
-				ULONG TmpLen;
-				UCHAR RalinkIe[9] = {IE_VENDOR_SPECIFIC, 7, 0x00, 0x0c, 0x43, 0x03, 0x00, 0x00, 0x00};
-				MakeOutgoingFrame(pOutBuffer+FrameLen,           &TmpLen,
-								  9,                             RalinkIe,
-								  END_OF_ARGS);
-				FrameLen += TmpLen;
-			}
-			else if (pAd->MlmeAux.APRalinkIe & 0x00000001)
-			{
-				ULONG TmpLen;
-				UCHAR RalinkIe[9] = {IE_VENDOR_SPECIFIC, 7, 0x00, 0x0c, 0x43, 0x01, 0x00, 0x00, 0x00};
-				MakeOutgoingFrame(pOutBuffer+FrameLen,           &TmpLen,
-								  9,                             RalinkIe,
-								  END_OF_ARGS);
-				FrameLen += TmpLen;
-			}
-		}
-		else
-		{
-			ULONG TmpLen;
-			UCHAR RalinkIe[9] = {IE_VENDOR_SPECIFIC, 7, 0x00, 0x0c, 0x43, 0x06, 0x00, 0x00, 0x00};
-			MakeOutgoingFrame(pOutBuffer+FrameLen,		 &TmpLen,
-							  9,						 RalinkIe,
-							  END_OF_ARGS);
-			FrameLen += TmpLen;
-		}
-
-		if (pAd->MlmeAux.APEdcaParm.bValid)
-		{
-			if (pAd->CommonCfg.bAPSDCapable && pAd->MlmeAux.APEdcaParm.bAPSDCapable)
-			{
-				QBSS_STA_INFO_PARM QosInfo;
-
-				NdisZeroMemory(&QosInfo, si
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 001/342] Staging: add mailing list address for stag ..., Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 1/4] Staging: w35und: unregister device from the ie ..., Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 002/342] Staging: comedi: Remove ni_board typedef, Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 2/4] Staging: rt2870: new device id, Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 003/342] Staging: comedi: Remove ni_private typedef, Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 3/4] Staging: rtl8187se: Fix compilation warnings a ..., Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 4/4] Staging: comedi: David doesn't want to get com ..., Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 004/342] Staging: comedi: Remove local_info_t typed ..., Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 005/342] Staging: comedi: Remove dio24_board_struct ..., Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 006/342] Staging: comedi: Remove local_info_t typed ..., Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 007/342] Staging: comedi: Remove BYTE and *PBYTE ty ..., Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 008/342] Staging: comedi: Remove SHORT and *PSHORT ..., Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 009/342] Staging: comedi: Remove USHORT and *PUSHOR ..., Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 010/342] Staging: comedi: Remove WORD and *PWORD ty ..., Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 011/342] Staging: comedi: Remove INT and *PINT type ..., Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 012/342] Staging: comedi: Remove UINT and *PUINT ty ..., Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 013/342] Staging: comedi: Remove LONG and *PLONG ty ..., Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 014/342] Staging: comedi: Remove ULONG and *PULONG ..., Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 015/342] Staging: comedi: Remove DWORD and *PDWORD ..., Greg Kroah-Hartman, (Fri Jun 19, 11:03 am)
[PATCH 016/342] Staging: comedi: Remove ULONG_PTR typedef ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 017/342] Staging: comedi: Remove PCRANGE typedef in ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 018/342] Staging: comedi: Remove boardtype typedef ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 019/342] Staging: comedi: Remove str_ModuleInfo typ ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 020/342] Staging: comedi: Remove addi_private typed ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 021/342] Staging: comedi: Remove str_MainHeader typ ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 022/342] Staging: comedi: Remove str_DigitalInputHe ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 023/342] Staging: comedi: Remove str_DigitalOutputH ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 024/342] Staging: comedi: Remove str_TimerDetails t ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 025/342] Staging: comedi: Remove str_TimerMainHeade ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 026/342] Staging: comedi: Remove str_AnalogReadInfo ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 027/342] Staging: comedi: Remove str_Module typedef ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 028/342] Staging: comedi: Remove str_BoardInfos typ ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 029/342] Staging: comedi: Remove str_ADDIDATA_RTDSt ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 030/342] Staging: comedi: Remove labpc_board_struct ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 031/342] Staging: comedi: Remove labpc_private typedef, Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 032/342] Staging: comedi: Remove str_AnalogInputHea ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 033/342] Staging: comedi: remove C99 comments in 8253.h, Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 034/342] Staging: comedi: remove C99 comments in ac ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 035/342] Staging: comedi: remove C99 comments in AP ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 036/342] Staging: comedi: remove C99 comments in da ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 037/342] Staging: comedi: remove C99 comments in pc ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 038/342] Staging: comedi: remove C99 comments in hw ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 039/342] Staging: comedi: remove C99 comments in AP ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 040/342] Staging: comedi: remove C99 comments in hw ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 041/342] Staging: comedi: remove C99 comments in hw ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 042/342] Staging: comedi: remove C99 comments in hw ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 043/342] Staging: comedi: remove C99 comments in ad ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 044/342] Staging: comedi: remove C99 comments in ad ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 045/342] Staging: comedi: remove C99 comments in ad ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 046/342] Staging: comedi: remove C99 comments in c6 ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 047/342] Staging: comedi: remove C99 comments in cb ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 048/342] Staging: comedi: remove C99 comments in cb ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 049/342] Staging: comedi: remove C99 comments in cb ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 050/342] Staging: comedi: remove C99 comments in gs ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 051/342] Staging: comedi: remove C99 comments in mp ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 052/342] Staging: comedi: remove C99 comments in ni ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 053/342] Staging: comedi: remove C99 comments in ni ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 054/342] Staging: comedi: remove C99 comments in pc ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 055/342] Staging: comedi: remove C99 comments in pc ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 056/342] Staging: comedi: remove C99 comments in s526.c, Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 057/342] staging: comedi, remove interrupt.h, Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 058/342] Staging: comedi: Remove C99 comments, Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 059/342] Staging: comedi: Finish removing ni_privat ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 060/342] Staging: comedi: 'pcmcia_parse_tuple()' no ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 061/342] Staging: comedi: fix build errors in pcmci ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 062/342] Staging: comedi: set PCI and PCMCIA defines, Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 063/342] Staging: comedi: Fixed Kconfig option for ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 064/342] Staging: comedi: pcl818: Fix option handli ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 065/342] Staging: comedi: pcl818: Tidy up AI comman ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 066/342] Staging: Comedi: ni_600x: Added support fo ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 067/342] Staging: comedi: Work around malformed RTA ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 068/342] Staging: comedi: Undo stupid commit made 3 ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 069/342] Staging: comedi: amplc_pc236: Corrected do ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 070/342] Staging: comedi: Added sysfs attribute fil ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 071/342] Staging: comedi: jr3_pci: Use struct devic ..., Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 072/342] Staging: comedi: replace __FUNCTION__ usages, Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 073/342] Staging: comedi: remove dupilcated #include, Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 075/342] Staging: comedi: Add spaces after commas, Greg Kroah-Hartman, (Fri Jun 19, 11:04 am)
[PATCH 076/342] Staging Comedi: fix spacing around parens, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 077/342] Staging: Comedi: change space indentation ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 078/342] Staging: comedi: add vmk80xx USB driver, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 079/342] Staging: comedi: vmk80xx.c: get the driver ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 080/342] Staging: comedi: Makefile changes, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 081/342] Staging: comedi: non working tests on unsi ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 082/342] Staging: comedi: remove assignment in cond ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 083/342] Staging: comedi: Remove parens around retu ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 084/342] Staging: comedi: fix the way structs are i ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 085/342] Staging: comedi: more remove C99 comments, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 086/342] Staging: comedi: remove space after ampersand, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 088/342] Staging: comedi: more fix the way structs ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 089/342] Staging: comedi: make use of ARRAY_SIZE macro, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 090/342] Staging: comedi: comment out useless if, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 091/342] Staging: comedi: move while to same line a ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 092/342] Staging: comedi: convert usbdux* to use fi ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 093/342] Staging: comedi: remove comedi-specific wr ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 094/342] Staging: comedi: remove RT code, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 095/342] Staging: comedi: remove some RT code that ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 096/342] Staging: comedi: replace for loop with msl ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 097/342] Staging: comedi: simply read and write fun ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 098/342] Staging: Comedi: vmk80xx: Add k8061 support, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 099/342] staging: comedi: fix pcmcia build breakage, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 100/342] Staging: comedi: comedi_test.c should incl ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 101/342] Staging: comedi: data.c should include delay.h, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 102/342] staging: comedi: fix missing parentheses, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 103/342] staging: comedi: Remove MIN macro, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 104/342] staging: comedi: Move pcm do_cmdtest funct ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 105/342] Staging: comedi: usbdux: buffer overflow e ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 106/342] Staging: comedi: cb_pcidas.c: Fix build wa ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 107/342] Staging: comedi: uses udelay, needs delay.h, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 108/342] staging: agnx, probe cleanup, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 109/342] staging: agnx, remove memlens from probe, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 110/342] staging: agnx, fix fail paths in probe, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 111/342] staging: agnx, fix bssid compiler warnings, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 112/342] Staging: agnx: replace print_mac with %pM, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 113/342] Staging: agnx: fix build warnings, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 114/342] staging: meilhaus, switch to misc device, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 115/342] staging: meilhaus, annotate cpi functions, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 116/342] staging: meilhaus, move tables to .c, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 117/342] Staging: meilhaus: Remove long-deprecated ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 118/342] Staging: meilhaus: fix build warnings, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 119/342] Staging: sxg: replace __FUNCTION__ usages, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 120/342] Staging: sxg: Add missing __devexit_p(), Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 121/342] Staging: rt3070: replace __FUNCTION__ usages, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 122/342] Staging: rt2860: Don't call sprintf() with ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 123/342] Staging: rt2870: Don't call sprintf() with ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 124/342] Staging: rtl8187se: Use to_delayed_work, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 125/342] Staging: rtl8187se: convert to net_device_ops, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 126/342] Staging: rtl8187se: wmm_param[1].ac_aci_ac ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 127/342] Staging: rt3070: remove dupilcated #include, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 128/342] Staging: remove unused #include &lt;linux/ver ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 129/342] Staging: stlc45xx: replace print_mac with %pM, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 130/342] Staging: fix operator precedence errors, Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 131/342] Staging: remove driver_data direct access ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 132/342] Staging: otus: 80211core/ccmd.c: Fix Codin ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 133/342] Staging: otus: beyond ARRAY_SIZE of wd-&gt;ap ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 134/342] Staging winbond: boolean negation and bitw ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 135/342] Staging: w35und: remove unused code from w ..., Greg Kroah-Hartman, (Fri Jun 19, 11:05 am)
[PATCH 136/342] Staging: w35und: replace switch error hand ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 137/342] Staging: w35und: move hal_init_hardware() ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 138/342] Staging: w35und: simplify error handling i ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 139/342] Staging: w35und: simplify hal_init_hardwar ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 140/342] Staging: w35und: more simplify hal_init_ha ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 141/342] Staging: w35und: simplify hal_init_hardwar ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 142/342] Staging: w35und: clean up comments in wbusb.c, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 143/342] Staging: w35und: inline hal_set_phy_type() ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 144/342] Staging: w35und: reformat wbusb.c, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 145/342] Staging: w35und: remove MODULE_AUTHOR, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 146/342] Staging: w35und: make led lookup tables static, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 147/342] Staging: w35und: reformat wbhal.c, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 148/342] Staging: w35und: merge wbhal.c to wbusb.c, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 149/342] Staging: w35und: inline hal_set_rf_power() ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 150/342] Staging: w35und: merge rest of wbhal.c to ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 151/342] Staging: winbond: mac80211 - unify config_ ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 152/342] Staging: wlan-ng: Move firmware loading in ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 153/342] Staging: wlan-ng: Change KERN_DEBUG or pr_ ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 154/342] Staging: wlan-ng: p80211wext.c: problem wi ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 155/342] Staging: wlan-ng: Lindent cleanups, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 156/342] Staging: wlan-ng: Update README file. Remo ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 157/342] Staging: pohmelfs: move open brace to same ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 158/342] Staging: pohmelfs: Remove C99 comments, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 159/342] Staging: pohmelfs: Remove braces around si ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 160/342] Staging: pohmelfs: Storage class should be ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 161/342] Staging: rt2870: remove unused files, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 162/342] Staging: rt2870: remove kernel version com ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 163/342] Staging: rt3070: remove kernel version com ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 164/342] Staging: rt2860: remove IWE_STREAM_ADD_*() ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 165/342] Staging: rt2870: remove IWE_STREAM_ADD_*() ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 166/342] Staging: rt2860: remove dead WIN_NDIS code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 167/342] Staging: rt2860: remove dead UNDER_CE code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 168/342] Staging: rt2870: remove dead UNDER_CE code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 169/342] Staging: rt3070: remove dead UNDER_CE code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 170/342] Staging: rt2860: remove dead WSC_AP_SUPPOR ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 171/342] Staging: rt2870: remove dead WSC_AP_SUPPOR ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 172/342] Staging: rt3070: remove dead *WSC_INCLUDED ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 173/342] Staging: rt2860: remove dead WDS_SUPPORT code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 174/342] Staging: rt2870: remove dead WDS_SUPPORT code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 175/342] Staging: rt3070: remove dead WDS_SUPPORT code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 176/342] Staging: rt3070: remove dead MLME_EX code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 177/342] Staging: rt2860: remove dead APCLI_SUPPORT ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 178/342] Staging: rt2870: remove dead APCLI_SUPPORT ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 179/342] Staging: rt2860: remove dead CONFIG_APSTA_ ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 180/342] Staging: rt2870: remove dead CONFIG_APSTA_ ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 181/342] Staging: rt3070: remove dead CONFIG_APSTA_ ..., Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 182/342] Staging: rt2860: remove dead UCOS code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 183/342] Staging: rt2870: remove dead UCOS code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 184/342] Staging: rt3070: remove dead UCOS code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 185/342] Staging: rt2860: remove dead NINTENDO_AP code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 186/342] Staging: rt2870: remove dead NINTENDO_AP code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 187/342] Staging: rt3070: remove dead NINTENDO_AP code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 188/342] Staging: rt2860: remove dead BIN_IN_FILE code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 189/342] Staging: rt2870: remove dead BIN_IN_FILE code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 190/342] Staging: rt3070: remove dead BIN_IN_FILE code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 191/342] Staging: rt2860: remove dead RALINK_ATE code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 192/342] Staging: rt2870: remove dead RALINK_ATE code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 193/342] Staging: rt3070: remove dead RALINK_ATE code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 194/342] Staging: rt2860: remove dead BLOCK_NET_IF code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 195/342] Staging: rt2870: remove dead BLOCK_NET_IF code, Greg Kroah-Hartman, (Fri Jun 19, 11:06 am)
[PATCH 196/342] Staging: rt3070: remove dead BLOCK_NET_IF code, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 197/342] Staging: rt2860: remove dead DFS_SUPPORT code, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 198/342] Staging: rt2870: remove dead DFS_SUPPORT code, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 199/342] Staging: rt3070: remove dead DFS_SUPPORT code, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 200/342] Staging: rt2860: remove dead CARRIER_DETEC ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 201/342] Staging: rt2870: remove dead CARRIER_DETEC ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 202/342] Staging: rt3070: remove dead CARRIER_DETEC ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 203/342] Staging: rt2860: remove dead MULTIPLE_CARD ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 204/342] Staging: rt2870: remove dead MULTIPLE_CARD ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 205/342] Staging: rt3070: remove dead MULTIPLE_CARD ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 206/342] Staging: rt2860: remove dead QOS_DLS_SUPPO ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 207/342] Staging: rt2870: remove dead QOS_DLS_SUPPO ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 208/342] Staging: rt3070: remove dead QOS_DLS_SUPPO ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 209/342] Staging: rt2860: remove dead EXT_BUILD_CHA ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 210/342] Staging: rt2870: remove dead EXT_BUILD_CHA ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 211/342] Staging: rt3070: remove dead EXT_BUILD_CHA ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 212/342] Staging: rt2860: remove dead SNMP_SUPPORT code, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 213/342] Staging: rt2870: remove dead SNMP_SUPPORT code, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 214/342] Staging: rt3070: remove dead SNMP_SUPPORT code, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 215/342] Staging: rt2860: remove dead SINGLE_SKU code, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 216/342] Staging: rt2870: remove dead SINGLE_SKU code, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 217/342] Staging: rt3070: remove dead SINGLE_SKU code, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 218/342] Staging: rt2860: remove dead LEAP_SUPPORT code, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 219/342] Staging: rt2870: remove dead LEAP_SUPPORT code, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 220/342] Staging: rt3070: remove dead LEAP_SUPPORT code, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 221/342] Staging: rt2860: remove dead DOT11N_DRAFT3 ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 222/342] Staging: rt2870: remove dead DOT11N_DRAFT3 ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 223/342] Staging: rt3070: remove dead DOT11N_DRAFT3 ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 224/342] Staging: rt2860: remove dead INF_AMAZON_SE ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[GIT PATCH] STAGING patches for 2.6.30-git tree, Greg KH, (Fri Jun 19, 11:07 am)
[PATCH 225/342] Staging: rt2870: remove dead INF_AMAZON_SE ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 226/342] Staging: rt3070: remove dead INF_AMAZON_SE ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 227/342] Staging: rt2860: remove dead RT_BIG_ENDIAN ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 228/342] Staging: rt2870: remove dead RT_BIG_ENDIAN ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 229/342] Staging: rt3070: remove dead RT_BIG_ENDIAN ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 230/342] Staging: rt2860: remove CONFIG_STA_SUPPORT ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 231/342] Staging: rt2870: remove CONFIG_STA_SUPPORT ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 232/342] Staging: rt3070: remove CONFIG_STA_SUPPORT ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 233/342] Staging: rt2860: remove NATIVE_WPA_SUPPLIC ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 234/342] Staging: rt2870: remove NATIVE_WPA_SUPPLIC ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 235/342] Staging: rt3070: remove NATIVE_WPA_SUPPLIC ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 236/342] Staging: rt2860: remove WPA_SUPPLICANT_SUP ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 237/342] Staging: rt2870: remove WPA_SUPPLICANT_SUP ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 238/342] Staging: rt3070: remove WPA_SUPPLICANT_SUP ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 239/342] Staging: rt2860: remove DOT11_N_SUPPORT ifdefs, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 240/342] Staging: rt2870: remove DOT11_N_SUPPORT ifdefs, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 241/342] Staging: rt3070: remove DOT11_N_SUPPORT ifdefs, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 242/342] Staging: rt2860: remove dead CONFIG_AP_SUP ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 243/342] Staging: rt2870: remove dead CONFIG_AP_SUP ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 244/342] Staging: rt3070: remove dead CONFIG_AP_SUP ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 245/342] Staging: rt2860: use empty ASSERT() macro, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 246/342] Staging: rt2870: use empty ASSERT() macro, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 247/342] Staging: rt3070: use empty ASSERT() macro, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 248/342] Staging: rt2860: remove dead code, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 249/342] Staging: rt2870: remove dead code, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 250/342] Staging: rt3070: remove dead code, Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 251/342] Staging: rt2870: prepare for rt{28, 30}70/ ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 252/342] Staging: rt{28,30}70: merge rt{28,30}70/*.[ch], Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 253/342] Staging: rt2870: prepare for rt{28, 30}70/ ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 254/342] Staging: rt{28, 30}70: merge rt{28, 30}70/ ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 255/342] Staging: rt2870: prepare for rt{28, 30}70/ ..., Greg Kroah-Hartman, (Fri Jun 19, 11:07 am)
[PATCH 256/342] Staging: rt{28,30}70: merge rt{28,30}70/st ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 257/342] Staging: rt2860: prepare for rt28[67]0/*.[ ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 258/342] Staging: rt28[67]0: merge rt28[67]0/*.[ch], Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 259/342] Staging: rt2860: prepare for rt28[67]0/com ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 260/342] Staging: rt28[67]0: merge rt28[67]0/common ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 261/342] Staging: rt2860: prepare for rt28[67]0/sta ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 262/342] Staging: rt28[67]0: merge rt28[67]0/sta/*.[ch], Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 263/342] Staging: rt2860: fix for driver RT2860 to ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 264/342] staging: rtlxxxx: off by one in AsicSendCo ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 265/342] Staging: rt2870: fix build warnings, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 266/342] Staging: Add pristine upstream vt6655 driv ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 267/342] Staging: vt6655 Add includes to drivers/st ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 268/342] Staging: vt6655: Drop obsolete fsuid/fsgid ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 269/342] Staging: vt6655: Build vt6655.ko, not viaw ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 270/342] Staging: vt6655: Replace net_device-&gt;priv ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 271/342] Staging: vt6655: Remove LINUX_VERSION_CODE ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 272/342] Staging: vt6655: use net_device_ops for ma ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 273/342] Staging: vt6655: Integrate drivers/staging ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 274/342] Staging: vt6655: uses pci functions, shoul ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 275/342] Staging: android: lowmemorykiller: Only it ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 276/342] Staging: android: lowmemorykiller: Don't c ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 277/342] Staging: android: lowmemorykiller: cleanup ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 278/342] Staging: android: lowmemorykiller: fix pos ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 279/342] Staging: android: timed_gpio: Separate tim ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 280/342] Staging: android: lowmemorykiller: fix up ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 281/342] Staging: android: logger: fix up remaining ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 282/342] Staging: android: ram_console: fix up rema ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 283/342] Staging: android: binder: fix up some chec ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 284/342] Staging: android: fix Kconfig issues, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 285/342] Staging: epl: do not use CLONE_SIGHAND wit ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 286/342] Staging: add cpc-usb driver to the staging ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 287/342] Staging: cpc-usb: fix some build problems ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 288/342] Staging: cpc-usb: add driver to the build, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 289/342] Staging: cpc-usb: fix up checkpatch errors ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 290/342] Staging: cpc-usb: fix checkpatch warnings ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 291/342] Staging: cpc-usb: add TODO file, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 292/342] Staging: cpc-usb: Adjust NULL test, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 293/342] Staging: cpc-usb: depends on PROC_FS, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 294/342] Staging: cpc-usb: fix printk format warnings, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 295/342] Staging: cpc-usb: fix build warnings, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 296/342] Staging: add rtl8192SU wireless usb driver, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 297/342] Staging: rtl8192su: fix build warnings, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 298/342] Staging: rtl8192su: Correct use of ! and &amp;, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 299/342] staging: wis-sony-tuner.c: fix &amp;&amp;/|| error, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 300/342] staging: b3dfg: clean up MODULE_PARM_DESC ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 301/342] Staging: oslec bug fix, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 302/342] staging: p9auth: prevent some oopses and m ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 303/342] Staging: rspiusb: make driver compile, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 304/342] Staging: rspiusb: clean rspiusb code, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 305/342] Staging: rspiusb.c: break the huge piusb_i ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 306/342] Staging: rspiusb: duplicate code in pixis_io, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 307/342] Staging: rspiusb: Fix a bunch of warnings., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 308/342] Staging: rspiusb: copy_to/from_user relate ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 309/342] Staging: heci: fix userspace pointer mess, Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 310/342] Staging: heci: fix wrong order of device_l ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 311/342] Staging: heci: fix spinlock order mess of ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 312/342] Staging: heci: fix softirq safe to unsafe ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 313/342] Staging: heci: fix typos and add wait afte ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 314/342] Staging: heci: fix setting h_is bit in h_c ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 315/342] Staging: heci: do not print error when hec ..., Greg Kroah-Hartman, (Fri Jun 19, 11:08 am)
[PATCH 316/342] Staging: heci: fix the problem that file_e ..., Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 317/342] Staging: altpciechdma: Add missing __devex ..., Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 318/342] Staging: altpciechdma: fix build warnings, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 319/342] Staging: slicoss: Add missing __devexit_p(), Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 320/342] Staging: slicoss: fix build warnings, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 321/342] Staging: asus_oled: fix build warnings, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 322/342] Staging: Add serqt_usb2, a rewrite of serq ..., Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 323/342] Staging: serqt_usb2 add the driver to the ..., Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 324/342] Staging: remove obsolete serqt_usb driver, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 325/342] Staging: add pata_rdc driver, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 326/342] Staging: pata_rdc: add driver to the build ..., Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 327/342] Staging: pata_rdc: convert code to work in ..., Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 328/342] Staging: pata_rdc: coding style fixes, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 329/342] Staging: pata_rdc: remove function prototypes, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 330/342] Staging: pata_rdc: use PCI_DEVICE, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 331/342] Staging: pata_rdc: fix build warnings, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 332/342] Staging: pata_rdc: remove broken flag, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 333/342] Staging: pata_rdc: remove dbgprintf macro, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 334/342] Staging: pata_rdc: remove DRIVER macros, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 335/342] Staging: pata_rdc: remove pointless comments, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 336/342] Staging: add udlfb driver, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 337/342] Staging: udlfb: add udlfb driver to build, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 338/342] Staging: udlfb: clean up checkpatch warnin ..., Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 339/342] Staging: udlfb: clean up checkpatch warnin ..., Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 340/342] Staging: udlfb: fix some sparse warnings., Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 341/342] Staging: udlfb: update to version 0.2.3, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
[PATCH 342/342] Staging: comedi: fix build errors, Greg Kroah-Hartman, (Fri Jun 19, 11:09 am)
Re: [PATCH 155/342] Staging: wlan-ng: Lindent cleanups, Alexey Zaytsev, (Sat Jun 20, 2:39 pm)
Re: [PATCH 155/342] Staging: wlan-ng: Lindent cleanups, Pavel Roskin, (Sun Jun 21, 5:52 pm)
Re: [PATCH 155/342] Staging: wlan-ng: Lindent cleanups, Mithlesh Thukral, (Mon Jun 22, 12:50 am)
Re: [PATCH 155/342] Staging: wlan-ng: Lindent cleanups, Bernd Petrovitsch, (Mon Jun 22, 2:36 am)
Re: [PATCH 155/342] Staging: wlan-ng: Lindent cleanups, J. R. Mauro, (Mon Jun 22, 5:01 am)
Re: [PATCH 155/342] Staging: wlan-ng: Lindent cleanups, Bernd Petrovitsch, (Tue Jun 23, 2:01 am)
Re: [PATCH 155/342] Staging: wlan-ng: Lindent cleanups, Stefan Richter, (Tue Jun 23, 4:41 am)
Re: [PATCH 155/342] Staging: wlan-ng: Lindent cleanups, Mithlesh Thukral, (Tue Jun 23, 10:57 pm)
Re: [PATCH 155/342] Staging: wlan-ng: Lindent cleanups, Stefan Richter, (Tue Jun 23, 11:29 pm)
Re: [PATCH 155/342] Staging: wlan-ng: Lindent cleanups, J. R. Mauro, (Wed Jun 24, 5:01 am)
Re: [PATCH 155/342] Staging: wlan-ng: Lindent cleanups, Stefan Richter, (Wed Jun 24, 7:10 am)
Re: [PATCH 155/342] Staging: wlan-ng: Lindent cleanups, Stefan Richter, (Wed Jun 24, 7:33 am)
Re: [PATCH 296/342] Staging: add rtl8192SU wireless usb driver, Mauro Carvalho Chehab, (Thu Oct 29, 11:18 pm)