Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 55340d6b authored by Malcolm Priestley's avatar Malcolm Priestley Committed by Greg Kroah-Hartman
Browse files

staging: vt6655: remove dead functions in power.c/h

parent 01b89792
Loading
Loading
Loading
Loading
+0 −171
Original line number Diff line number Diff line
@@ -43,7 +43,6 @@
#include "wmgr.h"
#include "power.h"
#include "wcmd.h"
#include "rxtx.h"
#include "card.h"

/*---------------------  Static Definitions -------------------------*/
@@ -140,176 +139,6 @@ PSvDisablePowerSaving(
	pDevice->bPWBitOn = false;
}

/*+
 *
 * Routine Description:
 * Consider to power down when no more packets to tx or rx.
 *
 * Return Value:
 *    true, if power down success
 *    false, if fail
 -*/

bool
PSbConsiderPowerDown(
	void *hDeviceContext,
	bool bCheckRxDMA,
	bool bCheckCountToWakeUp
)
{
	struct vnt_private *pDevice = hDeviceContext;
	PSMgmtObject    pMgmt = pDevice->pMgmt;
	unsigned int uIdx;

	// check if already in Doze mode
	if (MACbIsRegBitsOn(pDevice->PortOffset, MAC_REG_PSCTL, PSCTL_PS))
		return true;

	if (pMgmt->eCurrMode != WMAC_MODE_IBSS_STA) {
		// check if in TIM wake period
		if (pMgmt->bInTIMWake)
			return false;
	}

	// check scan state
	if (pDevice->bCmdRunning)
		return false;

	// Force PSEN on
	MACvRegBitsOn(pDevice->PortOffset, MAC_REG_PSCTL, PSCTL_PSEN);

	// check if all TD are empty,
	for (uIdx = 0; uIdx < TYPE_MAXTD; uIdx++) {
		if (pDevice->iTDUsed[uIdx] != 0)
			return false;
	}

	// check if rx isr is clear
	if (bCheckRxDMA &&
	    ((pDevice->dwIsr & ISR_RXDMA0) != 0) &&
	    ((pDevice->dwIsr & ISR_RXDMA1) != 0)) {
		return false;
	}

	if (pMgmt->eCurrMode != WMAC_MODE_IBSS_STA) {
		if (bCheckCountToWakeUp &&
		    (pMgmt->wCountToWakeUp == 0 || pMgmt->wCountToWakeUp == 1)) {
			return false;
		}
	}

	// no Tx, no Rx isr, now go to Doze
	MACvRegBitsOn(pDevice->PortOffset, MAC_REG_PSCTL, PSCTL_GO2DOZE);
	pr_debug("Go to Doze ZZZZZZZZZZZZZZZ\n");
	return true;
}

/*+
 *
 * Routine Description:
 * Send PS-POLL packet
 *
 * Return Value:
 *    None.
 *
 -*/

