OSDN Git Service

staging: rtl8192e: Fix UNNECESSARY_ELSE warning
authorMateusz Kulikowski <mateusz.kulikowski@gmail.com>
Tue, 31 Mar 2015 22:24:26 +0000 (00:24 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Apr 2015 13:29:29 +0000 (15:29 +0200)
Fix checkpatch warnings 'else is not generally useful after a break or return'

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 files changed:
drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c
drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c
drivers/staging/rtl8192e/rtl8192e/rtl_cam.c
drivers/staging/rtl8192e/rtl8192e/rtl_core.c
drivers/staging/rtl8192e/rtl8192e/rtl_dm.c
drivers/staging/rtl8192e/rtl8192e/rtl_ps.c
drivers/staging/rtl8192e/rtl8192e/rtl_wx.c
drivers/staging/rtl8192e/rtl819x_HTProc.c
drivers/staging/rtl8192e/rtl819x_TSProc.c
drivers/staging/rtl8192e/rtllib_rx.c
drivers/staging/rtl8192e/rtllib_softmac.c
drivers/staging/rtl8192e/rtllib_tx.c

index 170ff12..9222e42 100644 (file)
@@ -2025,6 +2025,7 @@ bool rtl8192_rx_query_status_desc(struct net_device *dev,
                                  struct sk_buff *skb)
 {
        struct r8192_priv *priv = rtllib_priv(dev);
+       struct rx_fwinfo *pDrvInfo = NULL;
 
        stats->bICV = pdesc->ICV;
        stats->bCRC = pdesc->CRC32;
@@ -2046,51 +2047,49 @@ bool rtl8192_rx_query_status_desc(struct net_device *dev,
                                priv->stats.rxcrcerrmid++;
                }
                return false;
-       } else {
-               struct rx_fwinfo *pDrvInfo = NULL;
+       }
 
-               stats->RxDrvInfoSize = pdesc->RxDrvInfoSize;
-               stats->RxBufShift = ((pdesc->Shift)&0x03);
-               stats->Decrypted = !pdesc->SWDec;
+       stats->RxDrvInfoSize = pdesc->RxDrvInfoSize;
+       stats->RxBufShift = ((pdesc->Shift)&0x03);
+       stats->Decrypted = !pdesc->SWDec;
 
-               pDrvInfo = (struct rx_fwinfo *)(skb->data + stats->RxBufShift);
+       pDrvInfo = (struct rx_fwinfo *)(skb->data + stats->RxBufShift);
 
-               stats->rate = HwRateToMRate90((bool)pDrvInfo->RxHT,
-                                            (u8)pDrvInfo->RxRate);
-               stats->bShortPreamble = pDrvInfo->SPLCP;
+       stats->rate = HwRateToMRate90((bool)pDrvInfo->RxHT,
+                                    (u8)pDrvInfo->RxRate);
+       stats->bShortPreamble = pDrvInfo->SPLCP;
 
-               rtl8192_UpdateReceivedRateHistogramStatistics(dev, stats);
+       rtl8192_UpdateReceivedRateHistogramStatistics(dev, stats);
 
-               stats->bIsAMPDU = (pDrvInfo->PartAggr == 1);
-               stats->bFirstMPDU = (pDrvInfo->PartAggr == 1) &&
-                                   (pDrvInfo->FirstAGGR == 1);
+       stats->bIsAMPDU = (pDrvInfo->PartAggr == 1);
+       stats->bFirstMPDU = (pDrvInfo->PartAggr == 1) &&
+                           (pDrvInfo->FirstAGGR == 1);
 
-               stats->TimeStampLow = pDrvInfo->TSFL;
-               stats->TimeStampHigh = read_nic_dword(dev, TSFR+4);
+       stats->TimeStampLow = pDrvInfo->TSFL;
+       stats->TimeStampHigh = read_nic_dword(dev, TSFR+4);
 
-               rtl819x_UpdateRxPktTimeStamp(dev, stats);
+       rtl819x_UpdateRxPktTimeStamp(dev, stats);
 
-               if ((stats->RxBufShift + stats->RxDrvInfoSize) > 0)
-                       stats->bShift = 1;
+       if ((stats->RxBufShift + stats->RxDrvInfoSize) > 0)
+               stats->bShift = 1;
 
-               stats->RxIs40MHzPacket = pDrvInfo->BW;
+       stats->RxIs40MHzPacket = pDrvInfo->BW;
 
-               rtl8192_TranslateRxSignalStuff(dev, skb, stats, pdesc,
-                                              pDrvInfo);
+       rtl8192_TranslateRxSignalStuff(dev, skb, stats, pdesc,
+                                      pDrvInfo);
 
-               if (pDrvInfo->FirstAGGR == 1 || pDrvInfo->PartAggr == 1)
-                       RT_TRACE(COMP_RXDESC,
-                                "pDrvInfo->FirstAGGR = %d, pDrvInfo->PartAggr = %d\n",
-                                pDrvInfo->FirstAGGR, pDrvInfo->PartAggr);
-               skb_trim(skb, skb->len - 4/*sCrcLng*/);
+       if (pDrvInfo->FirstAGGR == 1 || pDrvInfo->PartAggr == 1)
+               RT_TRACE(COMP_RXDESC,
+                        "pDrvInfo->FirstAGGR = %d, pDrvInfo->PartAggr = %d\n",
+                        pDrvInfo->FirstAGGR, pDrvInfo->PartAggr);
+       skb_trim(skb, skb->len - 4/*sCrcLng*/);
 
 
-               stats->packetlength = stats->Length-4;
-               stats->fraglength = stats->packetlength;
-               stats->fragoffset = 0;
-               stats->ntotalfrag = 1;
-               return true;
-       }
+       stats->packetlength = stats->Length-4;
+       stats->fraglength = stats->packetlength;
+       stats->fragoffset = 0;
+       stats->ntotalfrag = 1;
+       return true;
 }
 
 void rtl8192_halt_adapter(struct net_device *dev, bool reset)
@@ -2314,8 +2313,7 @@ bool rtl8192_HalRxCheckStuck(struct net_device *dev)
          (priv->undecorated_smoothed_pwdb >= RateAdaptiveTH_Low_20M)))) {
                if (rx_chk_cnt < 2)
                        return bStuck;
-               else
-                       rx_chk_cnt = 0;
+               rx_chk_cnt = 0;
        } else if ((((priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20) &&
                  (priv->undecorated_smoothed_pwdb < RateAdaptiveTH_Low_40M)) ||
                ((priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20) &&
@@ -2323,13 +2321,11 @@ bool rtl8192_HalRxCheckStuck(struct net_device *dev)
                priv->undecorated_smoothed_pwdb >= VeryLowRSSI) {
                if (rx_chk_cnt < 4)
                        return bStuck;
-               else
-                       rx_chk_cnt = 0;
+               rx_chk_cnt = 0;
        } else {
                if (rx_chk_cnt < 8)
                        return bStuck;
-               else
-                       rx_chk_cnt = 0;
+               rx_chk_cnt = 0;
        }
 
 
index 1d9b7a1..312979f 100644 (file)
@@ -940,13 +940,11 @@ static u8 rtl8192_phy_SwChnlStepByStep(struct net_device *dev, u8 channel,
                        }
 
                        if (CurrentCmd && CurrentCmd->CmdID == CmdID_End) {
-                               if ((*stage) == 2) {
+                               if ((*stage) == 2)
                                        return true;
-                               } else {
-                                       (*stage)++;
-                                       (*step) = 0;
-                                       continue;
-                               }
+                               (*stage)++;
+                               (*step) = 0;
+                               continue;
                        }
 
                        if (!CurrentCmd)
index 8b5f608..41b025e 100644 (file)
@@ -116,11 +116,10 @@ void setKey(struct net_device *dev, u8 EntryNo, u8 KeyIndex, u16 KeyType,
                                RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",
                                        __func__);
                                return;
-                       } else {
-                               down(&priv->rtllib->ips_sem);
-                               IPSLeave(dev);
-                               up(&priv->rtllib->ips_sem);
                        }
+                       down(&priv->rtllib->ips_sem);
+                       IPSLeave(dev);
+                       up(&priv->rtllib->ips_sem);
                }
        }
        priv->rtllib->is_set_key = true;
