diff options
author | Malcolm Priestley <tvboxspy@gmail.com> | 2014-08-22 22:35:11 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-08-30 13:50:10 -0700 |
commit | 964172359150ae034a73aecccabf9bdb8d0b7c2c (patch) | |
tree | e6d6345118956fa0d97982ba70a501ff1f79683c /drivers/staging/vt6655 | |
parent | 09a903b51b19516490f5305342c1dc42046aaa84 (diff) | |
download | linux-stable-964172359150ae034a73aecccabf9bdb8d0b7c2c.tar.gz linux-stable-964172359150ae034a73aecccabf9bdb8d0b7c2c.tar.bz2 linux-stable-964172359150ae034a73aecccabf9bdb8d0b7c2c.zip |
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>
Diffstat (limited to 'drivers/staging/vt6655')
-rw-r--r-- | drivers/staging/vt6655/desc.h | 7 | ||||
-rw-r--r-- | drivers/staging/vt6655/rxtx.c | 37 | ||||
-rw-r--r-- | drivers/staging/vt6655/rxtx.h | 8 |
3 files changed, 28 insertions, 24 deletions
diff --git a/drivers/staging/vt6655/desc.h b/drivers/staging/vt6655/desc.h index 10bd5648ca1f..b5730df9c121 100644 --- a/drivers/staging/vt6655/desc.h +++ b/drivers/staging/vt6655/desc.h @@ -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 // diff --git a/drivers/staging/vt6655/rxtx.c b/drivers/staging/vt6655/rxtx.c index 04cf9e9ba08e..7493db195e35 100644 --- a/drivers/staging/vt6655/rxtx.c +++ b/drivers/staging/vt6655/rxtx.c @@ -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 - - pTxBufHead->wFIFOCtl |= FIFOCTL_GENINT; + /* Set FIFOCTL_GENINT */ + short_head->fifo_ctl |= cpu_to_le16(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); diff --git a/drivers/staging/vt6655/rxtx.h b/drivers/staging/vt6655/rxtx.h index 4accb788259a..789fae7223fc 100644 --- a/drivers/staging/vt6655/rxtx.h +++ b/drivers/staging/vt6655/rxtx.h @@ -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 *, |