Loading drivers/staging/vt6656/rxtx.c +115 −107 Original line number Diff line number Diff line Loading @@ -835,16 +835,13 @@ static u16 s_vGenerateTxParameter(struct vnt_private *pDevice, u16 wFifoCtl; u8 byFBOption = AUTO_FB_NONE; //DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"s_vGenerateTxParameter...\n"); pFifoHead->wReserved = wCurrentRate; wFifoCtl = pFifoHead->wFIFOCtl; if (wFifoCtl & FIFOCTL_AUTO_FB_0) { if (wFifoCtl & FIFOCTL_AUTO_FB_0) byFBOption = AUTO_FB_0; } else if (wFifoCtl & FIFOCTL_AUTO_FB_1) { else if (wFifoCtl & FIFOCTL_AUTO_FB_1) byFBOption = AUTO_FB_1; } if (!pFifoHead) return 0; Loading @@ -854,8 +851,8 @@ static u16 s_vGenerateTxParameter(struct vnt_private *pDevice, if (byPktType == PK_TYPE_11GB || byPktType == PK_TYPE_11GA) { if (need_rts) { //Fill RsvTime struct vnt_rrv_time_rts *pBuf = &tx_buffer->tx_head.tx_rts.rts; struct vnt_rrv_time_rts *pBuf = &tx_buffer->tx_head.tx_rts.rts; pBuf->wRTSTxRrvTime_aa = s_uGetRTSCTSRsvTime(pDevice, 2, byPktType, cbFrameSize, wCurrentRate); Loading @@ -863,48 +860,53 @@ static u16 s_vGenerateTxParameter(struct vnt_private *pDevice, byPktType, cbFrameSize, wCurrentRate); pBuf->wRTSTxRrvTime_bb = s_uGetRTSCTSRsvTime(pDevice, 0, byPktType, cbFrameSize, wCurrentRate); pBuf->wTxRrvTime_a = vnt_rxtx_rsvtime_le16(pDevice, byPktType, cbFrameSize, wCurrentRate, bNeedACK); pBuf->wTxRrvTime_b = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, pDevice->byTopCCKBasicRate, bNeedACK); PK_TYPE_11B, cbFrameSize, pDevice->byTopCCKBasicRate, bNeedACK); if (need_mic) { *mic_hdr = &tx_buffer->tx_head.tx_rts.tx.mic.hdr; *mic_hdr = &tx_buffer-> tx_head.tx_rts.tx.mic.hdr; head = &tx_buffer->tx_head.tx_rts.tx.mic.head; } else { head = &tx_buffer->tx_head.tx_rts.tx.head; } /* Fill RTS */ return s_vFillRTSHead(pDevice, byPktType, head, cbFrameSize, bNeedACK, psEthHeader, wCurrentRate, byFBOption); } else {//RTS_needless, PCF mode //Fill RsvTime struct vnt_rrv_time_cts *pBuf = &tx_buffer->tx_head.tx_cts.cts; return s_vFillRTSHead(pDevice, byPktType, head, cbFrameSize, bNeedACK, psEthHeader, wCurrentRate, byFBOption); } else { struct vnt_rrv_time_cts *pBuf = &tx_buffer-> tx_head.tx_cts.cts; pBuf->wTxRrvTime_a = vnt_rxtx_rsvtime_le16(pDevice, byPktType, cbFrameSize, wCurrentRate, bNeedACK); pBuf->wTxRrvTime_a = vnt_rxtx_rsvtime_le16(pDevice, byPktType, cbFrameSize, wCurrentRate, bNeedACK); pBuf->wTxRrvTime_b = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, pDevice->byTopCCKBasicRate, bNeedACK); pBuf->wCTSTxRrvTime_ba = s_uGetRTSCTSRsvTime(pDevice, 3, byPktType, cbFrameSize, wCurrentRate); if (need_mic) { *mic_hdr = &tx_buffer->tx_head.tx_cts.tx.mic.hdr; *mic_hdr = &tx_buffer-> tx_head.tx_cts.tx.mic.hdr; head = &tx_buffer->tx_head.tx_cts.tx.mic.head; } else { head = &tx_buffer->tx_head.tx_cts.tx.head; } /* Fill CTS */ return s_vFillCTSHead(pDevice, uDMAIdx, byPktType, head, cbFrameSize, bNeedACK, wCurrentRate, byFBOption); } return s_vFillCTSHead(pDevice, uDMAIdx, byPktType, head, cbFrameSize, bNeedACK, wCurrentRate, byFBOption); } else if (byPktType == PK_TYPE_11A) { } else if (byPktType == PK_TYPE_11A) { if (need_mic) { *mic_hdr = &tx_buffer->tx_head.tx_ab.tx.mic.hdr; head = &tx_buffer->tx_head.tx_ab.tx.mic.head; Loading @@ -913,29 +915,32 @@ static u16 s_vGenerateTxParameter(struct vnt_private *pDevice, } if (need_rts) { //Fill RsvTime struct vnt_rrv_time_ab *pBuf = &tx_buffer->tx_head.tx_ab.ab; struct vnt_rrv_time_ab *pBuf = &tx_buffer-> tx_head.tx_ab.ab; pBuf->wRTSTxRrvTime = s_uGetRTSCTSRsvTime(pDevice, 2, byPktType, cbFrameSize, wCurrentRate); pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, byPktType, cbFrameSize, wCurrentRate, bNeedACK); pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, byPktType, cbFrameSize, wCurrentRate, bNeedACK); /* Fill RTS */ return s_vFillRTSHead(pDevice, byPktType, head, cbFrameSize, bNeedACK, psEthHeader, wCurrentRate, byFBOption); return s_vFillRTSHead(pDevice, byPktType, head, cbFrameSize, bNeedACK, psEthHeader, wCurrentRate, byFBOption); } else { //Fill RsvTime struct vnt_rrv_time_ab *pBuf = &tx_buffer->tx_head.tx_ab.ab; struct vnt_rrv_time_ab *pBuf = &tx_buffer-> tx_head.tx_ab.ab; pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11A, cbFrameSize, wCurrentRate, bNeedACK); pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11A, cbFrameSize, wCurrentRate, bNeedACK); return vnt_rxtx_datahead_a_fb(pDevice, byPktType, wCurrentRate, &head->data_head_a_fb, cbFrameSize, bNeedACK); } return vnt_rxtx_datahead_a_fb(pDevice, byPktType, wCurrentRate, &head->data_head_a_fb, cbFrameSize, bNeedACK); } else if (byPktType == PK_TYPE_11B) { } else if (byPktType == PK_TYPE_11B) { if (need_mic) { *mic_hdr = &tx_buffer->tx_head.tx_ab.tx.mic.hdr; head = &tx_buffer->tx_head.tx_ab.tx.mic.head; Loading @@ -944,30 +949,33 @@ static u16 s_vGenerateTxParameter(struct vnt_private *pDevice, } if (need_rts) { //Fill RsvTime struct vnt_rrv_time_ab *pBuf = &tx_buffer->tx_head.tx_ab.ab; struct vnt_rrv_time_ab *pBuf = &tx_buffer-> tx_head.tx_ab.ab; pBuf->wRTSTxRrvTime = s_uGetRTSCTSRsvTime(pDevice, 0, byPktType, cbFrameSize, wCurrentRate); pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, wCurrentRate, bNeedACK); pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, wCurrentRate, bNeedACK); /* Fill RTS */ return s_vFillRTSHead(pDevice, byPktType, head, cbFrameSize, return s_vFillRTSHead(pDevice, byPktType, head, cbFrameSize, bNeedACK, psEthHeader, wCurrentRate, byFBOption); } else { //RTS_needless, non PCF mode //Fill RsvTime struct vnt_rrv_time_ab *pBuf = &tx_buffer->tx_head.tx_ab.ab; } else { struct vnt_rrv_time_ab *pBuf = &tx_buffer-> tx_head.tx_ab.ab; pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, wCurrentRate, bNeedACK); pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, wCurrentRate, bNeedACK); return vnt_rxtx_datahead_ab(pDevice, byPktType, wCurrentRate, &head->data_head_ab, cbFrameSize, bNeedACK); return vnt_rxtx_datahead_ab(pDevice, byPktType, wCurrentRate, &head->data_head_ab, cbFrameSize, bNeedACK); } } //DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"s_vGenerateTxParameter END.\n"); return 0; } Loading Loading
drivers/staging/vt6656/rxtx.c +115 −107 Original line number Diff line number Diff line Loading @@ -835,16 +835,13 @@ static u16 s_vGenerateTxParameter(struct vnt_private *pDevice, u16 wFifoCtl; u8 byFBOption = AUTO_FB_NONE; //DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"s_vGenerateTxParameter...\n"); pFifoHead->wReserved = wCurrentRate; wFifoCtl = pFifoHead->wFIFOCtl; if (wFifoCtl & FIFOCTL_AUTO_FB_0) { if (wFifoCtl & FIFOCTL_AUTO_FB_0) byFBOption = AUTO_FB_0; } else if (wFifoCtl & FIFOCTL_AUTO_FB_1) { else if (wFifoCtl & FIFOCTL_AUTO_FB_1) byFBOption = AUTO_FB_1; } if (!pFifoHead) return 0; Loading @@ -854,8 +851,8 @@ static u16 s_vGenerateTxParameter(struct vnt_private *pDevice, if (byPktType == PK_TYPE_11GB || byPktType == PK_TYPE_11GA) { if (need_rts) { //Fill RsvTime struct vnt_rrv_time_rts *pBuf = &tx_buffer->tx_head.tx_rts.rts; struct vnt_rrv_time_rts *pBuf = &tx_buffer->tx_head.tx_rts.rts; pBuf->wRTSTxRrvTime_aa = s_uGetRTSCTSRsvTime(pDevice, 2, byPktType, cbFrameSize, wCurrentRate); Loading @@ -863,48 +860,53 @@ static u16 s_vGenerateTxParameter(struct vnt_private *pDevice, byPktType, cbFrameSize, wCurrentRate); pBuf->wRTSTxRrvTime_bb = s_uGetRTSCTSRsvTime(pDevice, 0, byPktType, cbFrameSize, wCurrentRate); pBuf->wTxRrvTime_a = vnt_rxtx_rsvtime_le16(pDevice, byPktType, cbFrameSize, wCurrentRate, bNeedACK); pBuf->wTxRrvTime_b = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, pDevice->byTopCCKBasicRate, bNeedACK); PK_TYPE_11B, cbFrameSize, pDevice->byTopCCKBasicRate, bNeedACK); if (need_mic) { *mic_hdr = &tx_buffer->tx_head.tx_rts.tx.mic.hdr; *mic_hdr = &tx_buffer-> tx_head.tx_rts.tx.mic.hdr; head = &tx_buffer->tx_head.tx_rts.tx.mic.head; } else { head = &tx_buffer->tx_head.tx_rts.tx.head; } /* Fill RTS */ return s_vFillRTSHead(pDevice, byPktType, head, cbFrameSize, bNeedACK, psEthHeader, wCurrentRate, byFBOption); } else {//RTS_needless, PCF mode //Fill RsvTime struct vnt_rrv_time_cts *pBuf = &tx_buffer->tx_head.tx_cts.cts; return s_vFillRTSHead(pDevice, byPktType, head, cbFrameSize, bNeedACK, psEthHeader, wCurrentRate, byFBOption); } else { struct vnt_rrv_time_cts *pBuf = &tx_buffer-> tx_head.tx_cts.cts; pBuf->wTxRrvTime_a = vnt_rxtx_rsvtime_le16(pDevice, byPktType, cbFrameSize, wCurrentRate, bNeedACK); pBuf->wTxRrvTime_a = vnt_rxtx_rsvtime_le16(pDevice, byPktType, cbFrameSize, wCurrentRate, bNeedACK); pBuf->wTxRrvTime_b = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, pDevice->byTopCCKBasicRate, bNeedACK); pBuf->wCTSTxRrvTime_ba = s_uGetRTSCTSRsvTime(pDevice, 3, byPktType, cbFrameSize, wCurrentRate); if (need_mic) { *mic_hdr = &tx_buffer->tx_head.tx_cts.tx.mic.hdr; *mic_hdr = &tx_buffer-> tx_head.tx_cts.tx.mic.hdr; head = &tx_buffer->tx_head.tx_cts.tx.mic.head; } else { head = &tx_buffer->tx_head.tx_cts.tx.head; } /* Fill CTS */ return s_vFillCTSHead(pDevice, uDMAIdx, byPktType, head, cbFrameSize, bNeedACK, wCurrentRate, byFBOption); } return s_vFillCTSHead(pDevice, uDMAIdx, byPktType, head, cbFrameSize, bNeedACK, wCurrentRate, byFBOption); } else if (byPktType == PK_TYPE_11A) { } else if (byPktType == PK_TYPE_11A) { if (need_mic) { *mic_hdr = &tx_buffer->tx_head.tx_ab.tx.mic.hdr; head = &tx_buffer->tx_head.tx_ab.tx.mic.head; Loading @@ -913,29 +915,32 @@ static u16 s_vGenerateTxParameter(struct vnt_private *pDevice, } if (need_rts) { //Fill RsvTime struct vnt_rrv_time_ab *pBuf = &tx_buffer->tx_head.tx_ab.ab; struct vnt_rrv_time_ab *pBuf = &tx_buffer-> tx_head.tx_ab.ab; pBuf->wRTSTxRrvTime = s_uGetRTSCTSRsvTime(pDevice, 2, byPktType, cbFrameSize, wCurrentRate); pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, byPktType, cbFrameSize, wCurrentRate, bNeedACK); pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, byPktType, cbFrameSize, wCurrentRate, bNeedACK); /* Fill RTS */ return s_vFillRTSHead(pDevice, byPktType, head, cbFrameSize, bNeedACK, psEthHeader, wCurrentRate, byFBOption); return s_vFillRTSHead(pDevice, byPktType, head, cbFrameSize, bNeedACK, psEthHeader, wCurrentRate, byFBOption); } else { //Fill RsvTime struct vnt_rrv_time_ab *pBuf = &tx_buffer->tx_head.tx_ab.ab; struct vnt_rrv_time_ab *pBuf = &tx_buffer-> tx_head.tx_ab.ab; pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11A, cbFrameSize, wCurrentRate, bNeedACK); pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11A, cbFrameSize, wCurrentRate, bNeedACK); return vnt_rxtx_datahead_a_fb(pDevice, byPktType, wCurrentRate, &head->data_head_a_fb, cbFrameSize, bNeedACK); } return vnt_rxtx_datahead_a_fb(pDevice, byPktType, wCurrentRate, &head->data_head_a_fb, cbFrameSize, bNeedACK); } else if (byPktType == PK_TYPE_11B) { } else if (byPktType == PK_TYPE_11B) { if (need_mic) { *mic_hdr = &tx_buffer->tx_head.tx_ab.tx.mic.hdr; head = &tx_buffer->tx_head.tx_ab.tx.mic.head; Loading @@ -944,30 +949,33 @@ static u16 s_vGenerateTxParameter(struct vnt_private *pDevice, } if (need_rts) { //Fill RsvTime struct vnt_rrv_time_ab *pBuf = &tx_buffer->tx_head.tx_ab.ab; struct vnt_rrv_time_ab *pBuf = &tx_buffer-> tx_head.tx_ab.ab; pBuf->wRTSTxRrvTime = s_uGetRTSCTSRsvTime(pDevice, 0, byPktType, cbFrameSize, wCurrentRate); pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, wCurrentRate, bNeedACK); pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, wCurrentRate, bNeedACK); /* Fill RTS */ return s_vFillRTSHead(pDevice, byPktType, head, cbFrameSize, return s_vFillRTSHead(pDevice, byPktType, head, cbFrameSize, bNeedACK, psEthHeader, wCurrentRate, byFBOption); } else { //RTS_needless, non PCF mode //Fill RsvTime struct vnt_rrv_time_ab *pBuf = &tx_buffer->tx_head.tx_ab.ab; } else { struct vnt_rrv_time_ab *pBuf = &tx_buffer-> tx_head.tx_ab.ab; pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, wCurrentRate, bNeedACK); pBuf->wTxRrvTime = vnt_rxtx_rsvtime_le16(pDevice, PK_TYPE_11B, cbFrameSize, wCurrentRate, bNeedACK); return vnt_rxtx_datahead_ab(pDevice, byPktType, wCurrentRate, &head->data_head_ab, cbFrameSize, bNeedACK); return vnt_rxtx_datahead_ab(pDevice, byPktType, wCurrentRate, &head->data_head_ab, cbFrameSize, bNeedACK); } } //DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"s_vGenerateTxParameter END.\n"); return 0; } Loading