index bcf7a9d..5f3e28b 100644 (file)
@@ -204,19 +204,18 @@ u8 read_nic_io_byte(struct net_device *dev, int x)
        bool    bIsLegalPage = false;
        u8      Data = 0;
 
-       if (u4bPage == 0) {
+       if (u4bPage == 0)
                return 0xff&inb(dev->base_addr + x);
-       } else {
-               bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage,
-                                                       &u1PageMask);
-               if (bIsLegalPage) {
-                       u8 u1bPsr = read_nic_io_byte(dev, PSR);
 
-                       write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) |
-                                         (u8)u4bPage));
-                       Data = read_nic_io_byte(dev, (x & 0xff));
-                       write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask));
-               }
+       bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage,
+                                                            &u1PageMask);
+       if (bIsLegalPage) {
+               u8 u1bPsr = read_nic_io_byte(dev, PSR);
+
+               write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) |
+                                 (u8)u4bPage));
+               Data = read_nic_io_byte(dev, (x & 0xff));
+               write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask));
        }
 
        return Data;
@@ -229,20 +228,17 @@ u16 read_nic_io_word(struct net_device *dev, int x)
        bool    bIsLegalPage = false;
        u16     Data = 0;
 
-       if (u4bPage == 0) {
+       if (u4bPage == 0)
                return inw(dev->base_addr + x);
-       } else {
-               bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage,
-                              &u1PageMask);
-               if (bIsLegalPage) {
-                       u8 u1bPsr = read_nic_io_byte(dev, PSR);
+       bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage,
+                                                            &u1PageMask);
+       if (bIsLegalPage) {
+               u8 u1bPsr = read_nic_io_byte(dev, PSR);
 
-                       write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) |
-                                         (u8)u4bPage));
-                       Data = read_nic_io_word(dev, (x & 0xff));
-                       write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask));
-
-               }
+               write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) |
+                                 (u8)u4bPage));
+               Data = read_nic_io_word(dev, (x & 0xff));
+               write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask));
        }
 
        return Data;
@@ -255,20 +251,17 @@ u32 read_nic_io_dword(struct net_device *dev, int x)
        bool    bIsLegalPage = false;
        u32     Data = 0;
 
-       if (u4bPage == 0) {
+       if (u4bPage == 0)
                return inl(dev->base_addr + x);
-       } else {
-               bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage,
-                              &u1PageMask);
-               if (bIsLegalPage) {
-                       u8 u1bPsr = read_nic_io_byte(dev, PSR);
-
-                       write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) |
-                                         (u8)u4bPage));
-                       Data = read_nic_io_dword(dev, (x & 0xff));
-                       write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask));
+       bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage,
+                      &u1PageMask);
+       if (bIsLegalPage) {
+               u8 u1bPsr = read_nic_io_byte(dev, PSR);
 
-               }
+               write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) |
+                                 (u8)u4bPage));
+               Data = read_nic_io_dword(dev, (x & 0xff));
+               write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask));
        }
 
        return Data;
@@ -1331,11 +1324,11 @@ static short rtl8192_init(struct net_device *dev)
            dev->name, dev)) {
                netdev_err(dev, "Error allocating IRQ %d", dev->irq);
                return -1;
-       } else {
-               priv->irq = dev->irq;
-               RT_TRACE(COMP_INIT, "IRQ %d\n", dev->irq);
        }
 
+       priv->irq = dev->irq;
+       RT_TRACE(COMP_INIT, "IRQ %d\n", dev->irq);
+
        if (rtl8192_pci_initdescring(dev) != 0) {
                netdev_err(dev, "Endopoints initialization failed");
                free_irq(dev->irq, dev);
@@ -1932,17 +1925,16 @@ int rtl8192_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
        if (queue_index == TXCMD_QUEUE) {
                rtl8192_tx_cmd(dev, skb);
                return 0;
-       } else {
-               tcb_desc->RATRIndex = 7;
-               tcb_desc->bTxDisableRateFallBack = 1;
-               tcb_desc->bTxUseDriverAssingedRate = 1;
-               tcb_desc->bTxEnableFwCalcDur = 1;
-               skb_push(skb, priv->rtllib->tx_headroom);
-               ret = rtl8192_tx(dev, skb);
-               if (ret != 0)
-                       kfree_skb(skb);
        }
 
+       tcb_desc->RATRIndex = 7;
+       tcb_desc->bTxDisableRateFallBack = 1;
+       tcb_desc->bTxUseDriverAssingedRate = 1;
+       tcb_desc->bTxEnableFwCalcDur = 1;
+       skb_push(skb, priv->rtllib->tx_headroom);
+       ret = rtl8192_tx(dev, skb);
+       if (ret != 0)
+               kfree_skb(skb);
        return ret;
 }
 
@@ -2338,76 +2330,73 @@ static void rtl8192_rx_normal(struct net_device *dev)
                                        [priv->rx_idx[rx_queue_idx]];
                struct sk_buff *skb = priv->rx_buf[rx_queue_idx]
                                      [priv->rx_idx[rx_queue_idx]];
+               struct sk_buff *new_skb;
 
-               if (pdesc->OWN) {
+               if (pdesc->OWN)
                        return;
-               } else {
-                       struct sk_buff *new_skb;
-
-                       if (!priv->ops->rx_query_status_descriptor(dev, &stats,
-                       pdesc, skb))
-                               goto done;
-                       new_skb = dev_alloc_skb(priv->rxbuffersize);
-                       /* if allocation of new skb failed - drop current packet
-                       * and reuse skb */
-                       if (unlikely(!new_skb))
-                               goto done;
-
-                       pci_unmap_single(priv->pdev,
-                                       *((dma_addr_t *)skb->cb),
-                                       priv->rxbuffersize,
-                                       PCI_DMA_FROMDEVICE);
-
-                       skb_put(skb, pdesc->Length);
-                       skb_reserve(skb, stats.RxDrvInfoSize +
-                               stats.RxBufShift);
-                       skb_trim(skb, skb->len - 4/*sCrcLng*/);
-                       rtllib_hdr = (struct rtllib_hdr_1addr *)skb->data;
-                       if (!is_multicast_ether_addr(rtllib_hdr->addr1)) {
-                               /* unicast packet */
-                               unicast_packet = true;
-                       }
-                       fc = le16_to_cpu(rtllib_hdr->frame_ctl);
-                       type = WLAN_FC_GET_TYPE(fc);
-                       if (type == RTLLIB_FTYPE_MGMT)
-                               bLedBlinking = false;
-
-                       if (bLedBlinking)
-                               if (priv->rtllib->LedControlHandler)
-                                       priv->rtllib->LedControlHandler(dev,
-                                                               LED_CTL_RX);
-
-                       if (stats.bCRC) {
-                               if (type != RTLLIB_FTYPE_MGMT)
-                                       priv->stats.rxdatacrcerr++;
-                               else
-                                       priv->stats.rxmgmtcrcerr++;
-                       }
-
-                       skb_len = skb->len;
+               if (!priv->ops->rx_query_status_descriptor(dev, &stats,
+               pdesc, skb))
+                       goto done;
+               new_skb = dev_alloc_skb(priv->rxbuffersize);
+               /* if allocation of new skb failed - drop current packet
+               * and reuse skb */
+               if (unlikely(!new_skb))
+                       goto done;
+
+               pci_unmap_single(priv->pdev,
+                               *((dma_addr_t *)skb->cb),
+                               priv->rxbuffersize,
+                               PCI_DMA_FROMDEVICE);
+
+               skb_put(skb, pdesc->Length);
+               skb_reserve(skb, stats.RxDrvInfoSize +
+                       stats.RxBufShift);
+               skb_trim(skb, skb->len - 4/*sCrcLng*/);
+               rtllib_hdr = (struct rtllib_hdr_1addr *)skb->data;
+               if (!is_multicast_ether_addr(rtllib_hdr->addr1)) {
+                       /* unicast packet */
+                       unicast_packet = true;
+               }
+               fc = le16_to_cpu(rtllib_hdr->frame_ctl);
+               type = WLAN_FC_GET_TYPE(fc);
+               if (type == RTLLIB_FTYPE_MGMT)
+                       bLedBlinking = false;
+
+               if (bLedBlinking)
+                       if (priv->rtllib->LedControlHandler)
+                               priv->rtllib->LedControlHandler(dev,
+                                                       LED_CTL_RX);
+
+               if (stats.bCRC) {
+                       if (type != RTLLIB_FTYPE_MGMT)
+                               priv->stats.rxdatacrcerr++;
+                       else
+                               priv->stats.rxmgmtcrcerr++;
+               }
 
-                       if (!rtllib_rx(priv->rtllib, skb, &stats)) {
-                               dev_kfree_skb_any(skb);
-                       } else {
-                               priv->stats.rxok++;
-                               if (unicast_packet)
-                                       priv->stats.rxbytesunicast += skb_len;
-                       }
+               skb_len = skb->len;
 
-                       skb = new_skb;
-                       skb->dev = dev;
+               if (!rtllib_rx(priv->rtllib, skb, &stats)) {
+                       dev_kfree_skb_any(skb);
+               } else {
+                       priv->stats.rxok++;
+                       if (unicast_packet)
+                               priv->stats.rxbytesunicast += skb_len;
+               }
 
-                       priv->rx_buf[rx_queue_idx][priv->rx_idx[rx_queue_idx]] =
-                                                                        skb;
-                       *((dma_addr_t *) skb->cb) = pci_map_single(priv->pdev,
-                                                   skb_tail_pointer_rsl(skb),
-                                                   priv->rxbuffersize,
-                                                   PCI_DMA_FROMDEVICE);
-                       if (pci_dma_mapping_error(priv->pdev,
-                                                 *((dma_addr_t *)skb->cb))) {
-                               dev_kfree_skb_any(skb);
-                               return;
-                       }
+               skb = new_skb;
+               skb->dev = dev;
+
+               priv->rx_buf[rx_queue_idx][priv->rx_idx[rx_queue_idx]] =
+                                                                skb;
+               *((dma_addr_t *) skb->cb) = pci_map_single(priv->pdev,
+                                           skb_tail_pointer_rsl(skb),
+                                           priv->rxbuffersize,
+                                           PCI_DMA_FROMDEVICE);
+               if (pci_dma_mapping_error(priv->pdev,
+                                         *((dma_addr_t *)skb->cb))) {
+                       dev_kfree_skb_any(skb);
+                       return;
                }
 done:
                pdesc->BufferAddress = *((dma_addr_t *)skb->cb);
index aa95e88..b26dfcb 100644 (file)
@@ -378,19 +378,16 @@ static void dm_bandwidth_autoswitch(struct net_device *dev)
        struct r8192_priv *priv = rtllib_priv(dev);
 
        if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20 ||
-          !priv->rtllib->bandwidth_auto_switch.bautoswitch_enable) {
+          !priv->rtllib->bandwidth_auto_switch.bautoswitch_enable)
                return;
+       if (priv->rtllib->bandwidth_auto_switch.bforced_tx20Mhz == false) {
+               if (priv->undecorated_smoothed_pwdb <=
+                   priv->rtllib->bandwidth_auto_switch.threshold_40Mhzto20Mhz)
+                       priv->rtllib->bandwidth_auto_switch.bforced_tx20Mhz = true;
        } else {
-               if (priv->rtllib->bandwidth_auto_switch.bforced_tx20Mhz == false) {
-                       if (priv->undecorated_smoothed_pwdb <=
-                           priv->rtllib->bandwidth_auto_switch.threshold_40Mhzto20Mhz)
-                               priv->rtllib->bandwidth_auto_switch.bforced_tx20Mhz = true;
-               } else {
-                       if (priv->undecorated_smoothed_pwdb >=
-                           priv->rtllib->bandwidth_auto_switch.threshold_20Mhzto40Mhz)
-                               priv->rtllib->bandwidth_auto_switch.bforced_tx20Mhz = false;
-
-               }
+               if (priv->undecorated_smoothed_pwdb >=
+                   priv->rtllib->bandwidth_auto_switch.threshold_20Mhzto40Mhz)
+                       priv->rtllib->bandwidth_auto_switch.bforced_tx20Mhz = false;
        }
 }
 
@@ -581,148 +578,148 @@ static void dm_TXPowerTrackingCallback_TSSI(struct net_device *dev)
                                         "priv->CCKPresentAttentuation = %d\n",
                                         priv->CCKPresentAttentuation);
                                return;
-                       } else {
-                               if (Avg_TSSI_Meas_from_driver < TSSI_13dBm - E_FOR_TX_POWER_TRACK) {
-                                       if (RF_Type == RF_2T4R) {
-
-                                               if ((priv->rfa_txpowertrackingindex > 0) &&
-                                                   (priv->rfc_txpowertrackingindex > 0)) {
-                                                       priv->rfa_txpowertrackingindex--;
-                                                       if (priv->rfa_txpowertrackingindex_real > 4) {
-                                                               priv->rfa_txpowertrackingindex_real--;
-                                                               rtl8192_setBBreg(dev,
-                                                                        rOFDM0_XATxIQImbalance,
-                                                                        bMaskDWord,
-                                                                        priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value);
-                                                       }
-
-                                                       priv->rfc_txpowertrackingindex--;
-                                                       if (priv->rfc_txpowertrackingindex_real > 4) {
-                                                               priv->rfc_txpowertrackingindex_real--;
-                                                               rtl8192_setBBreg(dev,
-                                                                        rOFDM0_XCTxIQImbalance,
-                                                                        bMaskDWord,
-                                                                        priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value);
-                                                       }
-                                               } else {
-                                                       rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance,
-                                                                        bMaskDWord,
-                                                                        priv->txbbgain_table[4].txbbgain_value);
-                                                       rtl8192_setBBreg(dev,
-                                                                        rOFDM0_XCTxIQImbalance,
-                                                                        bMaskDWord, priv->txbbgain_table[4].txbbgain_value);
-                                               }
-                                       } else {
-                                               if (priv->rfa_txpowertrackingindex > 0) {
-                                                       priv->rfa_txpowertrackingindex--;
-                                                       if (priv->rfa_txpowertrackingindex_real > 4) {
-                                                               priv->rfa_txpowertrackingindex_real--;
-                                                               rtl8192_setBBreg(dev,
-                                                                                rOFDM0_XATxIQImbalance,
-                                                                                bMaskDWord,
-                                                                                priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value);
-                                                       }
-                                               } else
-                                                       rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance,
-                                                                        bMaskDWord, priv->txbbgain_table[4].txbbgain_value);
+                       }
+                       if (Avg_TSSI_Meas_from_driver < TSSI_13dBm - E_FOR_TX_POWER_TRACK) {
+                               if (RF_Type == RF_2T4R) {
 
-                                       }
-                               } else {
-                                       if (RF_Type == RF_2T4R) {
-                                               if ((priv->rfa_txpowertrackingindex <
-                                                   TxBBGainTableLength - 1) &&
-                                                   (priv->rfc_txpowertrackingindex <
-                                                   TxBBGainTableLength - 1)) {
-                                                       priv->rfa_txpowertrackingindex++;
-                                                       priv->rfa_txpowertrackingindex_real++;
+                                       if ((priv->rfa_txpowertrackingindex > 0) &&
+                                           (priv->rfc_txpowertrackingindex > 0)) {
+                                               priv->rfa_txpowertrackingindex--;
+                                               if (priv->rfa_txpowertrackingindex_real > 4) {
+                                                       priv->rfa_txpowertrackingindex_real--;
                                                        rtl8192_setBBreg(dev,
                                                                 rOFDM0_XATxIQImbalance,
                                                                 bMaskDWord,
-                                                                priv->txbbgain_table
-                                                                [priv->rfa_txpowertrackingindex_real].txbbgain_value);
-                                                       priv->rfc_txpowertrackingindex++;
-                                                       priv->rfc_txpowertrackingindex_real++;
+                                                                priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value);
+                                               }
+
+                                               priv->rfc_txpowertrackingindex--;
+                                               if (priv->rfc_txpowertrackingindex_real > 4) {
+                                                       priv->rfc_txpowertrackingindex_real--;
                                                        rtl8192_setBBreg(dev,
                                                                 rOFDM0_XCTxIQImbalance,
                                                                 bMaskDWord,
                                                                 priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value);
-                                               } else {
-                                                       rtl8192_setBBreg(dev,
-                                                                rOFDM0_XATxIQImbalance,
-                                                                bMaskDWord,
-                                                                priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value);
-                                                       rtl8192_setBBreg(dev,
-                                                                rOFDM0_XCTxIQImbalance,
-                                                                bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value);
                                                }
                                        } else {
-                                               if (priv->rfa_txpowertrackingindex < (TxBBGainTableLength - 1)) {
-                                                       priv->rfa_txpowertrackingindex++;
-                                                       priv->rfa_txpowertrackingindex_real++;
-                                                       rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance,
+                                               rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance,
+                                                                bMaskDWord,
+                                                                priv->txbbgain_table[4].txbbgain_value);
+                                               rtl8192_setBBreg(dev,
+                                                                rOFDM0_XCTxIQImbalance,
+                                                                bMaskDWord, priv->txbbgain_table[4].txbbgain_value);
+                                       }
+                               } else {
+                                       if (priv->rfa_txpowertrackingindex > 0) {
+                                               priv->rfa_txpowertrackingindex--;
+                                               if (priv->rfa_txpowertrackingindex_real > 4) {
+                                                       priv->rfa_txpowertrackingindex_real--;
+                                                       rtl8192_setBBreg(dev,
+                                                                        rOFDM0_XATxIQImbalance,
                                                                         bMaskDWord,
                                                                         priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value);
-                                               } else
-                                                       rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance,
-                                                                        bMaskDWord,
-                                                                        priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value);
-                                       }
+                                               }
+                                       } else
+                                               rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance,
+                                                                bMaskDWord, priv->txbbgain_table[4].txbbgain_value);
+
                                }
+                       } else {
                                if (RF_Type == RF_2T4R) {
-                                       priv->CCKPresentAttentuation_difference
-                                               = priv->rfa_txpowertrackingindex - priv->rfa_txpowertracking_default;
+                                       if ((priv->rfa_txpowertrackingindex <
+                                           TxBBGainTableLength - 1) &&
+                                           (priv->rfc_txpowertrackingindex <
+                                           TxBBGainTableLength - 1)) {
+                                               priv->rfa_txpowertrackingindex++;
+                                               priv->rfa_txpowertrackingindex_real++;
+                                               rtl8192_setBBreg(dev,
+                                                        rOFDM0_XATxIQImbalance,
+                                                        bMaskDWord,
+                                                        priv->txbbgain_table
+                                                        [priv->rfa_txpowertrackingindex_real].txbbgain_value);
+                                               priv->rfc_txpowertrackingindex++;
+                                               priv->rfc_txpowertrackingindex_real++;
+                                               rtl8192_setBBreg(dev,
+                                                        rOFDM0_XCTxIQImbalance,
+                                                        bMaskDWord,
+                                                        priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value);
+                                       } else {
+                                               rtl8192_setBBreg(dev,
+                                                        rOFDM0_XATxIQImbalance,
+                                                        bMaskDWord,
+                                                        priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value);
+                                               rtl8192_setBBreg(dev,
+                                                        rOFDM0_XCTxIQImbalance,
+                                                        bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value);
+                                       }
                                } else {
-                                       priv->CCKPresentAttentuation_difference
-                                               = priv->rfa_txpowertrackingindex_real - priv->rfa_txpowertracking_default;
-                               }
-
-                               if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20)
-                                       priv->CCKPresentAttentuation =
-                                                priv->CCKPresentAttentuation_20Mdefault +
-                                                priv->CCKPresentAttentuation_difference;
-                               else
-                                       priv->CCKPresentAttentuation =
-                                                priv->CCKPresentAttentuation_40Mdefault +
-                                                priv->CCKPresentAttentuation_difference;
-
-                               if (priv->CCKPresentAttentuation > (CCKTxBBGainTableLength-1))
-                                       priv->CCKPresentAttentuation = CCKTxBBGainTableLength-1;
-                               if (priv->CCKPresentAttentuation < 0)
-                                       priv->CCKPresentAttentuation = 0;
-
-                               if (priv->CCKPresentAttentuation > -1 &&
-                                   priv->CCKPresentAttentuation < CCKTxBBGainTableLength) {
-                                       if (priv->rtllib->current_network.channel == 14 &&
-                                           !priv->bcck_in_ch14) {
-                                               priv->bcck_in_ch14 = true;
-                                               dm_cck_txpower_adjust(dev, priv->bcck_in_ch14);
-                                       } else if (priv->rtllib->current_network.channel != 14 && priv->bcck_in_ch14) {
-                                               priv->bcck_in_ch14 = false;
-                                               dm_cck_txpower_adjust(dev, priv->bcck_in_ch14);
+                                       if (priv->rfa_txpowertrackingindex < (TxBBGainTableLength - 1)) {
+                                               priv->rfa_txpowertrackingindex++;
+                                               priv->rfa_txpowertrackingindex_real++;
+                                               rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance,
+                                                                bMaskDWord,
+                                                                priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value);
                                        } else
-                                               dm_cck_txpower_adjust(dev, priv->bcck_in_ch14);
+                                               rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance,
+                                                                bMaskDWord,
+                                                                priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value);
                                }
