diff options
Diffstat (limited to 'drivers/staging/vt6656/power.c')
| -rw-r--r-- | drivers/staging/vt6656/power.c | 68 | 
1 files changed, 38 insertions, 30 deletions
diff --git a/drivers/staging/vt6656/power.c b/drivers/staging/vt6656/power.c index edc8975b2e2..ddbd04695c9 100644 --- a/drivers/staging/vt6656/power.c +++ b/drivers/staging/vt6656/power.c @@ -44,8 +44,7 @@  #include "wcmd.h"  #include "rxtx.h"  #include "card.h" -#include "control.h" -#include "rndis.h" +#include "usbpipe.h"  static int msglevel = MSG_LEVEL_INFO; @@ -67,22 +66,23 @@ void PSvEnablePowerSaving(struct vnt_private *pDevice, u16 wListenInterval)  	/* set period of power up before TBTT */  	MACvWriteWord(pDevice, MAC_REG_PWBT, C_PWBT); -	if (pDevice->eOPMode != OP_MODE_ADHOC) { +	if (pDevice->op_mode != NL80211_IFTYPE_ADHOC) {  		/* set AID */  		MACvWriteWord(pDevice, MAC_REG_AIDATIM, wAID); -	} else { -		/* set ATIM Window */ -		/* MACvWriteATIMW(pDevice->PortOffset, pMgmt->wCurrATIMWindow); */  	} -	/* Warren:06-18-2004,the sequence must follow PSEN->AUTOSLEEP->GO2DOZE */ +	/* Warren:06-18-2004,the sequence must follow +	 * PSEN->AUTOSLEEP->GO2DOZE +	 */  	/* enable power saving hw function */  	MACvRegBitsOn(pDevice, MAC_REG_PSCTL, PSCTL_PSEN);  	/* Set AutoSleep */  	MACvRegBitsOn(pDevice, MAC_REG_PSCFG, PSCFG_AUTOSLEEP); -	/* Warren:MUST turn on this once before turn on AUTOSLEEP ,or the AUTOSLEEP doesn't work */ +	/* Warren:MUST turn on this once before turn on AUTOSLEEP ,or the +	 * AUTOSLEEP doesn't work +	 */  	MACvRegBitsOn(pDevice, MAC_REG_PSCTL, PSCTL_GO2DOZE);  	if (wListenInterval >= 2) { @@ -105,8 +105,10 @@ void PSvEnablePowerSaving(struct vnt_private *pDevice, u16 wListenInterval)  	pDevice->bEnablePSMode = true; -	/* We don't send null pkt in ad hoc mode since beacon will handle this. */ -	if (pDevice->eOPMode == OP_MODE_INFRASTRUCTURE) +	/* We don't send null pkt in ad hoc mode +	 * since beacon will handle this. +	 */ +	if (pDevice->op_mode == NL80211_IFTYPE_STATION)  		PSbSendNullPacket(pDevice);  	pDevice->bPWBitOn = true; @@ -127,7 +129,7 @@ void PSvDisablePowerSaving(struct vnt_private *pDevice)  {  	/* disable power saving hw function */ -	CONTROLnsRequestOut(pDevice, MESSAGE_TYPE_DISABLE_PS, 0, +	vnt_control_out(pDevice, MESSAGE_TYPE_DISABLE_PS, 0,  						0, 0, NULL);  	/* clear AutoSleep */ @@ -137,7 +139,7 @@ void PSvDisablePowerSaving(struct vnt_private *pDevice)  	MACvRegBitsOn(pDevice, MAC_REG_PSCTL, PSCTL_ALBCN);  	pDevice->bEnablePSMode = false; -	if (pDevice->eOPMode == OP_MODE_INFRASTRUCTURE) +	if (pDevice->op_mode == NL80211_IFTYPE_STATION)  		PSbSendNullPacket(pDevice);  	pDevice->bPWBitOn = false; @@ -160,7 +162,7 @@ int PSbConsiderPowerDown(struct vnt_private *pDevice, int bCheckRxDMA,  	u8 byData;  	/* check if already in Doze mode */ -	ControlvReadByte(pDevice, MESSAGE_REQUEST_MACREG, +	vnt_control_in_u8(pDevice, MESSAGE_REQUEST_MACREG,  					MAC_REG_PSCTL, &byData);  	if ((byData & PSCTL_PS) != 0) @@ -226,16 +228,19 @@ void PSvSendPSPOLL(struct vnt_private *pDevice)  			WLAN_SET_FC_PWRMGT(0)  		)); -	pTxPacket->p80211Header->sA2.wDurationID = pMgmt->wCurrAID | BIT14 | BIT15; -	memcpy(pTxPacket->p80211Header->sA2.abyAddr1, pMgmt->abyCurrBSSID, WLAN_ADDR_LEN); -	memcpy(pTxPacket->p80211Header->sA2.abyAddr2, pMgmt->abyMACAddr, WLAN_ADDR_LEN); +	pTxPacket->p80211Header->sA2.wDurationID = +		pMgmt->wCurrAID | BIT14 | BIT15; +	memcpy(pTxPacket->p80211Header->sA2.abyAddr1, pMgmt->abyCurrBSSID, +		WLAN_ADDR_LEN); +	memcpy(pTxPacket->p80211Header->sA2.abyAddr2, pMgmt->abyMACAddr, +		WLAN_ADDR_LEN);  	pTxPacket->cbMPDULen = WLAN_HDR_ADDR2_LEN;  	pTxPacket->cbPayloadLen = 0;  	/* log failure if sending failed */ -	if (csMgmt_xmit(pDevice, pTxPacket) != CMD_STATUS_PENDING) { -		DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Send PS-Poll packet failed..\n"); -	} +	if (csMgmt_xmit(pDevice, pTxPacket) != CMD_STATUS_PENDING) +		DBG_PRT(MSG_LEVEL_DEBUG, +			KERN_INFO "Send PS-Poll packet failed..\n");  }  /* @@ -257,10 +262,8 @@ int PSbSendNullPacket(struct vnt_private *pDevice)  	if (pDevice->bLinkPass == false)  		return false; -	if ((pDevice->bEnablePSMode == false) && -		(pDevice->fTxDataInSleep == false)) { -			return false; -	} +	if (pDevice->bEnablePSMode == false && pDevice->tx_trigger == false) +		return false;  	memset(pMgmt->pbyPSPacketPool, 0, sizeof(struct vnt_tx_mgmt)  		+ WLAN_NULLDATA_FR_MAXLEN); @@ -269,7 +272,7 @@ int PSbSendNullPacket(struct vnt_private *pDevice)  		+ sizeof(struct vnt_tx_mgmt));  	flags = WLAN_SET_FC_FTYPE(WLAN_TYPE_DATA) | -                        WLAN_SET_FC_FSTYPE(WLAN_FSTYPE_NULL); +			WLAN_SET_FC_FSTYPE(WLAN_FSTYPE_NULL);  	if (pDevice->bEnablePSMode)  		flags |= WLAN_SET_FC_PWRMGT(1); @@ -279,16 +282,21 @@ int PSbSendNullPacket(struct vnt_private *pDevice)  	pTxPacket->p80211Header->sA3.wFrameCtl = cpu_to_le16(flags);  	if (pMgmt->eCurrMode != WMAC_MODE_IBSS_STA) -		pTxPacket->p80211Header->sA3.wFrameCtl |= cpu_to_le16((u16)WLAN_SET_FC_TODS(1)); - -	memcpy(pTxPacket->p80211Header->sA3.abyAddr1, pMgmt->abyCurrBSSID, WLAN_ADDR_LEN); -	memcpy(pTxPacket->p80211Header->sA3.abyAddr2, pMgmt->abyMACAddr, WLAN_ADDR_LEN); -	memcpy(pTxPacket->p80211Header->sA3.abyAddr3, pMgmt->abyCurrBSSID, WLAN_BSSID_LEN); +		pTxPacket->p80211Header->sA3.wFrameCtl |= +			cpu_to_le16((u16)WLAN_SET_FC_TODS(1)); + +	memcpy(pTxPacket->p80211Header->sA3.abyAddr1, pMgmt->abyCurrBSSID, +		WLAN_ADDR_LEN); +	memcpy(pTxPacket->p80211Header->sA3.abyAddr2, pMgmt->abyMACAddr, +		WLAN_ADDR_LEN); +	memcpy(pTxPacket->p80211Header->sA3.abyAddr3, pMgmt->abyCurrBSSID, +		WLAN_BSSID_LEN);  	pTxPacket->cbMPDULen = WLAN_HDR_ADDR3_LEN;  	pTxPacket->cbPayloadLen = 0;  	/* log error if sending failed */  	if (csMgmt_xmit(pDevice, pTxPacket) != CMD_STATUS_PENDING) { -		DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Send Null Packet failed !\n"); +		DBG_PRT(MSG_LEVEL_DEBUG, +			KERN_INFO "Send Null Packet failed !\n");  		return false;  	}  	return true;  | 
