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

staging: vt6655: rxtx create new structure vnt_tx_short_buf_head for csBeacon_xmit

This is a merger of PSTxDataHead_ab and PSTxShortBufHead of which typedef struct tagSTxShortBufHead
is removed.

This is formed as fifo_ctl, time_stamp, struct vnt_phy_field, duration and time_stamp_off.

Replacing stuctures in csBeacon_xmit and doing endian correction where necessary.
Signed-off-by: default avatarMalcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 09a903b5
...@@ -483,13 +483,6 @@ typedef struct tagSTxBufHead { ...@@ -483,13 +483,6 @@ typedef struct tagSTxBufHead {
STxBufHead, *PSTxBufHead; STxBufHead, *PSTxBufHead;
typedef const STxBufHead *PCSTxBufHead; typedef const STxBufHead *PCSTxBufHead;
typedef struct tagSTxShortBufHead {
unsigned short wFIFOCtl;
unsigned short wTimeStamp;
} __attribute__ ((__packed__))
STxShortBufHead, *PSTxShortBufHead;
typedef const STxShortBufHead *PCSTxShortBufHead;
// //
// Tx data header // Tx data header
// //
......
...@@ -2334,13 +2334,12 @@ CMD_STATUS csBeacon_xmit(struct vnt_private *pDevice, PSTxMgmtPacket pPacket) ...@@ -2334,13 +2334,12 @@ CMD_STATUS csBeacon_xmit(struct vnt_private *pDevice, PSTxMgmtPacket pPacket)
unsigned char *pbyBuffer = (unsigned char *)pDevice->tx_beacon_bufs; unsigned char *pbyBuffer = (unsigned char *)pDevice->tx_beacon_bufs;
unsigned int cbFrameSize = pPacket->cbMPDULen + WLAN_FCS_LEN; unsigned int cbFrameSize = pPacket->cbMPDULen + WLAN_FCS_LEN;
unsigned int cbHeaderSize = 0; unsigned int cbHeaderSize = 0;
unsigned short wTxBufSize = sizeof(STxShortBufHead); struct vnt_tx_short_buf_head *short_head =
PSTxShortBufHead pTxBufHead = (PSTxShortBufHead) pbyBuffer; (struct vnt_tx_short_buf_head *)pbyBuffer;
PSTxDataHead_ab pTxDataHead = (PSTxDataHead_ab) (pbyBuffer + wTxBufSize);
PS802_11Header pMACHeader; PS802_11Header pMACHeader;
unsigned short wCurrentRate; unsigned short wCurrentRate;
memset(pTxBufHead, 0, wTxBufSize); memset(short_head, 0, sizeof(*short_head));
if (pDevice->eCurrentPHYType == PHY_TYPE_11A) { if (pDevice->eCurrentPHYType == PHY_TYPE_11A) {
wCurrentRate = RATE_6M; wCurrentRate = RATE_6M;
...@@ -2353,26 +2352,30 @@ CMD_STATUS csBeacon_xmit(struct vnt_private *pDevice, PSTxMgmtPacket pPacket) ...@@ -2353,26 +2352,30 @@ CMD_STATUS csBeacon_xmit(struct vnt_private *pDevice, PSTxMgmtPacket pPacket)
//Set Preamble type always long //Set Preamble type always long
pDevice->byPreambleType = PREAMBLE_LONG; pDevice->byPreambleType = PREAMBLE_LONG;
//Set FIFOCTL_GENINT /* Set FIFOCTL_GENINT */
short_head->fifo_ctl |= cpu_to_le16(FIFOCTL_GENINT);
pTxBufHead->wFIFOCtl |= FIFOCTL_GENINT;
//Set packet type & Get Duration /* Set packet type & Get Duration */
if (byPktType == PK_TYPE_11A) {//0000 0000 0000 0000 if (byPktType == PK_TYPE_11A) {//0000 0000 0000 0000
pTxDataHead->wDuration = cpu_to_le16((unsigned short)s_uGetDataDuration(pDevice, DATADUR_A, cbFrameSize, byPktType, short_head->duration =
wCurrentRate, false, 0, 0, 1, AUTO_FB_NONE)); cpu_to_le16((u16)s_uGetDataDuration(pDevice, DATADUR_A,
cbFrameSize, byPktType, wCurrentRate, false,
0, 0, 1, AUTO_FB_NONE));
} else if (byPktType == PK_TYPE_11B) {//0000 0001 0000 0000 } else if (byPktType == PK_TYPE_11B) {//0000 0001 0000 0000
pTxBufHead->wFIFOCtl |= FIFOCTL_11B; short_head->fifo_ctl |= cpu_to_le16(FIFOCTL_11B);
pTxDataHead->wDuration = cpu_to_le16((unsigned short)s_uGetDataDuration(pDevice, DATADUR_B, cbFrameSize, byPktType,
wCurrentRate, false, 0, 0, 1, AUTO_FB_NONE)); short_head->duration =
cpu_to_le16((u16)s_uGetDataDuration(pDevice, DATADUR_B,
cbFrameSize, byPktType, wCurrentRate, false,
0, 0, 1, AUTO_FB_NONE));
} }
vnt_get_phy_field(pDevice, cbFrameSize, vnt_get_phy_field(pDevice, cbFrameSize,
wCurrentRate, byPktType, &pTxDataHead->ab); wCurrentRate, byPktType, &short_head->ab);
//Get TimeStampOff /* Get TimeStampOff */
pTxDataHead->wTimeStampOff = cpu_to_le16(wTimeStampOff[pDevice->byPreambleType%2][wCurrentRate%MAX_RATE]); short_head->time_stamp_off = cpu_to_le16(wTimeStampOff[pDevice->byPreambleType%2][wCurrentRate%MAX_RATE]);
cbHeaderSize = wTxBufSize + sizeof(STxDataHead_ab); cbHeaderSize = sizeof(struct vnt_tx_short_buf_head);
//Generate Beacon Header //Generate Beacon Header
pMACHeader = (PS802_11Header)(pbyBuffer + cbHeaderSize); pMACHeader = (PS802_11Header)(pbyBuffer + cbHeaderSize);
......
...@@ -56,6 +56,14 @@ struct vnt_mic_hdr { ...@@ -56,6 +56,14 @@ struct vnt_mic_hdr {
u16 packing; /* packing to 48 bytes */ u16 packing; /* packing to 48 bytes */
} __packed; } __packed;
struct vnt_tx_short_buf_head {
__le16 fifo_ctl;
u16 time_stamp;
struct vnt_phy_field ab;
__le16 duration;
__le16 time_stamp_off;
} __packed;
void void
vGenerateMACHeader( vGenerateMACHeader(
struct vnt_private *, struct vnt_private *,
......
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