-                               RT_TRACE(COMP_POWER_TRACKING,
-                                        "priv->rfa_txpowertrackingindex = %d\n",
-                                        priv->rfa_txpowertrackingindex);
-                               RT_TRACE(COMP_POWER_TRACKING,
-                                        "priv->rfa_txpowertrackingindex_real = %d\n",
-                                        priv->rfa_txpowertrackingindex_real);
-                               RT_TRACE(COMP_POWER_TRACKING,
-                                        "priv->CCKPresentAttentuation_difference = %d\n",
-                                        priv->CCKPresentAttentuation_difference);
-                               RT_TRACE(COMP_POWER_TRACKING,
-                                        "priv->CCKPresentAttentuation = %d\n",
-                                        priv->CCKPresentAttentuation);
+                       }
+                       if (RF_Type == RF_2T4R) {
+                               priv->CCKPresentAttentuation_difference
+                                       = priv->rfa_txpowertrackingindex - priv->rfa_txpowertracking_default;
+                       } else {
+                               priv->CCKPresentAttentuation_difference
+                                       = priv->rfa_txpowertrackingindex_real - priv->rfa_txpowertracking_default;
+                       }
 
-                               if (priv->CCKPresentAttentuation_difference <= -12 || priv->CCKPresentAttentuation_difference >= 24) {
-                                       priv->rtllib->bdynamic_txpower_enable = true;
-                                       write_nic_byte(dev, Pw_Track_Flag, 0);
-                                       write_nic_byte(dev, FW_Busy_Flag, 0);
-                                       RT_TRACE(COMP_POWER_TRACKING, "tx power track--->limited\n");
-                                       return;
-                               }
+                       if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20)
+                               priv->CCKPresentAttentuation =
+                                        priv->CCKPresentAttentuation_20Mdefault +
+                                        priv->CCKPresentAttentuation_difference;
+                       else
+                               priv->CCKPresentAttentuation =
+                                        priv->CCKPresentAttentuation_40Mdefault +
+                                        priv->CCKPresentAttentuation_difference;
+
+                       if (priv->CCKPresentAttentuation > (CCKTxBBGainTableLength-1))
+                               priv->CCKPresentAttentuation = CCKTxBBGainTableLength-1;
+                       if (priv->CCKPresentAttentuation < 0)
+                               priv->CCKPresentAttentuation = 0;
+
+                       if (priv->CCKPresentAttentuation > -1 &&
+                           priv->CCKPresentAttentuation < CCKTxBBGainTableLength) {
+                               if (priv->rtllib->current_network.channel == 14 &&
+                                   !priv->bcck_in_ch14) {
+                                       priv->bcck_in_ch14 = true;
+                                       dm_cck_txpower_adjust(dev, priv->bcck_in_ch14);
+                               } else if (priv->rtllib->current_network.channel != 14 && priv->bcck_in_ch14) {
+                                       priv->bcck_in_ch14 = false;
+                                       dm_cck_txpower_adjust(dev, priv->bcck_in_ch14);
+                               } else
+                                       dm_cck_txpower_adjust(dev, priv->bcck_in_ch14);
+                       }
+                       RT_TRACE(COMP_POWER_TRACKING,
+                                "priv->rfa_txpowertrackingindex = %d\n",
+                                priv->rfa_txpowertrackingindex);
+                       RT_TRACE(COMP_POWER_TRACKING,
+                                "priv->rfa_txpowertrackingindex_real = %d\n",
+                                priv->rfa_txpowertrackingindex_real);
+                       RT_TRACE(COMP_POWER_TRACKING,
+                                "priv->CCKPresentAttentuation_difference = %d\n",
+                                priv->CCKPresentAttentuation_difference);
+                       RT_TRACE(COMP_POWER_TRACKING,
+                                "priv->CCKPresentAttentuation = %d\n",
+                                priv->CCKPresentAttentuation);
+
+                       if (priv->CCKPresentAttentuation_difference <= -12 || priv->CCKPresentAttentuation_difference >= 24) {
+                               priv->rtllib->bdynamic_txpower_enable = true;
+                               write_nic_byte(dev, Pw_Track_Flag, 0);
+                               write_nic_byte(dev, FW_Busy_Flag, 0);
+                               RT_TRACE(COMP_POWER_TRACKING, "tx power track--->limited\n");
+                               return;
                        }
+
                        write_nic_byte(dev, Pw_Track_Flag, 0);
                        Avg_TSSI_Meas_from_driver = 0;
                        for (k = 0; k < 5; k++)
@@ -1401,13 +1398,12 @@ static void dm_CheckTXPowerTracking_ThermalMeter(struct net_device *dev)
                TxPowerCheckCnt = 5;
        else
                TxPowerCheckCnt = 2;
-       if (!priv->btxpower_tracking) {
+       if (!priv->btxpower_tracking)
+               return;
+
+       if (priv->txpower_count  <= TxPowerCheckCnt) {
+               priv->txpower_count++;
                return;
-       } else {
-               if (priv->txpower_count  <= TxPowerCheckCnt) {
-                       priv->txpower_count++;
-                       return;
-               }
        }
 
        if (!TM_Trigger) {
@@ -1419,15 +1415,12 @@ static void dm_CheckTXPowerTracking_ThermalMeter(struct net_device *dev)
                }
                TM_Trigger = 1;
                return;
-       } else {
-               netdev_info(dev,
-                           "===============>Schedule TxPowerTrackingWorkItem\n");
-
-               queue_delayed_work_rsl(priv->priv_wq, &priv->txpower_tracking_wq, 0);
-               TM_Trigger = 0;
-               }
-
        }
+       netdev_info(dev, "===============>Schedule TxPowerTrackingWorkItem\n");
+       queue_delayed_work_rsl(priv->priv_wq, &priv->txpower_tracking_wq, 0);
+       TM_Trigger = 0;
+
+}
 
 static void dm_check_txpower_tracking(struct net_device *dev)
 {
@@ -1835,8 +1828,7 @@ static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm(
                if (dm_digtable.dig_state == DM_STA_DIG_OFF &&
                        (priv->reset_count == reset_cnt))
                        return;
-               else
-                       reset_cnt = priv->reset_count;
+               reset_cnt = priv->reset_count;
 
                dm_digtable.dig_highpwr_state = DM_STA_DIG_MAX;
                dm_digtable.dig_state = DM_STA_DIG_OFF;
@@ -1865,12 +1857,11 @@ static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm(
                    (priv->reset_count == reset_cnt)) {
                        dm_ctrl_initgain_byrssi_highpwr(dev);
                        return;
-               } else {
-                       if (priv->reset_count != reset_cnt)
-                               reset_flag = 1;
-
-                       reset_cnt = priv->reset_count;
                }
+               if (priv->reset_count != reset_cnt)
+                       reset_flag = 1;
+
+               reset_cnt = priv->reset_count;
 
                dm_digtable.dig_state = DM_STA_DIG_ON;
 
@@ -1912,8 +1903,7 @@ static void dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev)
                if (dm_digtable.dig_highpwr_state == DM_STA_DIG_ON &&
                        (priv->reset_count == reset_cnt_highpwr))
                        return;
-               else
-                       dm_digtable.dig_highpwr_state = DM_STA_DIG_ON;
+               dm_digtable.dig_highpwr_state = DM_STA_DIG_ON;
 
                if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)
                                write_nic_byte(dev, (rOFDM0_XATxAFE+3), 0x10);
@@ -1923,8 +1913,7 @@ static void dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev)
                if (dm_digtable.dig_highpwr_state == DM_STA_DIG_OFF &&
                        (priv->reset_count == reset_cnt_highpwr))
                        return;
-               else
-                       dm_digtable.dig_highpwr_state = DM_STA_DIG_OFF;
+               dm_digtable.dig_highpwr_state = DM_STA_DIG_OFF;
 
                if (priv->undecorated_smoothed_pwdb < dm_digtable.rssi_high_power_lowthresh &&
                         priv->undecorated_smoothed_pwdb >= dm_digtable.rssi_high_thresh) {
index 40c3be9..0bbffec 100644 (file)
@@ -202,12 +202,11 @@ void rtllib_ips_leave_wq(struct net_device *dev)
                                RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",
                                         __func__);
                                return;
