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

Commit 0fc2a76e authored by Malcolm Priestley's avatar Malcolm Priestley Committed by Greg Kroah-Hartman
Browse files

staging: vt6655: Replace and remove typedef QWORD/ DQWORD



Replace the variables with u64/__le64.

The endian variant is needed in some places endian correction is
needed.

Signed-off-by: default avatarMalcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c98323a7
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -91,7 +91,7 @@ vMgrEncodeBeacon(
	pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;

	/* Fixed Fields */
	pFrame->pqwTimestamp = (PQWORD)
	pFrame->pqwTimestamp = (__le64 *)
				(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3)) +
				 WLAN_BEACON_OFF_TS);
	pFrame->pwBeaconInterval = (unsigned short *)
@@ -125,7 +125,7 @@ vMgrDecodeBeacon(
	pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;

	/* Fixed Fields */
	pFrame->pqwTimestamp = (PQWORD)
	pFrame->pqwTimestamp = (__le64 *)
				(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3)) +
				 WLAN_BEACON_OFF_TS);
	pFrame->pwBeaconInterval = (unsigned short *)
@@ -695,7 +695,7 @@ vMgrEncodeProbeResponse(
	pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;

	/* Fixed Fields */
	pFrame->pqwTimestamp = (PQWORD)
	pFrame->pqwTimestamp = (__le64 *)
			       (WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3)) +
				WLAN_PROBERESP_OFF_TS);
	pFrame->pwBeaconInterval = (unsigned short *)
@@ -730,7 +730,7 @@ vMgrDecodeProbeResponse(
	pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;

	/* Fixed Fields */
	pFrame->pqwTimestamp = (PQWORD)
	pFrame->pqwTimestamp = (__le64 *)
			       (WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3)) +
				WLAN_PROBERESP_OFF_TS);
	pFrame->pwBeaconInterval = (unsigned short *)
+4 −2
Original line number Diff line number Diff line
@@ -31,6 +31,8 @@
#ifndef __80211MGR_H__
#define __80211MGR_H__

#include <linux/types.h>

#include "ttype.h"
#include "80211hdr.h"