void
PSvSendPSPOLL(
	void *hDeviceContext
)
{
	struct vnt_private *pDevice = hDeviceContext;
	PSMgmtObject        pMgmt = pDevice->pMgmt;
	PSTxMgmtPacket      pTxPacket = NULL;

	memset(pMgmt->pbyPSPacketPool, 0, sizeof(STxMgmtPacket) + WLAN_HDR_ADDR2_LEN);
	pTxPacket = (PSTxMgmtPacket)pMgmt->pbyPSPacketPool;
	pTxPacket->p80211Header = (PUWLAN_80211HDR)((unsigned char *)pTxPacket + sizeof(STxMgmtPacket));
	pTxPacket->p80211Header->sA2.wFrameCtl = cpu_to_le16(
		(
			WLAN_SET_FC_FTYPE(WLAN_TYPE_CTL) |
			WLAN_SET_FC_FSTYPE(WLAN_FSTYPE_PSPOLL) |
			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->cbMPDULen = WLAN_HDR_ADDR2_LEN;
	pTxPacket->cbPayloadLen = 0;
	// send the frame
	if (csMgmt_xmit(pDevice, pTxPacket) != CMD_STATUS_PENDING)
		pr_debug("Send PS-Poll packet failed..\n");
}

/*+
 *
 * Routine Description:
 * Send NULL packet to AP for notification power state of STA
 *
 * Return Value:
 *    None.
 *
 -*/
bool
PSbSendNullPacket(
	void *hDeviceContext
)
{
	struct vnt_private *pDevice = hDeviceContext;
	PSTxMgmtPacket      pTxPacket = NULL;
	PSMgmtObject        pMgmt = pDevice->pMgmt;
	unsigned int uIdx;

	if (!pDevice->bLinkPass)
		return false;

	if (!pDevice->bEnablePSMode && !pDevice->fTxDataInSleep)
		return false;

	if (pDevice->bEnablePSMode) {
		for (uIdx = 0; uIdx < TYPE_MAXTD; uIdx++) {
			if (pDevice->iTDUsed[uIdx] != 0)
				return false;
		}
	}

	memset(pMgmt->pbyPSPacketPool, 0, sizeof(STxMgmtPacket) + WLAN_NULLDATA_FR_MAXLEN);
	pTxPacket = (PSTxMgmtPacket)pMgmt->pbyPSPacketPool;
	pTxPacket->p80211Header = (PUWLAN_80211HDR)((unsigned char *)pTxPacket + sizeof(STxMgmtPacket));

	if (pDevice->bEnablePSMode) {
		pTxPacket->p80211Header->sA3.wFrameCtl = cpu_to_le16(
			(
				WLAN_SET_FC_FTYPE(WLAN_TYPE_DATA) |
				WLAN_SET_FC_FSTYPE(WLAN_FSTYPE_NULL) |
				WLAN_SET_FC_PWRMGT(1)
));
	} else {
		pTxPacket->p80211Header->sA3.wFrameCtl = cpu_to_le16(
			(
				WLAN_SET_FC_FTYPE(WLAN_TYPE_DATA) |
				WLAN_SET_FC_FSTYPE(WLAN_FSTYPE_NULL) |
				WLAN_SET_FC_PWRMGT(0)
));
	}

	if (pMgmt->eCurrMode != WMAC_MODE_IBSS_STA)
		pTxPacket->p80211Header->sA3.wFrameCtl |= cpu_to_le16((unsigned short)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;
	// send the frame
	if (csMgmt_xmit(pDevice, pTxPacket) != CMD_STATUS_PENDING) {
		pr_debug("Send Null Packet failed !\n");
		return false;
	}

	return true;
}

/*+
 *
+0 −16
Original line number Diff line number Diff line
@@ -33,13 +33,6 @@
#define     PS_FAST_INTERVAL         1         // Fast power saving listen interval
#define     PS_MAX_INTERVAL          4         // MAX power saving listen interval

bool
PSbConsiderPowerDown(
	void *hDeviceContext,
	bool bCheckRxDMA,
	bool bCheckCountToWakeUp
);

void
PSvDisablePowerSaving(
	void *hDeviceContext
@@ -51,15 +44,6 @@ PSvEnablePowerSaving(
	unsigned short wListenInterval
);

void
PSvSendPSPOLL(
	void *hDeviceContext
);

bool
PSbSendNullPacket(
	void *hDeviceContext
);

bool
PSbIsNextTBTTWakeUp(
+0 −2
Original line number Diff line number Diff line
@@ -646,7 +646,6 @@ vCommandTimer(
			bClearBSSID_SCAN(pDevice);
			if (pDevice->byFOETuning) {
				BBvSetFOE(pDevice->PortOffset);
				PSbSendNullPacket(pDevice);
			}
			if (netif_queue_stopped(pDevice->dev))
				netif_wake_queue(pDevice->dev);
@@ -1009,7 +1008,6 @@ BSSvSecondTxData(
	if ((pDevice->bLinkPass && (pMgmt->eAuthenMode < WMAC_AUTH_WPA)) ||
	    pDevice->fWPA_Authened) {   /* wpa linking */
		pDevice->fTxDataInSleep = true;
		PSbSendNullPacket(pDevice);	/* send null packet */
		pDevice->fTxDataInSleep = false;
	}

+0 −6
Original line number Diff line number Diff line
@@ -2025,19 +2025,13 @@ s_vMgrRxBeacon(
				pMgmt->bInTIMWake = true;
				// send out ps-poll packet

				if (pMgmt->bInTIM)
					PSvSendPSPOLL(pDevice);

			} else {
				pMgmt->bInTIMWake = false;
				pr_debug("BCN: Not In TIM..\n");
				if (!pDevice->bPWBitOn) {
					pr_debug("BCN: Send Null Packet\n");
					if (PSbSendNullPacket(pDevice))
						pDevice->bPWBitOn = true;
				}
				if (PSbConsiderPowerDown(pDevice, false, false))
					pr_debug("BCN: Power down now...\n");
			}

		}