-                       } else {
-                               netdev_info(dev, "=========>%s(): IPSLeave\n",
-                                           __func__);
-                               queue_work_rsl(priv->rtllib->wq,
-                                              &priv->rtllib->ips_leave_wq);
                        }
+                       netdev_info(dev, "=========>%s(): IPSLeave\n",
+                                   __func__);
+                       queue_work_rsl(priv->rtllib->wq,
+                                      &priv->rtllib->ips_leave_wq);
                }
        }
 }
index d074f97..04f1f26 100644 (file)
@@ -346,14 +346,12 @@ static int r8192_wx_set_mode(struct net_device *dev, struct iw_request_info *a,
                                                 __func__);
                                        up(&priv->wx_sem);
                                        return -1;
-                               } else {
-                                       netdev_info(dev,
-                                                   "=========>%s(): IPSLeave\n",
-                                                   __func__);
-                                       down(&priv->rtllib->ips_sem);
-                                       IPSLeave(dev);
-                                       up(&priv->rtllib->ips_sem);
                                }
+                               netdev_info(dev,  "=========>%s(): IPSLeave\n",
+                                           __func__);
+                               down(&priv->rtllib->ips_sem);
+                               IPSLeave(dev);
+                               up(&priv->rtllib->ips_sem);
                        }
                }
        }
@@ -509,14 +507,12 @@ static int r8192_wx_set_scan(struct net_device *dev, struct iw_request_info *a,
                                                 __func__);
                                        up(&priv->wx_sem);
                                        return -1;
-                               } else {
-                                       RT_TRACE(COMP_PS,
-                                                "=========>%s(): IPSLeave\n",
-                                                __func__);
-                                       down(&priv->rtllib->ips_sem);
-                                       IPSLeave(dev);
-                                       up(&priv->rtllib->ips_sem);
                                }
+                               RT_TRACE(COMP_PS, "=========>%s(): IPSLeave\n",
+                                        __func__);
+                               down(&priv->rtllib->ips_sem);
+                               IPSLeave(dev);
+                               up(&priv->rtllib->ips_sem);
                        }
                }
                rtllib_stop_scan(priv->rtllib);
index 9820dd2..573325c 100644 (file)
@@ -135,25 +135,22 @@ u16  TxCountToDataRate(struct rtllib_device *ieee, u8 nDataRate)
        u8      is40MHz = 0;
        u8      isShortGI = 0;
 
-       if (nDataRate < 12) {
+       if (nDataRate < 12)
                return CCKOFDMRate[nDataRate];
-       } else {
-               if (nDataRate >= 0x10 && nDataRate <= 0x1f) {
-                       is40MHz = 0;
-                       isShortGI = 0;
-               } else if (nDataRate >= 0x20  && nDataRate <= 0x2f) {
-                       is40MHz = 1;
-                       isShortGI = 0;
-
-               } else if (nDataRate >= 0x30  && nDataRate <= 0x3f) {
-                       is40MHz = 0;
-                       isShortGI = 1;
-               } else if (nDataRate >= 0x40  && nDataRate <= 0x4f) {
-                       is40MHz = 1;
-                       isShortGI = 1;
-               }
-               return MCS_DATA_RATE[is40MHz][isShortGI][nDataRate&0xf];
+       if (nDataRate >= 0x10 && nDataRate <= 0x1f) {
+               is40MHz = 0;
+               isShortGI = 0;
+       } else if (nDataRate >= 0x20  && nDataRate <= 0x2f) {
+               is40MHz = 1;
+               isShortGI = 0;
+       } else if (nDataRate >= 0x30  && nDataRate <= 0x3f) {
+               is40MHz = 0;
+               isShortGI = 1;
+       } else if (nDataRate >= 0x40  && nDataRate <= 0x4f) {
+               is40MHz = 1;
+               isShortGI = 1;
        }
+       return MCS_DATA_RATE[is40MHz][isShortGI][nDataRate&0xf];
 }
 
 bool IsHTHalfNmodeAPs(struct rtllib_device *ieee)
index 735ae60..7d77d05 100644 (file)
@@ -311,6 +311,11 @@ bool GetTs(struct rtllib_device *ieee, struct ts_common_info **ppTS,
           u8 *Addr, u8 TID, enum tr_select TxRxSelect, bool bAddNewTs)
 {
        u8      UP = 0;
+       union tspec_body TSpec;
+       union qos_tsinfo *pTSInfo = &TSpec.f.TSInfo;
+       struct list_head *pUnusedList;
+       struct list_head *pAddmitList;
+       enum direction_value Dir;
 
        if (is_multicast_ether_addr(Addr)) {
                RTLLIB_DEBUG(RTLLIB_DL_ERR,
@@ -348,75 +353,70 @@ bool GetTs(struct rtllib_device *ieee, struct ts_common_info **ppTS,
        }
 
        *ppTS = SearchAdmitTRStream(ieee, Addr, UP, TxRxSelect);
-       if (*ppTS != NULL) {
+       if (*ppTS != NULL)
                return true;
-       } else {
-               if (!bAddNewTs) {
-                       RTLLIB_DEBUG(RTLLIB_DL_TS,
-                                    "add new TS failed(tid:%d)\n", UP);
-                       return false;
-               } else {
-                       union tspec_body TSpec;
-                       union qos_tsinfo *pTSInfo = &TSpec.f.TSInfo;
-                       struct list_head *pUnusedList =
-                               (TxRxSelect == TX_DIR) ?
+
+       if (!bAddNewTs) {
+               RTLLIB_DEBUG(RTLLIB_DL_TS,
+                            "add new TS failed(tid:%d)\n", UP);
+               return false;
+       }
+
+       pUnusedList = (TxRxSelect == TX_DIR) ?
                                (&ieee->Tx_TS_Unused_List) :
                                (&ieee->Rx_TS_Unused_List);
 
-                       struct list_head *pAddmitList =
-                               (TxRxSelect == TX_DIR) ?
+       pAddmitList = (TxRxSelect == TX_DIR) ?
                                (&ieee->Tx_TS_Admit_List) :
                                (&ieee->Rx_TS_Admit_List);
 
-                       enum direction_value Dir =
-                                (ieee->iw_mode == IW_MODE_MASTER) ?
-                                ((TxRxSelect == TX_DIR) ? DIR_DOWN : DIR_UP) :
-                                ((TxRxSelect == TX_DIR) ? DIR_UP : DIR_DOWN);
-                       RTLLIB_DEBUG(RTLLIB_DL_TS, "to add Ts\n");
-                       if (!list_empty(pUnusedList)) {
-                               (*ppTS) = list_entry(pUnusedList->next,
-                                         struct ts_common_info, List);
-                               list_del_init(&(*ppTS)->List);
-                               if (TxRxSelect == TX_DIR) {
-                                       struct tx_ts_record *tmp =
-                                               container_of(*ppTS,
-                                               struct tx_ts_record,
-                                               TsCommonInfo);
-                                       ResetTxTsEntry(tmp);
-                               } else {
-                                       struct rx_ts_record *tmp =
-                                                container_of(*ppTS,
-                                                struct rx_ts_record,
-                                                TsCommonInfo);
-                                       ResetRxTsEntry(tmp);
-                               }
-
-                               RTLLIB_DEBUG(RTLLIB_DL_TS,
-                                            "to init current TS, UP:%d, Dir:%d, addr: %pM ppTs=%p\n",
-                                            UP, Dir, Addr, *ppTS);
-                               pTSInfo->field.ucTrafficType = 0;
-                               pTSInfo->field.ucTSID = UP;
-                               pTSInfo->field.ucDirection = Dir;
-                               pTSInfo->field.ucAccessPolicy = 1;
-                               pTSInfo->field.ucAggregation = 0;
-                               pTSInfo->field.ucPSB = 0;
-                               pTSInfo->field.ucUP = UP;
-                               pTSInfo->field.ucTSInfoAckPolicy = 0;
-                               pTSInfo->field.ucSchedule = 0;
-
-                               MakeTSEntry(*ppTS, Addr, &TSpec, NULL, 0, 0);
-                               AdmitTS(ieee, *ppTS, 0);
-                               list_add_tail(&((*ppTS)->List), pAddmitList);
-
-                               return true;
-                       } else {
-                               RTLLIB_DEBUG(RTLLIB_DL_ERR,
-                                            "ERR!!in function %s() There is not enough dir=%d(0=up down=1) TS record to be used!!",
-                                            __func__, Dir);
-                               return false;
-                       }
+       Dir = (ieee->iw_mode == IW_MODE_MASTER) ?
+                               ((TxRxSelect == TX_DIR) ? DIR_DOWN : DIR_UP) :
+                               ((TxRxSelect == TX_DIR) ? DIR_UP : DIR_DOWN);
+
+       RTLLIB_DEBUG(RTLLIB_DL_TS, "to add Ts\n");
+       if (!list_empty(pUnusedList)) {
+               (*ppTS) = list_entry(pUnusedList->next,
+                         struct ts_common_info, List);
+               list_del_init(&(*ppTS)->List);
+               if (TxRxSelect == TX_DIR) {
+                       struct tx_ts_record *tmp =
+                               container_of(*ppTS,
+                               struct tx_ts_record,
+                               TsCommonInfo);
+                       ResetTxTsEntry(tmp);
+               } else {
+                       struct rx_ts_record *tmp =
+                                container_of(*ppTS,
+                                struct rx_ts_record,
+                                TsCommonInfo);
+                       ResetRxTsEntry(tmp);
                }
+
+               RTLLIB_DEBUG(RTLLIB_DL_TS,
+                            "to init current TS, UP:%d, Dir:%d, addr: %pM ppTs=%p\n",
+                            UP, Dir, Addr, *ppTS);
+               pTSInfo->field.ucTrafficType = 0;
+               pTSInfo->field.ucTSID = UP;
+               pTSInfo->field.ucDirection = Dir;
+               pTSInfo->field.ucAccessPolicy = 1;
+               pTSInfo->field.ucAggregation = 0;
+               pTSInfo->field.ucPSB = 0;
+               pTSInfo->field.ucUP = UP;
+               pTSInfo->field.ucTSInfoAckPolicy = 0;
+               pTSInfo->field.ucSchedule = 0;
+
+               MakeTSEntry(*ppTS, Addr, &TSpec, NULL, 0, 0);
+               AdmitTS(ieee, *ppTS, 0);
+               list_add_tail(&((*ppTS)->List), pAddmitList);
+
+               return true;
        }
+
+       RTLLIB_DEBUG(RTLLIB_DL_ERR,
+                    "ERR!!in function %s() There is not enough dir=%d(0=up down=1) TS record to be used!!",
+                    __func__, Dir);
+       return false;
 }
 
 static void RemoveTsEntry(struct rtllib_device *ieee, struct ts_common_info *pTs,
index 9fc6353..2592bd1 100644 (file)
@@ -783,74 +783,74 @@ static u8 parse_subframe(struct rtllib_device *ieee, struct sk_buff *skb,
                memcpy(rxb->dst, dst, ETH_ALEN);
                rxb->subframes[0]->dev = ieee->dev;
                return 1;
-       } else {
-               rxb->nr_subframes = 0;
-               memcpy(rxb->src, src, ETH_ALEN);
-               memcpy(rxb->dst, dst, ETH_ALEN);
-               while (skb->len > ETHERNET_HEADER_SIZE) {
-                       /* Offset 12 denote 2 mac address */
-                       nSubframe_Length = *((u16 *)(skb->data + 12));
-                       nSubframe_Length = (nSubframe_Length >> 8) +
-                                          (nSubframe_Length << 8);
-
-                       if (skb->len < (ETHERNET_HEADER_SIZE + nSubframe_Length)) {
-                               netdev_info(ieee->dev,
-                                           "%s: A-MSDU parse error!! pRfd->nTotalSubframe : %d\n",
-                                           __func__, rxb->nr_subframes);
-                               netdev_info(ieee->dev,
-                                           "%s: A-MSDU parse error!! Subframe Length: %d\n",
-                                           __func__, nSubframe_Length);
-                               netdev_info(ieee->dev,
-                                           "nRemain_Length is %d and nSubframe_Length is : %d\n",
-                                           skb->len, nSubframe_Length);
-                               netdev_info(ieee->dev,
-                                           "The Packet SeqNum is %d\n",
-                                           SeqNum);
-                               return 0;
-                       }
+       }
 
-                       /* move the data point to data content */
-                       skb_pull(skb, ETHERNET_HEADER_SIZE);
+       rxb->nr_subframes = 0;
+       memcpy(rxb->src, src, ETH_ALEN);
+       memcpy(rxb->dst, dst, ETH_ALEN);
+       while (skb->len > ETHERNET_HEADER_SIZE) {
+               /* Offset 12 denote 2 mac address */
+               nSubframe_Length = *((u16 *)(skb->data + 12));
+               nSubframe_Length = (nSubframe_Length >> 8) +
+                                  (nSubframe_Length << 8);
 
-                       /* altered by clark 3/30/2010
-                        * The struct buffer size of the skb indicated to upper layer
-                        * must be less than 5000, or the defraged IP datagram
-                        * in the IP layer will exceed "ipfrag_high_tresh" and be
-                        * discarded. so there must not use the function
-                        * "skb_copy" and "skb_clone" for "skb".
-                        */
+               if (skb->len < (ETHERNET_HEADER_SIZE + nSubframe_Length)) {
+                       netdev_info(ieee->dev,
+                                   "%s: A-MSDU parse error!! pRfd->nTotalSubframe : %d\n",
+                                   __func__, rxb->nr_subframes);
+                       netdev_info(ieee->dev,
+                                   "%s: A-MSDU parse error!! Subframe Length: %d\n",
+                                   __func__, nSubframe_Length);
+                       netdev_info(ieee->dev,
+                                   "nRemain_Length is %d and nSubframe_Length is : %d\n",
+                                   skb->len, nSubframe_Length);
+                       netdev_info(ieee->dev,
+                                   "The Packet SeqNum is %d\n",
+                                   SeqNum);
+                       return 0;
+               }
 
-                       /* Allocate new skb for releasing to upper layer */
-                       sub_skb = dev_alloc_skb(nSubframe_Length + 12);
-                       if (!sub_skb)
-                               return 0;
-                       skb_reserve(sub_skb, 12);
-                       data_ptr = (u8 *)skb_put(sub_skb, nSubframe_Length);
-                       memcpy(data_ptr, skb->data, nSubframe_Length);
-
-                       sub_skb->dev = ieee->dev;
-                       rxb->subframes[rxb->nr_subframes++] = sub_skb;
-                       if (rxb->nr_subframes >= MAX_SUBFRAME_COUNT) {
-                               RTLLIB_DEBUG_RX("ParseSubframe(): Too many Subframes! Packets dropped!\n");
-                               break;
-                       }
-                       skb_pull(skb, nSubframe_Length);
+               /* move the data point to data content */
+               skb_pull(skb, ETHERNET_HEADER_SIZE);
 
-                       if (skb->len != 0) {
-                               nPadding_Length = 4 - ((nSubframe_Length +
-                                                 ETHERNET_HEADER_SIZE) % 4);
-                               if (nPadding_Length == 4)
-                                       nPadding_Length = 0;
+               /* altered by clark 3/30/2010
+                * The struct buffer size of the skb indicated to upper layer
+                * must be less than 5000, or the defraged IP datagram
+                * in the IP layer will exceed "ipfrag_high_tresh" and be
+                * discarded. so there must not use the function
+                * "skb_copy" and "skb_clone" for "skb".
+                */
 
-                               if (skb->len < nPadding_Length)
-                                       return 0;
+               /* Allocate new skb for releasing to upper layer */
+               sub_skb = dev_alloc_skb(nSubframe_Length + 12);
+               if (!sub_skb)
+                       return 0;
+               skb_reserve(sub_skb, 12);
+               data_ptr = (u8 *)skb_put(sub_skb, nSubframe_Length);
+               memcpy(data_ptr, skb->data, nSubframe_Length);
 
-                               skb_pull(skb, nPadding_Length);
-                       }
+               sub_skb->dev = ieee->dev;
+               rxb->subframes[rxb->nr_subframes++] = sub_skb;
+               if (rxb->nr_subframes >= MAX_SUBFRAME_COUNT) {
+                       RTLLIB_DEBUG_RX("ParseSubframe(): Too many Subframes! Packets dropped!\n");
+                       break;
                }
+               skb_pull(skb, nSubframe_Length);
+
+               if (skb->len != 0) {
+                       nPadding_Length = 4 - ((nSubframe_Length +
+                                         ETHERNET_HEADER_SIZE) % 4);
+                       if (nPadding_Length == 4)
+                               nPadding_Length = 0;
 
-               return rxb->nr_subframes;
+                       if (skb->len < nPadding_Length)
+                               return 0;
+
+                       skb_pull(skb, nPadding_Length);
+               }
        }
+
+       return rxb->nr_subframes;
 }
 
 
index f1f19fc..70bdf1f 100644 (file)
@@ -2540,13 +2540,12 @@ static void rtllib_resume_tx(struct rtllib_device *ieee)
                if (ieee->queue_stop) {
                        ieee->tx_pending.frag = i;
                        return;
-               } else {
-
-                       ieee->softmac_data_hard_start_xmit(
-                               ieee->tx_pending.txb->fragments[i],
-                               ieee->dev, ieee->rate);
-                       ieee->stats.tx_packets++;
                }
+
+               ieee->softmac_data_hard_start_xmit(
+                       ieee->tx_pending.txb->fragments[i],
+                       ieee->dev, ieee->rate);
+               ieee->stats.tx_packets++;
        }
 
        rtllib_txb_free(ieee->tx_pending.txb);
index f6d0257..2e1aab1 100644 (file)
@@ -413,6 +413,8 @@ static void rtllib_query_protectionmode(struct rtllib_device *ieee,
                                        struct cb_desc *tcb_desc,
                                        struct sk_buff *skb)
 {
+       struct rt_hi_throughput *pHTInfo;
+
        tcb_desc->bRTSSTBC                      = false;
        tcb_desc->bRTSUseShortGI                = false;
        tcb_desc->bCTSEnable                    = false;
@@ -435,50 +437,50 @@ static void rtllib_query_protectionmode(struct rtllib_device *ieee,
                        tcb_desc->rts_rate = MGN_24M;
                }
                return;
-       } else {
-               struct rt_hi_throughput *pHTInfo = ieee->pHTInfo;
+       }
 
-               while (true) {
-                       if (pHTInfo->IOTAction & HT_IOT_ACT_FORCED_CTS2SELF) {
-                               tcb_desc->bCTSEnable    = true;
-                               tcb_desc->rts_rate  =   MGN_24M;
-                               tcb_desc->bRTSEnable = true;
-                               break;
-                       } else if (pHTInfo->IOTAction & (HT_IOT_ACT_FORCED_RTS |
-                                  HT_IOT_ACT_PURE_N_MODE)) {
-                               tcb_desc->bRTSEnable = true;
-                               tcb_desc->rts_rate  =   MGN_24M;
-                               break;
-                       }
-                       if (ieee->current_network.buseprotection) {
-                               tcb_desc->bRTSEnable = true;
-                               tcb_desc->bCTSEnable = true;
-                               tcb_desc->rts_rate = MGN_24M;
-                               break;
-                       }
-                       if (pHTInfo->bCurrentHTSupport  && pHTInfo->bEnableHT) {
-                               u8 HTOpMode = pHTInfo->CurrentOpMode;
-
-                               if ((pHTInfo->bCurBW40MHz && (HTOpMode == 2 ||
-                                    HTOpMode == 3)) ||
-                                    (!pHTInfo->bCurBW40MHz && HTOpMode == 3)) {
-                                       tcb_desc->rts_rate = MGN_24M;
-                                       tcb_desc->bRTSEnable = true;
-                                       break;
-                               }
-                       }
-                       if (skb->len > ieee->rts) {
+       pHTInfo = ieee->pHTInfo;
+
+       while (true) {
+               if (pHTInfo->IOTAction & HT_IOT_ACT_FORCED_CTS2SELF) {
+                       tcb_desc->bCTSEnable    = true;
+                       tcb_desc->rts_rate  =   MGN_24M;
+                       tcb_desc->bRTSEnable = true;
+                       break;
+               } else if (pHTInfo->IOTAction & (HT_IOT_ACT_FORCED_RTS |
+                          HT_IOT_ACT_PURE_N_MODE)) {
+                       tcb_desc->bRTSEnable = true;
+                       tcb_desc->rts_rate  =   MGN_24M;
+                       break;
+               }
+               if (ieee->current_network.buseprotection) {
+                       tcb_desc->bRTSEnable = true;
+                       tcb_desc->bCTSEnable = true;
+                       tcb_desc->rts_rate = MGN_24M;
+                       break;
+               }
+               if (pHTInfo->bCurrentHTSupport  && pHTInfo->bEnableHT) {
+                       u8 HTOpMode = pHTInfo->CurrentOpMode;
+
+                       if ((pHTInfo->bCurBW40MHz && (HTOpMode == 2 ||
+                            HTOpMode == 3)) ||
+                            (!pHTInfo->bCurBW40MHz && HTOpMode == 3)) {
                                tcb_desc->rts_rate = MGN_24M;
                                tcb_desc->bRTSEnable = true;
                                break;
                        }
-                       if (tcb_desc->bAMPDUEnable) {
-                               tcb_desc->rts_rate = MGN_24M;
-                               tcb_desc->bRTSEnable = false;
-                               break;
-                       }
-                       goto NO_PROTECTION;
                }
+               if (skb->len > ieee->rts) {
+                       tcb_desc->rts_rate = MGN_24M;
+                       tcb_desc->bRTSEnable = true;
+                       break;
+               }
+               if (tcb_desc->bAMPDUEnable) {
+                       tcb_desc->rts_rate = MGN_24M;
+                       tcb_desc->bRTSEnable = false;
+                       break;
+               }
+               goto NO_PROTECTION;
        }
        if (ieee->current_network.capability & WLAN_CAPABILITY_SHORT_PREAMBLE)
                tcb_desc->bUseShortPreamble = true;