@@ -464,7 +466,7 @@ typedef struct tagWLAN_FR_BEACON {
	unsigned int	len;
	unsigned char *pBuf;
	PUWLAN_80211HDR         pHdr;
	PQWORD                  pqwTimestamp;
	__le64 *pqwTimestamp;
	unsigned short *pwBeaconInterval;
	unsigned short *pwCapInfo;
	PWLAN_IE_SSID           pSSID;
@@ -577,7 +579,7 @@ typedef struct tagWLAN_FR_PROBERESP {
	unsigned int	len;
	unsigned char *pBuf;
	PUWLAN_80211HDR         pHdr;
	PQWORD                  pqwTimestamp;
	__le64 *pqwTimestamp;
	unsigned short *pwBeaconInterval;
	unsigned short *pwCapInfo;
	PWLAN_IE_SSID           pSSID;
+4 −6
Original line number Diff line number Diff line
@@ -316,7 +316,7 @@ bool
BSSbInsertToBSSList(
	void *hDeviceContext,
	unsigned char *abyBSSIDAddr,
	QWORD qwTimestamp,
	__le64 qwTimestamp,
	unsigned short wBeaconInterval,
	unsigned short wCapInfo,
	unsigned char byCurrChannel,
@@ -356,8 +356,7 @@ BSSbInsertToBSSList(
	/* save the BSS info */
	pBSSList->bActive = true;
	memcpy(pBSSList->abyBSSID, abyBSSIDAddr, WLAN_BSSID_LEN);
	HIDWORD(pBSSList->qwBSSTimestamp) = cpu_to_le32(HIDWORD(qwTimestamp));
	LODWORD(pBSSList->qwBSSTimestamp) = cpu_to_le32(LODWORD(qwTimestamp));
	pBSSList->qwBSSTimestamp = le64_to_cpu(qwTimestamp);
	pBSSList->wBeaconInterval = cpu_to_le16(wBeaconInterval);
	pBSSList->wCapInfo = cpu_to_le16(wCapInfo);
	pBSSList->uClearCount = 0;
@@ -521,7 +520,7 @@ BSSbInsertToBSSList(
bool
BSSbUpdateToBSSList(
	void *hDeviceContext,
	QWORD qwTimestamp,
	__le64 qwTimestamp,
	unsigned short wBeaconInterval,
	unsigned short wCapInfo,
	unsigned char byCurrChannel,
@@ -551,8 +550,7 @@ BSSbUpdateToBSSList(
	if (pBSSList == NULL)
		return false;

	HIDWORD(pBSSList->qwBSSTimestamp) = cpu_to_le32(HIDWORD(qwTimestamp));
	LODWORD(pBSSList->qwBSSTimestamp) = cpu_to_le32(LODWORD(qwTimestamp));
	pBSSList->qwBSSTimestamp = le64_to_cpu(qwTimestamp);
	pBSSList->wBeaconInterval = cpu_to_le16(wBeaconInterval);
	pBSSList->wCapInfo = cpu_to_le16(wCapInfo);
	pBSSList->uClearCount = 0;
+4 −4
Original line number Diff line number Diff line
@@ -131,8 +131,8 @@ typedef struct tagKnownBSS {

	unsigned int	uClearCount;
	unsigned int	uIELength;
	QWORD           qwBSSTimestamp;
	QWORD           qwLocalTSF;
	u64 qwBSSTimestamp;
	u64 qwLocalTSF;

	CARD_PHY_TYPE   eNetworkTypeInUse;

@@ -233,7 +233,7 @@ bool
BSSbInsertToBSSList(
	void *hDeviceContext,
	unsigned char *abyBSSIDAddr,
	QWORD qwTimestamp,
	__le64 qwTimestamp,
	unsigned short wBeaconInterval,
	unsigned short wCapInfo,
	unsigned char byCurrChannel,
@@ -253,7 +253,7 @@ BSSbInsertToBSSList(
bool
BSSbUpdateToBSSList(
	void *hDeviceContext,
	QWORD qwTimestamp,
	__le64 qwTimestamp,
	unsigned short wBeaconInterval,
	unsigned short wCapInfo,
	unsigned char byCurrChannel,
+46 −70
Original line number Diff line number Diff line
@@ -573,21 +573,17 @@ bool CARDbSetPhyParameter(void *pDeviceHandler, CARD_PHY_TYPE ePHYType, unsigned
 * Return Value: none
 *
 */
bool CARDbUpdateTSF(void *pDeviceHandler, unsigned char byRxRate, QWORD qwBSSTimestamp, QWORD qwLocalTSF)
bool CARDbUpdateTSF(void *pDeviceHandler, unsigned char byRxRate, u64 qwBSSTimestamp, u64 qwLocalTSF)
{
	PSDevice    pDevice = (PSDevice) pDeviceHandler;
	QWORD       qwTSFOffset;
	u64 qwTSFOffset = 0;

	HIDWORD(qwTSFOffset) = 0;
	LODWORD(qwTSFOffset) = 0;

	if ((HIDWORD(qwBSSTimestamp) != HIDWORD(qwLocalTSF)) ||
	    (LODWORD(qwBSSTimestamp) != LODWORD(qwLocalTSF))) {
	if (qwBSSTimestamp != qwLocalTSF) {
		qwTSFOffset = CARDqGetTSFOffset(byRxRate, qwBSSTimestamp, qwLocalTSF);
		// adjust TSF
		// HW's TSF add TSF Offset reg
		VNSvOutPortD(pDevice->PortOffset + MAC_REG_TSFOFST, LODWORD(qwTSFOffset));
		VNSvOutPortD(pDevice->PortOffset + MAC_REG_TSFOFST + 4, HIDWORD(qwTSFOffset));
		VNSvOutPortD(pDevice->PortOffset + MAC_REG_TSFOFST, (u32)qwTSFOffset);
		VNSvOutPortD(pDevice->PortOffset + MAC_REG_TSFOFST + 4, (u32)(qwTSFOffset >> 32));
		MACvRegBitsOn(pDevice->PortOffset, MAC_REG_TFTCTL, TFTCTL_TSFSYNCEN);
	}
	return true;
@@ -614,33 +610,32 @@ bool CARDbSetBeaconPeriod(void *pDeviceHandler, unsigned short wBeaconInterval)
	unsigned int uLowNextTBTT = 0;
	unsigned int uHighRemain = 0;
	unsigned int uLowRemain = 0;
	QWORD       qwNextTBTT;
	u64 qwNextTBTT = 0;

	HIDWORD(qwNextTBTT) = 0;
	LODWORD(qwNextTBTT) = 0;
	CARDbGetCurrentTSF(pDevice->PortOffset, &qwNextTBTT); //Get Local TSF counter
	uBeaconInterval = wBeaconInterval * 1024;
	// Next TBTT = ((local_current_TSF / beacon_interval) + 1) * beacon_interval
	uLowNextTBTT = (LODWORD(qwNextTBTT) >> 10) << 10;
	uLowNextTBTT = ((qwNextTBTT & 0xffffffffULL) >> 10) << 10;
	uLowRemain = (uLowNextTBTT) % uBeaconInterval;
	// high dword (mod) bcn
	uHighRemain = (((0xffffffff % uBeaconInterval) + 1) * HIDWORD(qwNextTBTT))
	uHighRemain = (((0xffffffff % uBeaconInterval) + 1) * (u32)(qwNextTBTT >> 32))
		% uBeaconInterval;
	uLowRemain = (uHighRemain + uLowRemain) % uBeaconInterval;
	uLowRemain = uBeaconInterval - uLowRemain;

	// check if carry when add one beacon interval
	if ((~uLowNextTBTT) < uLowRemain)
		HIDWORD(qwNextTBTT)++;
		qwNextTBTT = ((qwNextTBTT >> 32) + 1) << 32;

	LODWORD(qwNextTBTT) = uLowNextTBTT + uLowRemain;
	qwNextTBTT = (qwNextTBTT & 0xffffffff00000000ULL) |
			(u64)(uLowNextTBTT + uLowRemain);

	// set HW beacon interval
	VNSvOutPortW(pDevice->PortOffset + MAC_REG_BI, wBeaconInterval);
	pDevice->wBeaconInterval = wBeaconInterval;
	// Set NextTBTT
	VNSvOutPortD(pDevice->PortOffset + MAC_REG_NEXTTBTT, LODWORD(qwNextTBTT));
	VNSvOutPortD(pDevice->PortOffset + MAC_REG_NEXTTBTT + 4, HIDWORD(qwNextTBTT));
	VNSvOutPortD(pDevice->PortOffset + MAC_REG_NEXTTBTT, (u32)qwNextTBTT);
	VNSvOutPortD(pDevice->PortOffset + MAC_REG_NEXTTBTT + 4, (u32)(qwNextTBTT >> 32));
	MACvRegBitsOn(pDevice->PortOffset, MAC_REG_TFTCTL, TFTCTL_TBTTSYNCEN);

	return true;
@@ -1077,8 +1072,8 @@ CARDbStartMeasure(
{
	PSDevice                pDevice = (PSDevice) pDeviceHandler;
	PWLAN_IE_MEASURE_REQ    pEID = (PWLAN_IE_MEASURE_REQ) pvMeasureEIDs;
	QWORD                   qwCurrTSF;
	QWORD                   qwStartTSF;
	u64 qwCurrTSF;
	u64 qwStartTSF;
	bool bExpired = true;
	unsigned short wDuration = 0;

@@ -1109,32 +1104,22 @@ CARDbStartMeasure(
		pDevice->uNumOfMeasureEIDs--;

		if (pDevice->byLocalID > REV_ID_VT3253_B1) {
			HIDWORD(qwStartTSF) = HIDWORD(*((PQWORD)(pDevice->pCurrMeasureEID->sReq.abyStartTime)));
			LODWORD(qwStartTSF) = LODWORD(*((PQWORD)(pDevice->pCurrMeasureEID->sReq.abyStartTime)));
			qwStartTSF = *((u64 *)(pDevice->pCurrMeasureEID->sReq.abyStartTime));
			wDuration = *((unsigned short *)(pDevice->pCurrMeasureEID->sReq.abyDuration));
			wDuration += 1; // 1 TU for channel switching

			if ((LODWORD(qwStartTSF) == 0) && (HIDWORD(qwStartTSF) == 0)) {
			if (qwStartTSF == 0) {
				// start immediately by setting start TSF == current TSF + 2 TU
				LODWORD(qwStartTSF) = LODWORD(qwCurrTSF) + 2048;
				HIDWORD(qwStartTSF) = HIDWORD(qwCurrTSF);
				if (LODWORD(qwCurrTSF) > LODWORD(qwStartTSF))
					HIDWORD(qwStartTSF)++;
				qwStartTSF = qwCurrTSF + 2048;

				bExpired = false;
				break;
			} else {
				// start at setting start TSF - 1TU(for channel switching)
				if (LODWORD(qwStartTSF) < 1024)
					HIDWORD(qwStartTSF)--;

				LODWORD(qwStartTSF) -= 1024;
				qwStartTSF -= 1024;
			}

			if ((HIDWORD(qwCurrTSF) < HIDWORD(qwStartTSF)) ||
			    ((HIDWORD(qwCurrTSF) == HIDWORD(qwStartTSF)) &&
			     (LODWORD(qwCurrTSF) < LODWORD(qwStartTSF)))
) {
			if (qwCurrTSF < qwStartTSF) {
				bExpired = false;
				break;
			}
@@ -1161,8 +1146,8 @@ CARDbStartMeasure(

	if (!bExpired) {
		MACvSelectPage1(pDevice->PortOffset);
		VNSvOutPortD(pDevice->PortOffset + MAC_REG_MSRSTART, LODWORD(qwStartTSF));
		VNSvOutPortD(pDevice->PortOffset + MAC_REG_MSRSTART + 4, HIDWORD(qwStartTSF));
		VNSvOutPortD(pDevice->PortOffset + MAC_REG_MSRSTART, (u32)qwStartTSF);
		VNSvOutPortD(pDevice->PortOffset + MAC_REG_MSRSTART + 4, (u32)(qwStartTSF >> 32));
		VNSvOutPortW(pDevice->PortOffset + MAC_REG_MSRDURATION, wDuration);
		MACvRegBitsOn(pDevice->PortOffset, MAC_REG_MSRCTL, MSRCTL_EN);
		MACvSelectPage0(pDevice->PortOffset);
@@ -1948,25 +1933,17 @@ bool CARDbSoftwareReset(void *pDeviceHandler)
 * Return Value: TSF Offset value
 *
 */
QWORD CARDqGetTSFOffset(unsigned char byRxRate, QWORD qwTSF1, QWORD qwTSF2)
u64 CARDqGetTSFOffset(unsigned char byRxRate, u64 qwTSF1, u64 qwTSF2)
{
	QWORD   qwTSFOffset;
	u64 qwTSFOffset = 0;
	unsigned short wRxBcnTSFOffst = 0;

	HIDWORD(qwTSFOffset) = 0;
	LODWORD(qwTSFOffset) = 0;
	wRxBcnTSFOffst = cwRXBCNTSFOff[byRxRate%MAX_RATE];
	(qwTSF2).u.dwLowDword += (unsigned long)(wRxBcnTSFOffst);
	if ((qwTSF2).u.dwLowDword < (unsigned long)(wRxBcnTSFOffst))
		(qwTSF2).u.dwHighDword++;

	LODWORD(qwTSFOffset) = LODWORD(qwTSF1) - LODWORD(qwTSF2);
	if (LODWORD(qwTSF1) < LODWORD(qwTSF2)) {
		// if borrow needed
		HIDWORD(qwTSFOffset) = HIDWORD(qwTSF1) - HIDWORD(qwTSF2) - 1;
	} else {
		HIDWORD(qwTSFOffset) = HIDWORD(qwTSF1) - HIDWORD(qwTSF2);
	}

	qwTSF2 += (u64)wRxBcnTSFOffst;

	qwTSFOffset = qwTSF1 - qwTSF2;

	return qwTSFOffset;
}

@@ -1983,7 +1960,7 @@ QWORD CARDqGetTSFOffset(unsigned char byRxRate, QWORD qwTSF1, QWORD qwTSF2)
 * Return Value: true if success; otherwise false
 *
 */
bool CARDbGetCurrentTSF(void __iomem *dwIoBase, PQWORD pqwCurrTSF)
bool CARDbGetCurrentTSF(void __iomem *dwIoBase, u64 *pqwCurrTSF)
{
	unsigned short ww;
	unsigned char byData;
@@ -1996,8 +1973,8 @@ bool CARDbGetCurrentTSF(void __iomem *dwIoBase, PQWORD pqwCurrTSF)
	}
	if (ww == W_MAX_TIMEOUT)
		return false;
	VNSvInPortD(dwIoBase + MAC_REG_TSFCNTR, &LODWORD(*pqwCurrTSF));
	VNSvInPortD(dwIoBase + MAC_REG_TSFCNTR + 4, &HIDWORD(*pqwCurrTSF));
	VNSvInPortD(dwIoBase + MAC_REG_TSFCNTR, (u32 *)pqwCurrTSF);
	VNSvInPortD(dwIoBase + MAC_REG_TSFCNTR + 4, (u32 *)pqwCurrTSF + 1);

	return true;
}
@@ -2016,7 +1993,7 @@ bool CARDbGetCurrentTSF(void __iomem *dwIoBase, PQWORD pqwCurrTSF)
 * Return Value: TSF value of next Beacon
 *
 */
QWORD CARDqGetNextTBTT(QWORD qwTSF, unsigned short wBeaconInterval)
u64 CARDqGetNextTBTT(u64 qwTSF, unsigned short wBeaconInterval)
{
	unsigned int uLowNextTBTT;
	unsigned int uHighRemain, uLowRemain;
@@ -2024,20 +2001,21 @@ QWORD CARDqGetNextTBTT(QWORD qwTSF, unsigned short wBeaconInterval)

	uBeaconInterval = wBeaconInterval * 1024;
	// Next TBTT = ((local_current_TSF / beacon_interval) + 1) * beacon_interval
	uLowNextTBTT = (LODWORD(qwTSF) >> 10) << 10;
	uLowNextTBTT = ((qwTSF & 0xffffffffULL) >> 10) << 10;
	// low dword (mod) bcn
	uLowRemain = (uLowNextTBTT) % uBeaconInterval;
	// high dword (mod) bcn
	uHighRemain = (((0xffffffff % uBeaconInterval) + 1) * HIDWORD(qwTSF))
	uHighRemain = (((0xffffffff % uBeaconInterval) + 1) * (u32)(qwTSF >> 32))
		% uBeaconInterval;
	uLowRemain = (uHighRemain + uLowRemain) % uBeaconInterval;
	uLowRemain = uBeaconInterval - uLowRemain;

	// check if carry when add one beacon interval
	if ((~uLowNextTBTT) < uLowRemain)
		HIDWORD(qwTSF)++;
		qwTSF = ((qwTSF >> 32) + 1) << 32;

	LODWORD(qwTSF) = uLowNextTBTT + uLowRemain;
	qwTSF = (qwTSF & 0xffffffff00000000ULL) |
		(u64)(uLowNextTBTT + uLowRemain);

	return qwTSF;
}
@@ -2058,15 +2036,14 @@ QWORD CARDqGetNextTBTT(QWORD qwTSF, unsigned short wBeaconInterval)
 */
void CARDvSetFirstNextTBTT(void __iomem *dwIoBase, unsigned short wBeaconInterval)
{
	QWORD   qwNextTBTT;
	u64 qwNextTBTT = 0;

	HIDWORD(qwNextTBTT) = 0;
	LODWORD(qwNextTBTT) = 0;
	CARDbGetCurrentTSF(dwIoBase, &qwNextTBTT); //Get Local TSF counter

	qwNextTBTT = CARDqGetNextTBTT(qwNextTBTT, wBeaconInterval);
	// Set NextTBTT
	VNSvOutPortD(dwIoBase + MAC_REG_NEXTTBTT, LODWORD(qwNextTBTT));
	VNSvOutPortD(dwIoBase + MAC_REG_NEXTTBTT + 4, HIDWORD(qwNextTBTT));
	VNSvOutPortD(dwIoBase + MAC_REG_NEXTTBTT, (u32)qwNextTBTT);
	VNSvOutPortD(dwIoBase + MAC_REG_NEXTTBTT + 4, (u32)(qwNextTBTT >> 32));
	MACvRegBitsOn(dwIoBase, MAC_REG_TFTCTL, TFTCTL_TBTTSYNCEN);
}

@@ -2085,13 +2062,12 @@ void CARDvSetFirstNextTBTT(void __iomem *dwIoBase, unsigned short wBeaconInterva
 * Return Value: none
 *
 */
void CARDvUpdateNextTBTT(void __iomem *dwIoBase, QWORD qwTSF, unsigned short wBeaconInterval)
void CARDvUpdateNextTBTT(void __iomem *dwIoBase, u64 qwTSF, unsigned short wBeaconInterval)
{
	qwTSF = CARDqGetNextTBTT(qwTSF, wBeaconInterval);
	// Set NextTBTT
	VNSvOutPortD(dwIoBase + MAC_REG_NEXTTBTT, LODWORD(qwTSF));
	VNSvOutPortD(dwIoBase + MAC_REG_NEXTTBTT + 4, HIDWORD(qwTSF));
	VNSvOutPortD(dwIoBase + MAC_REG_NEXTTBTT, (u32)qwTSF);
	VNSvOutPortD(dwIoBase + MAC_REG_NEXTTBTT + 4, (u32)(qwTSF >> 32));
	MACvRegBitsOn(dwIoBase, MAC_REG_TFTCTL, TFTCTL_TBTTSYNCEN);
	DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Card:Update Next TBTT[%8xh:%8xh]\n",
		(unsigned int) HIDWORD(qwTSF), (unsigned int) LODWORD(qwTSF));
	DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Card:Update Next TBTT[%8llx]\n", qwTSF);
}
Loading