⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 power.c

📁 marvell wifi driver CF-8385PN-NDIS-ARM4-WINCE50-5.24.17.p5-27.p11.src.zip
💻 C
字号:
/******************* ?Marvell Semiconductor, Inc., 2003 ********************
 *
 *  Purpose:
 *
 *      This module provides the implementation of power management routines
 *
 *	$Author: schiu $
 *
 *	$Date: 2004/08/23 $
 *
 *	$Revision: #2 $
 *
 *****************************************************************************/

#include "precomp.h"

VOID
PSWakeup(
	IN PMRVDRV_ADAPTER Adapter
	)
{
	CmdCtrlNode *NewCmd  = NULL;
	
//	RETAILMSG(1, (TEXT("PSWakeup: exit powersave mode!\n")));
	DBGPRINT(DBG_NEWPS ,("PSWakeup: exit powersave mode!\n"));

    	// Add a PS Exit command in Q1
	NewCmd = GetFreeCmdCtrlNode(Adapter);
	if (NewCmd)
		MakePsCmd (Adapter, NewCmd, HostCmd_SubCmd_Exit_PS);
	
//   	RETAILMSG(1, (TEXT("PSWakeup: exit powersave mode ___ 1!\n")));
	InsertCmdToQueue(Adapter, NewCmd);
//	RETAILMSG(1, (TEXT("PSWakeup: exit powersave mode___2!\n")));
	GetCmdFromQueueToExecute(Adapter);
//	RETAILMSG(1, (TEXT("PSWakeup: exit powersave mode___3!\n")));	
	return;
}


VOID
PSSleep(
	IN PMRVDRV_ADAPTER Adapter
	)
{
	CmdCtrlNode *NewCmd  = NULL;

//	RETAILMSG(1, (TEXT("PSSleep: enter powersave mode!\n")));
	DBGPRINT(DBG_CMDRESP | DBG_NEWPS ,("PSSleep: enter powersave mode!\n"));

    	// Add a PS Exit command in Q1
	NewCmd = GetFreeCmdCtrlNode(Adapter);
	if (NewCmd)
		MakePsCmd (Adapter, NewCmd, HostCmd_SubCmd_Enter_PS);
   
	InsertCmdToQueue(Adapter, NewCmd);

	GetCmdFromQueueToExecute (Adapter);	

	return;
}


// should change this to inline later
// acknowledge the sleep from the FW
VOID
PSConfirmSleep(
	IN PMRVDRV_ADAPTER Adapter
	)
{
	CmdCtrlNode *NewCmd  = NULL;
	
	DBGPRINT(DBG_CMDRESP | DBG_NEWPS ,("PSConfirmSleep: confirm sleep\n"));
    
       // Add a PS Exit command in Q1
	NewCmd = GetFreeCmdCtrlNode(Adapter);
	if (NewCmd)
		MakePsCmd (Adapter, NewCmd, HostCmd_SubCmd_Sleep_Confirmed);
   
	InsertCmdToQueue(Adapter, NewCmd);

	GetCmdFromQueueToExecute (Adapter);	
	
	return;
}


VOID
MakePsCmd(IN PMRVDRV_ADAPTER Adapter,
	      IN CmdCtrlNode *pTempCmd,
	      IN USHORT SubCmd)
{			   
	PHostCmd_DS_802_11_PS_MODE pCmdPtr;

	if (!pTempCmd)
		return;
	
	pCmdPtr = (PHostCmd_DS_802_11_PS_MODE)(pTempCmd->BufVirtualAddr);
	
	pCmdPtr->Command 			= HostCmd_CMD_802_11_PS_MODE;
	pCmdPtr->Size 				= (USHORT)(sizeof(HostCmd_DS_802_11_PS_MODE));
	Adapter->SeqNum 			+= 1;
	pCmdPtr->SeqNum  			= Adapter->SeqNum;
	pCmdPtr->Result  				= HostCmd_OPTION_USE_INT;
	
	pCmdPtr->SubCommand 		= SubCmd;
	

    pCmdPtr->PSNumDtims = 0x1; 

    pCmdPtr->LocalListenInterval = Adapter->LocalListenInterval;
   
    pCmdPtr->Reserved1  = 0;
    pCmdPtr->Reserved2  = 0;
   
	pTempCmd->ExpectedRetCode	= GetExpectedRetCode(HostCmd_CMD_802_11_PS_MODE);
	pTempCmd->Next			= NULL;
	pTempCmd->PendingOID		= 0;
	pTempCmd->PendingInfo		= HostCmd_PENDING_ON_NONE;
	pTempCmd->INTOption		= HostCmd_OPTION_USE_INT;
	pTempCmd->BatchQNum		= 0;
	pTempCmd->IsLastBatchCmd	= FALSE;
	pTempCmd->BytesWritten		= NULL;
	pTempCmd->BytesRead		= NULL;
	pTempCmd->BytesNeeded		= NULL;
	pTempCmd->InformationBuffer  = NULL;

	return;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -