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: Malcolm Priestley <tvboxspy@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
09a903b51b
commit
9641723591
|
@ -483,13 +483,6 @@ typedef struct tagSTxBufHead {
|
|||
STxBufHead, *PSTxBufHead;
|
||||
typedef const STxBufHead *PCSTxBufHead;
|
||||
|
||||
typedef struct tagSTxShortBufHead {
|
||||
unsigned short wFIFOCtl;
|
||||
unsigned short wTimeStamp;
|
||||
} __attribute__ ((__packed__))
|
||||
STxShortBufHead, *PSTxShortBufHead;
|
||||
typedef const STxShortBufHead *PCSTxShortBufHead;
|
||||
|
||||
//
|
||||
// Tx data header
|
||||
//
|
||||
|
|
|
@ -2334,13 +2334,12 @@ CMD_STATUS csBeacon_xmit(struct vnt_private *pDevice, PSTxMgmtPacket pPacket)
|
|||
unsigned char *pbyBuffer = (unsigned char *)pDevice->tx_beacon_bufs;
|
||||
unsigned int cbFrameSize = pPacket->cbMPDULen + WLAN_FCS_LEN;
|
||||
unsigned int cbHeaderSize = 0;
|
||||
unsigned short wTxBufSize = sizeof(STxShortBufHead);
|
||||
PSTxShortBufHead pTxBufHead = (PSTxShortBufHead) pbyBuffer;
|
||||
PSTxDataHead_ab pTxDataHead = (PSTxDataHead_ab) (pbyBuffer + wTxBufSize);
|
||||
struct vnt_tx_short_buf_head *short_head =
|
||||
(struct vnt_tx_short_buf_head *)pbyBuffer;
|
||||
PS802_11Header pMACHeader;
|
||||
unsigned short wCurrentRate;
|
||||
|
||||
memset(pTxBufHead, 0, wTxBufSize);
|
||||
memset(short_head, 0, sizeof(*short_head));
|
||||
|
||||
if (pDevice->eCurrentPHYType == PHY_TYPE_11A) {
|
||||
wCurrentRate = RATE_6M;
|
||||
|
@ -2353,26 +2352,30 @@ CMD_STATUS csBeacon_xmit(struct vnt_private *pDevice, PSTxMgmtPacket pPacket)
|
|||
//Set Preamble type always 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
|
||||
pTxDataHead->wDuration = cpu_to_le16((unsigned short)s_uGetDataDuration(pDevice, DATADUR_A, cbFrameSize, byPktType,
|
||||
wCurrentRate, false, 0, 0, 1, AUTO_FB_NONE));
|
||||
short_head->duration =
|
||||
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
|
||||
pTxBufHead->wFIFOCtl |= 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->fifo_ctl |= cpu_to_le16(FIFOCTL_11B);
|
||||
|
||||
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,
|
||||
wCurrentRate, byPktType, &pTxDataHead->ab);
|
||||
wCurrentRate, byPktType, &short_head->ab);
|
||||
|
||||
//Get TimeStampOff
|
||||
pTxDataHead->wTimeStampOff = cpu_to_le16(wTimeStampOff[pDevice->byPreambleType%2][wCurrentRate%MAX_RATE]);
|
||||
cbHeaderSize = wTxBufSize + sizeof(STxDataHead_ab);
|
||||
/* Get TimeStampOff */
|
||||
short_head->time_stamp_off = cpu_to_le16(wTimeStampOff[pDevice->byPreambleType%2][wCurrentRate%MAX_RATE]);
|
||||
cbHeaderSize = sizeof(struct vnt_tx_short_buf_head);
|
||||
|
||||
//Generate Beacon Header
|
||||
pMACHeader = (PS802_11Header)(pbyBuffer + cbHeaderSize);
|
||||
|
|
|
@ -56,6 +56,14 @@ struct vnt_mic_hdr {
|
|||
u16 packing; /* packing to 48 bytes */
|
||||
} __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
|
||||
vGenerateMACHeader(
|
||||
struct vnt_private *,
|
||||
|
|
Loading…
Reference in New Issue