diff options
author | Malcolm Priestley <tvboxspy@gmail.com> | 2013-08-27 07:02:54 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-08-27 19:54:39 -0400 |
commit | 351c7dc3f7864c79d51d79dbc68ae15a12d1590d (patch) | |
tree | 9f7547aa4f7f59d729b25195ab29c0c750d5887b | |
parent | f46142b0bbde093e9faa8cc6172057e515d17653 (diff) |
staging: vt6656: rxtx.c merge pvRTS and pvCTS/pCTS void pointers
As result of patch
rxtx.c s_vGenerateTxParameter create argument bool need rts
RTS and CTS void pointers can be merged.
Create new pointer rts_cts so that unions in s_vFillCTSHead/s_vFillRTSHead
can be joined.
If rts_cts is NULL neither exist.
Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/vt6656/rxtx.c | 86 |
1 files changed, 36 insertions, 50 deletions
diff --git a/drivers/staging/vt6656/rxtx.c b/drivers/staging/vt6656/rxtx.c index 2fd71c3c06cb..c9f6ffc8a021 100644 --- a/drivers/staging/vt6656/rxtx.c +++ b/drivers/staging/vt6656/rxtx.c | |||
@@ -100,7 +100,7 @@ static void *s_vGetFreeContext(struct vnt_private *pDevice); | |||
100 | 100 | ||
101 | static void s_vGenerateTxParameter(struct vnt_private *pDevice, | 101 | static void s_vGenerateTxParameter(struct vnt_private *pDevice, |
102 | u8 byPktType, u16 wCurrentRate, void *pTxBufHead, void *pvRrvTime, | 102 | u8 byPktType, u16 wCurrentRate, void *pTxBufHead, void *pvRrvTime, |
103 | void *pvRTS, void *pvCTS, u32 cbFrameSize, int bNeedACK, u32 uDMAIdx, | 103 | void *rts_cts, u32 cbFrameSize, int bNeedACK, u32 uDMAIdx, |
104 | struct ethhdr *psEthHeader, bool need_rts); | 104 | struct ethhdr *psEthHeader, bool need_rts); |
105 | 105 | ||
106 | static u32 s_uFillDataHead(struct vnt_private *pDevice, | 106 | static u32 s_uFillDataHead(struct vnt_private *pDevice, |
@@ -828,7 +828,7 @@ static void s_vFillCTSHead(struct vnt_private *pDevice, u32 uDMAIdx, | |||
828 | 828 | ||
829 | static void s_vGenerateTxParameter(struct vnt_private *pDevice, | 829 | static void s_vGenerateTxParameter(struct vnt_private *pDevice, |
830 | u8 byPktType, u16 wCurrentRate, void *pTxBufHead, void *pvRrvTime, | 830 | u8 byPktType, u16 wCurrentRate, void *pTxBufHead, void *pvRrvTime, |
831 | void *pvRTS, void *pvCTS, u32 cbFrameSize, int bNeedACK, u32 uDMAIdx, | 831 | void *rts_cts, u32 cbFrameSize, int bNeedACK, u32 uDMAIdx, |
832 | struct ethhdr *psEthHeader, bool need_rts) | 832 | struct ethhdr *psEthHeader, bool need_rts) |
833 | { | 833 | { |
834 | u32 cbMACHdLen = WLAN_HDR_ADDR3_LEN; /* 24 */ | 834 | u32 cbMACHdLen = WLAN_HDR_ADDR3_LEN; /* 24 */ |
@@ -869,9 +869,9 @@ static void s_vGenerateTxParameter(struct vnt_private *pDevice, | |||
869 | pBuf->wTxRrvTime_b = vnt_rxtx_rsvtime_le16(pDevice, | 869 | pBuf->wTxRrvTime_b = vnt_rxtx_rsvtime_le16(pDevice, |
870 | PK_TYPE_11B, cbFrameSize, pDevice->byTopCCKBasicRate, | 870 | PK_TYPE_11B, cbFrameSize, pDevice->byTopCCKBasicRate, |
871 | bNeedACK); | 871 | bNeedACK); |
872 | //Fill RTS | 872 | /* Fill RTS */ |
873 | s_vFillRTSHead(pDevice, byPktType, pvRTS, cbFrameSize, bNeedACK, | 873 | s_vFillRTSHead(pDevice, byPktType, rts_cts, cbFrameSize, |
874 | psEthHeader, wCurrentRate, byFBOption); | 874 | bNeedACK, psEthHeader, wCurrentRate, byFBOption); |
875 | } | 875 | } |
876 | else {//RTS_needless, PCF mode | 876 | else {//RTS_needless, PCF mode |
877 | //Fill RsvTime | 877 | //Fill RsvTime |
@@ -884,9 +884,9 @@ static void s_vGenerateTxParameter(struct vnt_private *pDevice, | |||
884 | pDevice->byTopCCKBasicRate, bNeedACK); | 884 | pDevice->byTopCCKBasicRate, bNeedACK); |
885 | pBuf->wCTSTxRrvTime_ba = s_uGetRTSCTSRsvTime(pDevice, 3, | 885 | pBuf->wCTSTxRrvTime_ba = s_uGetRTSCTSRsvTime(pDevice, 3, |
886 | byPktType, cbFrameSize, wCurrentRate); | 886 | byPktType, cbFrameSize, wCurrentRate); |
887 | //Fill CTS | 887 | /* Fill CTS */ |
888 | s_vFillCTSHead(pDevice, uDMAIdx, byPktType, pvCTS, cbFrameSize, | 888 | s_vFillCTSHead(pDevice, uDMAIdx, byPktType, rts_cts, |
889 | bNeedACK, wCurrentRate, byFBOption); | 889 | cbFrameSize, bNeedACK, wCurrentRate, byFBOption); |
890 | } | 890 | } |
891 | } | 891 | } |
892 | else if (byPktType == PK_TYPE_11A) { | 892 | else if (byPktType == PK_TYPE_11A) { |
@@ -898,9 +898,9 @@ static void s_vGenerateTxParameter(struct vnt_private *pDevice, | |||
898 | byPktType, cbFrameSize, wCurrentRate); | 898 | byPktType, cbFrameSize, wCurrentRate); |
899 | pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, byPktType, | 899 | pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, byPktType, |
900 | cbFrameSize, wCurrentRate, bNeedACK); | 900 | cbFrameSize, wCurrentRate, bNeedACK); |
901 | //Fill RTS | 901 | /* Fill RTS */ |
902 | s_vFillRTSHead(pDevice, byPktType, pvRTS, cbFrameSize, bNeedACK, | 902 | s_vFillRTSHead(pDevice, byPktType, rts_cts, cbFrameSize, |
903 | psEthHeader, wCurrentRate, byFBOption); | 903 | bNeedACK, psEthHeader, wCurrentRate, byFBOption); |
904 | } else { | 904 | } else { |
905 | //Fill RsvTime | 905 | //Fill RsvTime |
906 | struct vnt_rrv_time_ab *pBuf = | 906 | struct vnt_rrv_time_ab *pBuf = |
@@ -918,9 +918,9 @@ static void s_vGenerateTxParameter(struct vnt_private *pDevice, | |||
918 | byPktType, cbFrameSize, wCurrentRate); | 918 | byPktType, cbFrameSize, wCurrentRate); |
919 | pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, | 919 | pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, |
920 | cbFrameSize, wCurrentRate, bNeedACK); | 920 | cbFrameSize, wCurrentRate, bNeedACK); |
921 | //Fill RTS | 921 | /* Fill RTS */ |
922 | s_vFillRTSHead(pDevice, byPktType, pvRTS, cbFrameSize, bNeedACK, | 922 | s_vFillRTSHead(pDevice, byPktType, rts_cts, cbFrameSize, |
923 | psEthHeader, wCurrentRate, byFBOption); | 923 | bNeedACK, psEthHeader, wCurrentRate, byFBOption); |
924 | } | 924 | } |
925 | else { //RTS_needless, non PCF mode | 925 | else { //RTS_needless, non PCF mode |
926 | //Fill RsvTime | 926 | //Fill RsvTime |
@@ -959,8 +959,7 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, | |||
959 | u32 cbHeaderLength = 0, uPadding = 0; | 959 | u32 cbHeaderLength = 0, uPadding = 0; |
960 | void *pvRrvTime; | 960 | void *pvRrvTime; |
961 | struct vnt_mic_hdr *pMICHDR; | 961 | struct vnt_mic_hdr *pMICHDR; |
962 | void *pvRTS; | 962 | void *rts_cts = NULL; |
963 | void *pvCTS; | ||
964 | void *pvTxDataHd; | 963 | void *pvTxDataHd; |
965 | u8 byFBOption = AUTO_FB_NONE, byFragType; | 964 | u8 byFBOption = AUTO_FB_NONE, byFragType; |
966 | u16 wTxBufSize; | 965 | u16 wTxBufSize; |
@@ -968,7 +967,7 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, | |||
968 | u32 *pdwMIC_L, *pdwMIC_R; | 967 | u32 *pdwMIC_L, *pdwMIC_R; |
969 | int bSoftWEP = false; | 968 | int bSoftWEP = false; |
970 | 969 | ||
971 | pvRrvTime = pMICHDR = pvRTS = pvCTS = pvTxDataHd = NULL; | 970 | pvRrvTime = pMICHDR = pvTxDataHd = NULL; |
972 | 971 | ||
973 | if (bNeedEncryption && pTransmitKey->pvKeyTable) { | 972 | if (bNeedEncryption && pTransmitKey->pvKeyTable) { |
974 | if (((PSKeyTable)pTransmitKey->pvKeyTable)->bSoftWEP == true) | 973 | if (((PSKeyTable)pTransmitKey->pvKeyTable)->bSoftWEP == true) |
@@ -1098,9 +1097,8 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, | |||
1098 | (pbyTxBufferAddr + wTxBufSize); | 1097 | (pbyTxBufferAddr + wTxBufSize); |
1099 | pMICHDR = (struct vnt_mic_hdr *)(pbyTxBufferAddr + wTxBufSize + | 1098 | pMICHDR = (struct vnt_mic_hdr *)(pbyTxBufferAddr + wTxBufSize + |
1100 | sizeof(struct vnt_rrv_time_rts)); | 1099 | sizeof(struct vnt_rrv_time_rts)); |
1101 | pvRTS = (struct vnt_rts_g *) (pbyTxBufferAddr + wTxBufSize + | 1100 | rts_cts = (struct vnt_rts_g *) (pbyTxBufferAddr + wTxBufSize + |
1102 | sizeof(struct vnt_rrv_time_rts) + cbMICHDR); | 1101 | sizeof(struct vnt_rrv_time_rts) + cbMICHDR); |
1103 | pvCTS = NULL; | ||
1104 | pvTxDataHd = (struct vnt_tx_datahead_g *) (pbyTxBufferAddr + | 1102 | pvTxDataHd = (struct vnt_tx_datahead_g *) (pbyTxBufferAddr + |
1105 | wTxBufSize + sizeof(struct vnt_rrv_time_rts) + | 1103 | wTxBufSize + sizeof(struct vnt_rrv_time_rts) + |
1106 | cbMICHDR + sizeof(struct vnt_rts_g)); | 1104 | cbMICHDR + sizeof(struct vnt_rts_g)); |
@@ -1113,8 +1111,7 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, | |||
1113 | (pbyTxBufferAddr + wTxBufSize); | 1111 | (pbyTxBufferAddr + wTxBufSize); |
1114 | pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + | 1112 | pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + |
1115 | sizeof(struct vnt_rrv_time_cts)); | 1113 | sizeof(struct vnt_rrv_time_cts)); |
1116 | pvRTS = NULL; | 1114 | rts_cts = (struct vnt_cts *) (pbyTxBufferAddr + wTxBufSize + |
1117 | pvCTS = (struct vnt_cts *) (pbyTxBufferAddr + wTxBufSize + | ||
1118 | sizeof(struct vnt_rrv_time_cts) + cbMICHDR); | 1115 | sizeof(struct vnt_rrv_time_cts) + cbMICHDR); |
1119 | pvTxDataHd = (struct vnt_tx_datahead_g *)(pbyTxBufferAddr + | 1116 | pvTxDataHd = (struct vnt_tx_datahead_g *)(pbyTxBufferAddr + |
1120 | wTxBufSize + sizeof(struct vnt_rrv_time_cts) + | 1117 | wTxBufSize + sizeof(struct vnt_rrv_time_cts) + |
@@ -1130,9 +1127,8 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, | |||
1130 | wTxBufSize); | 1127 | wTxBufSize); |
1131 | pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + | 1128 | pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + |
1132 | sizeof(struct vnt_rrv_time_rts)); | 1129 | sizeof(struct vnt_rrv_time_rts)); |
1133 | pvRTS = (struct vnt_rts_g_fb *) (pbyTxBufferAddr + wTxBufSize + | 1130 | rts_cts = (struct vnt_rts_g_fb *)(pbyTxBufferAddr + wTxBufSize + |
1134 | sizeof(struct vnt_rrv_time_rts) + cbMICHDR); | 1131 | sizeof(struct vnt_rrv_time_rts) + cbMICHDR); |
1135 | pvCTS = NULL; | ||
1136 | pvTxDataHd = (struct vnt_tx_datahead_g_fb *) (pbyTxBufferAddr + | 1132 | pvTxDataHd = (struct vnt_tx_datahead_g_fb *) (pbyTxBufferAddr + |
1137 | wTxBufSize + sizeof(struct vnt_rrv_time_rts) + | 1133 | wTxBufSize + sizeof(struct vnt_rrv_time_rts) + |
1138 | cbMICHDR + sizeof(struct vnt_rts_g_fb)); | 1134 | cbMICHDR + sizeof(struct vnt_rts_g_fb)); |
@@ -1145,8 +1141,7 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, | |||
1145 | (pbyTxBufferAddr + wTxBufSize); | 1141 | (pbyTxBufferAddr + wTxBufSize); |
1146 | pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + | 1142 | pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + |
1147 | sizeof(struct vnt_rrv_time_cts)); | 1143 | sizeof(struct vnt_rrv_time_cts)); |
1148 | pvRTS = NULL; | 1144 | rts_cts = (struct vnt_cts_fb *) (pbyTxBufferAddr + wTxBufSize + |
1149 | pvCTS = (struct vnt_cts_fb *) (pbyTxBufferAddr + wTxBufSize + | ||
1150 | sizeof(struct vnt_rrv_time_cts) + cbMICHDR); | 1145 | sizeof(struct vnt_rrv_time_cts) + cbMICHDR); |
1151 | pvTxDataHd = (struct vnt_tx_datahead_g_fb *) (pbyTxBufferAddr + | 1146 | pvTxDataHd = (struct vnt_tx_datahead_g_fb *) (pbyTxBufferAddr + |
1152 | wTxBufSize + sizeof(struct vnt_rrv_time_cts) + | 1147 | wTxBufSize + sizeof(struct vnt_rrv_time_cts) + |
@@ -1164,9 +1159,8 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, | |||
1164 | wTxBufSize); | 1159 | wTxBufSize); |
1165 | pMICHDR = (struct vnt_mic_hdr *)(pbyTxBufferAddr + wTxBufSize + | 1160 | pMICHDR = (struct vnt_mic_hdr *)(pbyTxBufferAddr + wTxBufSize + |
1166 | sizeof(struct vnt_rrv_time_ab)); | 1161 | sizeof(struct vnt_rrv_time_ab)); |
1167 | pvRTS = (struct vnt_rts_ab *) (pbyTxBufferAddr + wTxBufSize + | 1162 | rts_cts = (struct vnt_rts_ab *) (pbyTxBufferAddr + wTxBufSize + |
1168 | sizeof(struct vnt_rrv_time_ab) + cbMICHDR); | 1163 | sizeof(struct vnt_rrv_time_ab) + cbMICHDR); |
1169 | pvCTS = NULL; | ||
1170 | pvTxDataHd = (struct vnt_tx_datahead_ab *)(pbyTxBufferAddr + | 1164 | pvTxDataHd = (struct vnt_tx_datahead_ab *)(pbyTxBufferAddr + |
1171 | wTxBufSize + sizeof(struct vnt_rrv_time_ab) + cbMICHDR + | 1165 | wTxBufSize + sizeof(struct vnt_rrv_time_ab) + cbMICHDR + |
1172 | sizeof(struct vnt_rts_ab)); | 1166 | sizeof(struct vnt_rts_ab)); |
@@ -1179,8 +1173,6 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, | |||
1179 | wTxBufSize); | 1173 | wTxBufSize); |
1180 | pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + | 1174 | pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + |
1181 | sizeof(struct vnt_rrv_time_ab)); | 1175 | sizeof(struct vnt_rrv_time_ab)); |
1182 | pvRTS = NULL; | ||
1183 | pvCTS = NULL; | ||
1184 | pvTxDataHd = (struct vnt_tx_datahead_ab *)(pbyTxBufferAddr + | 1176 | pvTxDataHd = (struct vnt_tx_datahead_ab *)(pbyTxBufferAddr + |
1185 | wTxBufSize + sizeof(struct vnt_rrv_time_ab) + cbMICHDR); | 1177 | wTxBufSize + sizeof(struct vnt_rrv_time_ab) + cbMICHDR); |
1186 | cbHeaderLength = wTxBufSize + sizeof(struct vnt_rrv_time_ab) + | 1178 | cbHeaderLength = wTxBufSize + sizeof(struct vnt_rrv_time_ab) + |
@@ -1193,9 +1185,8 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, | |||
1193 | wTxBufSize); | 1185 | wTxBufSize); |
1194 | pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + | 1186 | pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + |
1195 | sizeof(struct vnt_rrv_time_ab)); | 1187 | sizeof(struct vnt_rrv_time_ab)); |
1196 | pvRTS = (struct vnt_rts_a_fb *) (pbyTxBufferAddr + wTxBufSize + | 1188 | rts_cts = (struct vnt_rts_a_fb *)(pbyTxBufferAddr + wTxBufSize + |
1197 | sizeof(struct vnt_rrv_time_ab) + cbMICHDR); | 1189 | sizeof(struct vnt_rrv_time_ab) + cbMICHDR); |
1198 | pvCTS = NULL; | ||
1199 | pvTxDataHd = (struct vnt_tx_datahead_a_fb *)(pbyTxBufferAddr + | 1190 | pvTxDataHd = (struct vnt_tx_datahead_a_fb *)(pbyTxBufferAddr + |
1200 | wTxBufSize + sizeof(struct vnt_rrv_time_ab) + cbMICHDR + | 1191 | wTxBufSize + sizeof(struct vnt_rrv_time_ab) + cbMICHDR + |
1201 | sizeof(struct vnt_rts_a_fb)); | 1192 | sizeof(struct vnt_rts_a_fb)); |
@@ -1208,8 +1199,6 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, | |||
1208 | wTxBufSize); | 1199 | wTxBufSize); |
1209 | pMICHDR = (struct vnt_mic_hdr *)(pbyTxBufferAddr + wTxBufSize + | 1200 | pMICHDR = (struct vnt_mic_hdr *)(pbyTxBufferAddr + wTxBufSize + |
1210 | sizeof(struct vnt_rrv_time_ab)); | 1201 | sizeof(struct vnt_rrv_time_ab)); |
1211 | pvRTS = NULL; | ||
1212 | pvCTS = NULL; | ||
1213 | pvTxDataHd = (struct vnt_tx_datahead_a_fb *)(pbyTxBufferAddr + | 1202 | pvTxDataHd = (struct vnt_tx_datahead_a_fb *)(pbyTxBufferAddr + |
1214 | wTxBufSize + sizeof(struct vnt_rrv_time_ab) + cbMICHDR); | 1203 | wTxBufSize + sizeof(struct vnt_rrv_time_ab) + cbMICHDR); |
1215 | cbHeaderLength = wTxBufSize + sizeof(struct vnt_rrv_time_ab) + | 1204 | cbHeaderLength = wTxBufSize + sizeof(struct vnt_rrv_time_ab) + |
@@ -1232,7 +1221,7 @@ static int s_bPacketToWirelessUsb(struct vnt_private *pDevice, u8 byPktType, | |||
1232 | 1221 | ||
1233 | //Fill FIFO,RrvTime,RTS,and CTS | 1222 | //Fill FIFO,RrvTime,RTS,and CTS |
1234 | s_vGenerateTxParameter(pDevice, byPktType, wCurrentRate, | 1223 | s_vGenerateTxParameter(pDevice, byPktType, wCurrentRate, |
1235 | (void *)pbyTxBufferAddr, pvRrvTime, pvRTS, pvCTS, | 1224 | (void *)pbyTxBufferAddr, pvRrvTime, rts_cts, |
1236 | cbFrameSize, bNeedACK, uDMAIdx, psEthHeader, bRTS); | 1225 | cbFrameSize, bNeedACK, uDMAIdx, psEthHeader, bRTS); |
1237 | //Fill DataHead | 1226 | //Fill DataHead |
1238 | uDuration = s_uFillDataHead(pDevice, byPktType, wCurrentRate, pvTxDataHd, cbFrameSize, uDMAIdx, bNeedACK, | 1227 | uDuration = s_uFillDataHead(pDevice, byPktType, wCurrentRate, pvTxDataHd, cbFrameSize, uDMAIdx, bNeedACK, |
@@ -1467,10 +1456,10 @@ CMD_STATUS csMgmt_xmit(struct vnt_private *pDevice, | |||
1467 | PSTxBufHead pTxBufHead; | 1456 | PSTxBufHead pTxBufHead; |
1468 | PUSB_SEND_CONTEXT pContext; | 1457 | PUSB_SEND_CONTEXT pContext; |
1469 | struct ieee80211_hdr *pMACHeader; | 1458 | struct ieee80211_hdr *pMACHeader; |
1470 | struct vnt_cts *pCTS; | ||
1471 | struct ethhdr sEthHeader; | 1459 | struct ethhdr sEthHeader; |
1472 | u8 byPktType, *pbyTxBufferAddr; | 1460 | u8 byPktType, *pbyTxBufferAddr; |
1473 | void *pvRTS, *pvTxDataHd, *pvRrvTime, *pMICHDR; | 1461 | void *rts_cts = NULL; |
1462 | void *pvTxDataHd, *pvRrvTime, *pMICHDR; | ||
1474 | u32 uDuration, cbReqCount, cbHeaderSize, cbFrameBodySize, cbFrameSize; | 1463 | u32 uDuration, cbReqCount, cbHeaderSize, cbFrameBodySize, cbFrameSize; |
1475 | int bNeedACK, bIsPSPOLL = false; | 1464 | int bNeedACK, bIsPSPOLL = false; |
1476 | u32 cbIVlen = 0, cbICVlen = 0, cbMIClen = 0, cbFCSlen = 4; | 1465 | u32 cbIVlen = 0, cbICVlen = 0, cbMIClen = 0, cbFCSlen = 4; |
@@ -1605,8 +1594,7 @@ CMD_STATUS csMgmt_xmit(struct vnt_private *pDevice, | |||
1605 | 1594 | ||
1606 | pvRrvTime = (struct vnt_rrv_time_cts *) (pbyTxBufferAddr + wTxBufSize); | 1595 | pvRrvTime = (struct vnt_rrv_time_cts *) (pbyTxBufferAddr + wTxBufSize); |
1607 | pMICHDR = NULL; | 1596 | pMICHDR = NULL; |
1608 | pvRTS = NULL; | 1597 | rts_cts = (struct vnt_cts *) (pbyTxBufferAddr + wTxBufSize + |
1609 | pCTS = (struct vnt_cts *) (pbyTxBufferAddr + wTxBufSize + | ||
1610 | sizeof(struct vnt_rrv_time_cts)); | 1598 | sizeof(struct vnt_rrv_time_cts)); |
1611 | pvTxDataHd = (struct vnt_tx_datahead_g *)(pbyTxBufferAddr + wTxBufSize + | 1599 | pvTxDataHd = (struct vnt_tx_datahead_g *)(pbyTxBufferAddr + wTxBufSize + |
1612 | sizeof(struct vnt_rrv_time_cts) + sizeof(struct vnt_cts)); | 1600 | sizeof(struct vnt_rrv_time_cts) + sizeof(struct vnt_cts)); |
@@ -1616,8 +1604,6 @@ CMD_STATUS csMgmt_xmit(struct vnt_private *pDevice, | |||
1616 | else { // 802.11a/b packet | 1604 | else { // 802.11a/b packet |
1617 | pvRrvTime = (struct vnt_rrv_time_ab *) (pbyTxBufferAddr + wTxBufSize); | 1605 | pvRrvTime = (struct vnt_rrv_time_ab *) (pbyTxBufferAddr + wTxBufSize); |
1618 | pMICHDR = NULL; | 1606 | pMICHDR = NULL; |
1619 | pvRTS = NULL; | ||
1620 | pCTS = NULL; | ||
1621 | pvTxDataHd = (struct vnt_tx_datahead_ab *) (pbyTxBufferAddr + | 1607 | pvTxDataHd = (struct vnt_tx_datahead_ab *) (pbyTxBufferAddr + |
1622 | wTxBufSize + sizeof(struct vnt_rrv_time_ab)); | 1608 | wTxBufSize + sizeof(struct vnt_rrv_time_ab)); |
1623 | cbHeaderSize = wTxBufSize + sizeof(struct vnt_rrv_time_ab) + | 1609 | cbHeaderSize = wTxBufSize + sizeof(struct vnt_rrv_time_ab) + |
@@ -1635,8 +1621,9 @@ CMD_STATUS csMgmt_xmit(struct vnt_private *pDevice, | |||
1635 | //========================= | 1621 | //========================= |
1636 | pTxBufHead->wFragCtl |= (u16)FRAGCTL_NONFRAG; | 1622 | pTxBufHead->wFragCtl |= (u16)FRAGCTL_NONFRAG; |
1637 | 1623 | ||
1638 | //Fill FIFO,RrvTime,RTS,and CTS | 1624 | /* Fill FIFO,RrvTime,RTS,and CTS */ |
1639 | s_vGenerateTxParameter(pDevice, byPktType, wCurrentRate, pbyTxBufferAddr, pvRrvTime, pvRTS, pCTS, | 1625 | s_vGenerateTxParameter(pDevice, byPktType, wCurrentRate, |
1626 | pbyTxBufferAddr, pvRrvTime, rts_cts, | ||
1640 | cbFrameSize, bNeedACK, TYPE_TXDMA0, &sEthHeader, false); | 1627 | cbFrameSize, bNeedACK, TYPE_TXDMA0, &sEthHeader, false); |
1641 | 1628 | ||
1642 | //Fill DataHead | 1629 | //Fill DataHead |
@@ -1824,7 +1811,8 @@ void vDMA0_tx_80211(struct vnt_private *pDevice, struct sk_buff *skb) | |||
1824 | struct vnt_tx_buffer *pTX_Buffer; | 1811 | struct vnt_tx_buffer *pTX_Buffer; |
1825 | u8 byPktType; | 1812 | u8 byPktType; |
1826 | u8 *pbyTxBufferAddr; | 1813 | u8 *pbyTxBufferAddr; |
1827 | void *pvRTS, *pvCTS, *pvTxDataHd; | 1814 | void *rts_cts = NULL; |
1815 | void *pvTxDataHd; | ||
1828 | u32 uDuration, cbReqCount; | 1816 | u32 uDuration, cbReqCount; |
1829 | struct ieee80211_hdr *pMACHeader; | 1817 | struct ieee80211_hdr *pMACHeader; |
1830 | u32 cbHeaderSize, cbFrameBodySize; | 1818 | u32 cbHeaderSize, cbFrameBodySize; |
@@ -1851,7 +1839,7 @@ void vDMA0_tx_80211(struct vnt_private *pDevice, struct sk_buff *skb) | |||
1851 | u32 cbExtSuppRate = 0; | 1839 | u32 cbExtSuppRate = 0; |
1852 | PUSB_SEND_CONTEXT pContext; | 1840 | PUSB_SEND_CONTEXT pContext; |
1853 | 1841 | ||
1854 | pvRrvTime = pMICHDR = pvRTS = pvCTS = pvTxDataHd = NULL; | 1842 | pvRrvTime = pMICHDR = pvTxDataHd = NULL; |
1855 | 1843 | ||
1856 | if(skb->len <= WLAN_HDR_ADDR3_LEN) { | 1844 | if(skb->len <= WLAN_HDR_ADDR3_LEN) { |
1857 | cbFrameBodySize = 0; | 1845 | cbFrameBodySize = 0; |
@@ -2013,8 +2001,7 @@ void vDMA0_tx_80211(struct vnt_private *pDevice, struct sk_buff *skb) | |||
2013 | pvRrvTime = (struct vnt_rrv_time_cts *) (pbyTxBufferAddr + wTxBufSize); | 2001 | pvRrvTime = (struct vnt_rrv_time_cts *) (pbyTxBufferAddr + wTxBufSize); |
2014 | pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + | 2002 | pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + |
2015 | sizeof(struct vnt_rrv_time_cts)); | 2003 | sizeof(struct vnt_rrv_time_cts)); |
2016 | pvRTS = NULL; | 2004 | rts_cts = (struct vnt_cts *) (pbyTxBufferAddr + wTxBufSize + |
2017 | pvCTS = (struct vnt_cts *) (pbyTxBufferAddr + wTxBufSize + | ||
2018 | sizeof(struct vnt_rrv_time_cts) + cbMICHDR); | 2005 | sizeof(struct vnt_rrv_time_cts) + cbMICHDR); |
2019 | pvTxDataHd = (struct vnt_tx_datahead_g *) (pbyTxBufferAddr + | 2006 | pvTxDataHd = (struct vnt_tx_datahead_g *) (pbyTxBufferAddr + |
2020 | wTxBufSize + sizeof(struct vnt_rrv_time_cts) + cbMICHDR + | 2007 | wTxBufSize + sizeof(struct vnt_rrv_time_cts) + cbMICHDR + |
@@ -2028,8 +2015,6 @@ void vDMA0_tx_80211(struct vnt_private *pDevice, struct sk_buff *skb) | |||
2028 | pvRrvTime = (struct vnt_rrv_time_ab *) (pbyTxBufferAddr + wTxBufSize); | 2015 | pvRrvTime = (struct vnt_rrv_time_ab *) (pbyTxBufferAddr + wTxBufSize); |
2029 | pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + | 2016 | pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + |
2030 | sizeof(struct vnt_rrv_time_ab)); | 2017 | sizeof(struct vnt_rrv_time_ab)); |
2031 | pvRTS = NULL; | ||
2032 | pvCTS = NULL; | ||
2033 | pvTxDataHd = (struct vnt_tx_datahead_ab *)(pbyTxBufferAddr + | 2018 | pvTxDataHd = (struct vnt_tx_datahead_ab *)(pbyTxBufferAddr + |
2034 | wTxBufSize + sizeof(struct vnt_rrv_time_ab) + cbMICHDR); | 2019 | wTxBufSize + sizeof(struct vnt_rrv_time_ab) + cbMICHDR); |
2035 | cbHeaderSize = wTxBufSize + sizeof(struct vnt_rrv_time_ab) + cbMICHDR + | 2020 | cbHeaderSize = wTxBufSize + sizeof(struct vnt_rrv_time_ab) + cbMICHDR + |
@@ -2046,8 +2031,9 @@ void vDMA0_tx_80211(struct vnt_private *pDevice, struct sk_buff *skb) | |||
2046 | //========================= | 2031 | //========================= |
2047 | pTxBufHead->wFragCtl |= (u16)FRAGCTL_NONFRAG; | 2032 | pTxBufHead->wFragCtl |= (u16)FRAGCTL_NONFRAG; |
2048 | 2033 | ||
2049 | //Fill FIFO,RrvTime,RTS,and CTS | 2034 | /* Fill FIFO,RrvTime,RTS,and CTS */ |
2050 | s_vGenerateTxParameter(pDevice, byPktType, wCurrentRate, pbyTxBufferAddr, pvRrvTime, pvRTS, pvCTS, | 2035 | s_vGenerateTxParameter(pDevice, byPktType, wCurrentRate, |
2036 | pbyTxBufferAddr, pvRrvTime, rts_cts, | ||
2051 | cbFrameSize, bNeedACK, TYPE_TXDMA0, &sEthHeader, false); | 2037 | cbFrameSize, bNeedACK, TYPE_TXDMA0, &sEthHeader, false); |
2052 | 2038 | ||
2053 | //Fill DataHead | 2039 | //Fill DataHead |