Commit f115e76a authored by Malcolm Priestley's avatar Malcolm Priestley Committed by Greg Kroah-Hartman

staging: vt6656: rxtx.c endian correct wTimeStampOff

wTimeStampOff needs to be endian corrected

Create new function vnt_time_stamp_off to return little endian u16 value.

Private variable byPreambleType is common to all calling functions is included.

variable rate to set the desired rate.
Signed-off-by: default avatarMalcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9c3806d5
...@@ -323,6 +323,12 @@ static void s_vSWencryption(struct vnt_private *pDevice, ...@@ -323,6 +323,12 @@ static void s_vSWencryption(struct vnt_private *pDevice,
} }
} }
static u16 vnt_time_stamp_off(struct vnt_private *priv, u16 rate)
{
return cpu_to_le16(wTimeStampOff[priv->byPreambleType % 2]
[rate % MAX_RATE]);
}
/*byPktType : PK_TYPE_11A 0 /*byPktType : PK_TYPE_11A 0
PK_TYPE_11B 1 PK_TYPE_11B 1
PK_TYPE_11GB 2 PK_TYPE_11GB 2
...@@ -519,8 +525,10 @@ static u32 s_uFillDataHead(struct vnt_private *pDevice, ...@@ -519,8 +525,10 @@ static u32 s_uFillDataHead(struct vnt_private *pDevice,
pBuf->wDuration_b = s_uGetDataDuration(pDevice, pBuf->wDuration_b = s_uGetDataDuration(pDevice,
PK_TYPE_11B, bNeedAck); PK_TYPE_11B, bNeedAck);
pBuf->wTimeStampOff_a = wTimeStampOff[pDevice->byPreambleType%2][wCurrentRate%MAX_RATE]; pBuf->wTimeStampOff_a = vnt_time_stamp_off(pDevice,
pBuf->wTimeStampOff_b = wTimeStampOff[pDevice->byPreambleType%2][pDevice->byTopCCKBasicRate%MAX_RATE]; wCurrentRate);
pBuf->wTimeStampOff_b = vnt_time_stamp_off(pDevice,
pDevice->byTopCCKBasicRate);
return (pBuf->wDuration_a); return (pBuf->wDuration_a);
} else { } else {
// Auto Fallback // Auto Fallback
...@@ -540,8 +548,10 @@ static u32 s_uFillDataHead(struct vnt_private *pDevice, ...@@ -540,8 +548,10 @@ static u32 s_uFillDataHead(struct vnt_private *pDevice,
byPktType, bNeedAck); byPktType, bNeedAck);
pBuf->wDuration_a_f1 = s_uGetDataDuration(pDevice, pBuf->wDuration_a_f1 = s_uGetDataDuration(pDevice,
byPktType, bNeedAck); byPktType, bNeedAck);
pBuf->wTimeStampOff_a = wTimeStampOff[pDevice->byPreambleType%2][wCurrentRate%MAX_RATE]; pBuf->wTimeStampOff_a = vnt_time_stamp_off(pDevice,
pBuf->wTimeStampOff_b = wTimeStampOff[pDevice->byPreambleType%2][pDevice->byTopCCKBasicRate%MAX_RATE]; wCurrentRate);
pBuf->wTimeStampOff_b = vnt_time_stamp_off(pDevice,
pDevice->byTopCCKBasicRate);
return (pBuf->wDuration_a); return (pBuf->wDuration_a);
} //if (byFBOption == AUTO_FB_NONE) } //if (byFBOption == AUTO_FB_NONE)
} }
...@@ -559,7 +569,8 @@ static u32 s_uFillDataHead(struct vnt_private *pDevice, ...@@ -559,7 +569,8 @@ static u32 s_uFillDataHead(struct vnt_private *pDevice,
byPktType, bNeedAck); byPktType, bNeedAck);
pBuf->wDuration_f1 = s_uGetDataDuration(pDevice, pBuf->wDuration_f1 = s_uGetDataDuration(pDevice,
byPktType, bNeedAck); byPktType, bNeedAck);
pBuf->wTimeStampOff = wTimeStampOff[pDevice->byPreambleType%2][wCurrentRate%MAX_RATE]; pBuf->wTimeStampOff = vnt_time_stamp_off(pDevice,
wCurrentRate);
return (pBuf->wDuration); return (pBuf->wDuration);
} else { } else {
struct vnt_tx_datahead_ab *pBuf = struct vnt_tx_datahead_ab *pBuf =
...@@ -570,8 +581,8 @@ static u32 s_uFillDataHead(struct vnt_private *pDevice, ...@@ -570,8 +581,8 @@ static u32 s_uFillDataHead(struct vnt_private *pDevice,
//Get Duration and TimeStampOff //Get Duration and TimeStampOff
pBuf->wDuration = s_uGetDataDuration(pDevice, pBuf->wDuration = s_uGetDataDuration(pDevice,
byPktType, bNeedAck); byPktType, bNeedAck);
pBuf->wTimeStampOff = wTimeStampOff[pDevice->byPreambleType%2][wCurrentRate%MAX_RATE]; pBuf->wTimeStampOff = vnt_time_stamp_off(pDevice,
wCurrentRate);
return (pBuf->wDuration); return (pBuf->wDuration);
} }
} }
...@@ -584,8 +595,8 @@ static u32 s_uFillDataHead(struct vnt_private *pDevice, ...@@ -584,8 +595,8 @@ static u32 s_uFillDataHead(struct vnt_private *pDevice,
//Get Duration and TimeStampOff //Get Duration and TimeStampOff
pBuf->wDuration = s_uGetDataDuration(pDevice, pBuf->wDuration = s_uGetDataDuration(pDevice,
byPktType, bNeedAck); byPktType, bNeedAck);
pBuf->wTimeStampOff = wTimeStampOff[pDevice->byPreambleType%2][wCurrentRate%MAX_RATE]; pBuf->wTimeStampOff = vnt_time_stamp_off(pDevice,
wCurrentRate);
return (pBuf->wDuration); return (pBuf->wDuration);
} }
return 0; return 0;
...@@ -1830,7 +1841,7 @@ CMD_STATUS csBeacon_xmit(struct vnt_private *pDevice, ...@@ -1830,7 +1841,7 @@ CMD_STATUS csBeacon_xmit(struct vnt_private *pDevice,
//Get Duration and TimeStampOff //Get Duration and TimeStampOff
pTxDataHead->wDuration = s_uGetDataDuration(pDevice, pTxDataHead->wDuration = s_uGetDataDuration(pDevice,
PK_TYPE_11A, false); PK_TYPE_11A, false);
pTxDataHead->wTimeStampOff = wTimeStampOff[pDevice->byPreambleType%2][wCurrentRate%MAX_RATE]; pTxDataHead->wTimeStampOff = vnt_time_stamp_off(pDevice, wCurrentRate);
cbHeaderSize = wTxBufSize + sizeof(struct vnt_tx_datahead_ab); cbHeaderSize = wTxBufSize + sizeof(struct vnt_tx_datahead_ab);
} else { } else {
wCurrentRate = RATE_1M; wCurrentRate = RATE_1M;
...@@ -1843,7 +1854,7 @@ CMD_STATUS csBeacon_xmit(struct vnt_private *pDevice, ...@@ -1843,7 +1854,7 @@ CMD_STATUS csBeacon_xmit(struct vnt_private *pDevice,
//Get Duration and TimeStampOff //Get Duration and TimeStampOff
pTxDataHead->wDuration = s_uGetDataDuration(pDevice, pTxDataHead->wDuration = s_uGetDataDuration(pDevice,
PK_TYPE_11B, false); PK_TYPE_11B, false);
pTxDataHead->wTimeStampOff = wTimeStampOff[pDevice->byPreambleType%2][wCurrentRate%MAX_RATE]; pTxDataHead->wTimeStampOff = vnt_time_stamp_off(pDevice, wCurrentRate);
cbHeaderSize = wTxBufSize + sizeof(struct vnt_tx_datahead_ab); cbHeaderSize = wTxBufSize + sizeof(struct vnt_tx_datahead_ab);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment