]> Pileus Git - ~andy/linux/blobdiff - drivers/staging/rtl8192e/r8192E_core.c
staging: rtl8192e: Clean up rtl8192_hard_start_xmit()
[~andy/linux] / drivers / staging / rtl8192e / r8192E_core.c
index 58e7037b8b7258ddd9499059e07f78c01f0a836c..d5282fe86df56ccddead472475d7c7f134b685df 100644 (file)
@@ -253,18 +253,7 @@ static TX_FWINFO_T Tmp_TxFwInfo;
 
 void CamResetAllEntry(struct net_device *dev)
 {
-       //u8 ucIndex;
-       u32 ulcommand = 0;
-
-#if 1
-       ulcommand |= BIT31|BIT30;
-       write_nic_dword(dev, RWCAM, ulcommand);
-#else
-        for(ucIndex=0;ucIndex<TOTAL_CAM_ENTRY;ucIndex++)
-                CAM_mark_invalid(dev, ucIndex);
-        for(ucIndex=0;ucIndex<TOTAL_CAM_ENTRY;ucIndex++)
-                CAM_empty_entry(dev, ucIndex);
-#endif
+       write_nic_dword(dev, RWCAM, BIT31|BIT30);
 }
 
 
@@ -350,9 +339,6 @@ void write_nic_word(struct net_device *dev, int x,u16 y)
 
 u8 rtl8192e_ap_sec_type(struct ieee80211_device *ieee)
 {
-       //struct r8192_priv* priv = ieee80211_priv(dev);
-       //struct ieee80211_device *ieee = priv->ieee80211;
-
        static const u8 ccmp_ie[4] = {0x00,0x50,0xf2,0x04};
        static const u8 ccmp_rsn_ie[4] = {0x00, 0x0f, 0xac, 0x04};
        int wpa_ie_len= ieee->wpa_ie_len;
@@ -397,7 +383,6 @@ rtl8192e_SetHwReg(struct net_device *dev,u8 variable,u8* val)
                case HW_VAR_MEDIA_STATUS:
                {
                        RT_OP_MODE      OpMode = *((RT_OP_MODE *)(val));
-                       //LED_CTL_MODE  LedAction = LED_CTL_NO_LINK;
                        u8              btMsr = read_nic_byte(dev, MSR);
 
                        btMsr &= 0xfc;
@@ -406,17 +391,14 @@ rtl8192e_SetHwReg(struct net_device *dev,u8 variable,u8* val)
                        {
                        case RT_OP_MODE_INFRASTRUCTURE:
                                btMsr |= MSR_INFRA;
-                               //LedAction = LED_CTL_LINK;
                                break;
 
                        case RT_OP_MODE_IBSS:
                                btMsr |= MSR_ADHOC;
-                               // led link set separate
                                break;
 
                        case RT_OP_MODE_AP:
                                btMsr |= MSR_AP;
-                               //LedAction = LED_CTL_LINK;
                                break;
 
                        default:
@@ -425,8 +407,6 @@ rtl8192e_SetHwReg(struct net_device *dev,u8 variable,u8* val)
                        }
 
                        write_nic_byte(dev, MSR, btMsr);
-
-                       //priv->ieee80211->LedControlHandler(dev, LedAction);
                }
                break;
 
@@ -435,7 +415,6 @@ rtl8192e_SetHwReg(struct net_device *dev,u8 variable,u8* val)
                        u32     RegRCR, Type;
 
                        Type = ((u8*)(val))[0];
-                       //priv->ieee80211->GetHwRegHandler(dev, HW_VAR_RCR, (u8*)(&RegRCR));
                        RegRCR = read_nic_dword(dev,RCR);
                        priv->ReceiveConfig = RegRCR;
 
@@ -444,7 +423,6 @@ rtl8192e_SetHwReg(struct net_device *dev,u8 variable,u8* val)
                        else if (Type == false)
                                RegRCR &= (~RCR_CBSSID);
 
-                       //priv->ieee80211->SetHwRegHandler( dev, HW_VAR_RCR, (u8*)(&RegRCR) );
                        write_nic_dword(dev, RCR,RegRCR);
                        priv->ReceiveConfig = RegRCR;
 
@@ -453,9 +431,6 @@ rtl8192e_SetHwReg(struct net_device *dev,u8 variable,u8* val)
 
                case HW_VAR_SLOT_TIME:
                {
-                       //PSTA_QOS      pStaQos = Adapter->MgntInfo.pStaQos;
-                       //AC_CODING     eACI;
-
                        priv->slot_time = val[0];
                        write_nic_byte(dev, SLOT_TIME, val[0]);
 
@@ -493,7 +468,6 @@ static int proc_get_stats_ap(char *page, char **start,
        struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
        struct ieee80211_device *ieee = priv->ieee80211;
        struct ieee80211_network *target;
-
        int len = 0;
 
         list_for_each_entry(target, &ieee->network_list, list) {
@@ -521,11 +495,8 @@ static int proc_get_registers(char *page, char **start,
                          int *eof, void *data)
 {
        struct net_device *dev = data;
-//     struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
-
        int len = 0;
        int i,n;
-
        int max=0xff;
 
        /* This dump the current register page */
@@ -534,55 +505,43 @@ static int proc_get_registers(char *page, char **start,
 
        for(n=0;n<=max;)
        {
-               //printk( "\nD: %2x> ", n);
                len += snprintf(page + len, count - len,
                        "\nD:  %2x > ",n);
 
                for(i=0;i<16 && n<=max;i++,n++)
                len += snprintf(page + len, count - len,
                        "%2x ",read_nic_byte(dev,n));
-
-               //      printk("%2x ",read_nic_byte(dev,n));
        }
        len += snprintf(page + len, count - len,"\n");
        len += snprintf(page + len, count - len,
                         "\n####################page 1##################\n ");
         for(n=0;n<=max;)
         {
-                //printk( "\nD: %2x> ", n);
                 len += snprintf(page + len, count - len,
                         "\nD:  %2x > ",n);
 
                 for(i=0;i<16 && n<=max;i++,n++)
                 len += snprintf(page + len, count - len,
                         "%2x ",read_nic_byte(dev,0x100|n));
-
-                //      printk("%2x ",read_nic_byte(dev,n));
         }
 
        len += snprintf(page + len, count - len,
                         "\n####################page 3##################\n ");
         for(n=0;n<=max;)
         {
-                //printk( "\nD: %2x> ", n);
                 len += snprintf(page + len, count - len,
                         "\nD:  %2x > ",n);
 
                 for(i=0;i<16 && n<=max;i++,n++)
                 len += snprintf(page + len, count - len,
                         "%2x ",read_nic_byte(dev,0x300|n));
-
-                //      printk("%2x ",read_nic_byte(dev,n));
         }
 
-
        *eof = 1;
        return len;
 
 }
 
-
-
 static int proc_get_stats_tx(char *page, char **start,
                          off_t offset, int count,
                          int *eof, void *data)
@@ -787,7 +746,6 @@ short check_nic_enough_desc(struct net_device *dev, int prio)
 static void tx_timeout(struct net_device *dev)
 {
        struct r8192_priv *priv = ieee80211_priv(dev);
-       //rtl8192_commit(dev);
 
        schedule_work(&priv->reset_wq);
        printk("TXTIMEOUT");
@@ -850,8 +808,9 @@ void rtl8192_set_chan(struct net_device *dev,short ch)
 
 void rtl8192_rx_enable(struct net_device *dev)
 {
-    struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
-    write_nic_dword(dev, RDQDA,priv->rx_ring_dma);
+       struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
+
+       write_nic_dword(dev, RDQDA,priv->rx_ring_dma);
 }
 
 /* the TX_DESC_BASE setting is according to the following queue index
@@ -868,54 +827,55 @@ void rtl8192_rx_enable(struct net_device *dev)
 static const u32 TX_DESC_BASE[] = {BKQDA, BEQDA, VIQDA, VOQDA, HCCAQDA, CQDA, MQDA, HQDA, BQDA};
 void rtl8192_tx_enable(struct net_device *dev)
 {
-    struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
-    u32 i;
-    for (i = 0; i < MAX_TX_QUEUE_COUNT; i++)
-        write_nic_dword(dev, TX_DESC_BASE[i], priv->tx_ring[i].dma);
+       struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
+       u32 i;
 
-    ieee80211_reset_queue(priv->ieee80211);
+       for (i = 0; i < MAX_TX_QUEUE_COUNT; i++)
+               write_nic_dword(dev, TX_DESC_BASE[i], priv->tx_ring[i].dma);
+
+       ieee80211_reset_queue(priv->ieee80211);
 }
 
 
 static void rtl8192_free_rx_ring(struct net_device *dev)
 {
-    struct r8192_priv *priv = ieee80211_priv(dev);
-    int i;
+       struct r8192_priv *priv = ieee80211_priv(dev);
+       int i;
 
-    for (i = 0; i < priv->rxringcount; i++) {
-        struct sk_buff *skb = priv->rx_buf[i];
-        if (!skb)
-            continue;
+       for (i = 0; i < priv->rxringcount; i++) {
+               struct sk_buff *skb = priv->rx_buf[i];
+               if (!skb)
+                       continue;
 
-        pci_unmap_single(priv->pdev,
-                *((dma_addr_t *)skb->cb),
-                priv->rxbuffersize, PCI_DMA_FROMDEVICE);
-        kfree_skb(skb);
-    }
+               pci_unmap_single(priv->pdev,
+                                *((dma_addr_t *)skb->cb),
+                                priv->rxbuffersize, PCI_DMA_FROMDEVICE);
+               kfree_skb(skb);
+       }
 
-    pci_free_consistent(priv->pdev, sizeof(*priv->rx_ring) * priv->rxringcount,
-            priv->rx_ring, priv->rx_ring_dma);
-    priv->rx_ring = NULL;
+       pci_free_consistent(priv->pdev, sizeof(*priv->rx_ring) * priv->rxringcount,
+                           priv->rx_ring, priv->rx_ring_dma);
+       priv->rx_ring = NULL;
 }
 
 static void rtl8192_free_tx_ring(struct net_device *dev, unsigned int prio)
 {
-    struct r8192_priv *priv = ieee80211_priv(dev);
-    struct rtl8192_tx_ring *ring = &priv->tx_ring[prio];
+       struct r8192_priv *priv = ieee80211_priv(dev);
+       struct rtl8192_tx_ring *ring = &priv->tx_ring[prio];
 
-    while (skb_queue_len(&ring->queue)) {
-        tx_desc_819x_pci *entry = &ring->desc[ring->idx];
-        struct sk_buff *skb = __skb_dequeue(&ring->queue);
+       while (skb_queue_len(&ring->queue)) {
+               tx_desc_819x_pci *entry = &ring->desc[ring->idx];
+               struct sk_buff *skb = __skb_dequeue(&ring->queue);
 
-        pci_unmap_single(priv->pdev, le32_to_cpu(entry->TxBuffAddr),
-                skb->len, PCI_DMA_TODEVICE);
-        kfree_skb(skb);
-        ring->idx = (ring->idx + 1) % ring->entries;
-    }
+               pci_unmap_single(priv->pdev, le32_to_cpu(entry->TxBuffAddr),
+                                skb->len, PCI_DMA_TODEVICE);
+               kfree_skb(skb);
+               ring->idx = (ring->idx + 1) % ring->entries;
+       }
 
-    pci_free_consistent(priv->pdev, sizeof(*ring->desc)*ring->entries,
-            ring->desc, ring->dma);
-    ring->desc = NULL;
+       pci_free_consistent(priv->pdev, sizeof(*ring->desc)*ring->entries,
+                           ring->desc, ring->dma);
+       ring->desc = NULL;
 }
 
 void PHY_SetRtl8192eRfOff(struct net_device* dev)
@@ -940,7 +900,6 @@ void PHY_SetRtl8192eRfOff(struct net_device* dev)
 
 void rtl8192_halt_adapter(struct net_device *dev, bool reset)
 {
-       //u8    cmd;
        struct r8192_priv *priv = ieee80211_priv(dev);
        int i;
        u8      OpMode;
@@ -950,17 +909,12 @@ void rtl8192_halt_adapter(struct net_device *dev, bool reset)
        OpMode = RT_OP_MODE_NO_LINK;
        priv->ieee80211->SetHwRegHandler(dev, HW_VAR_MEDIA_STATUS, &OpMode);
 
-#if 1
        if(!priv->ieee80211->bSupportRemoteWakeUp)
        {
                u1bTmp = 0x0;   // disable tx/rx. In 8185 we write 0x10 (Reset bit), but here we make reference to WMAC and wirte 0x0. 2006.11.21 Emily
                //priv->ieee80211->SetHwRegHandler(dev, HW_VAR_COMMAND, &u1bTmp );      // Using HW_VAR_COMMAND instead of writing CMDR directly. Rewrited by Annie, 2006-04-07.
                write_nic_byte(dev, CMDR, u1bTmp);
        }
-#else
-       cmd=read_nic_byte(dev,CMDR);
-       write_nic_byte(dev, CMDR, cmd &~ (CR_TE|CR_RE));
-#endif
 
        mdelay(20);
 
@@ -1074,50 +1028,36 @@ static void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev,
 static int rtl8192_hard_start_xmit(struct sk_buff *skb,struct net_device *dev)
 {
        struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
-
-
        int ret;
-       //unsigned long flags;
         cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE);
         u8 queue_index = tcb_desc->queue_index;
 
-        if(queue_index != TXCMD_QUEUE){
-               if (priv->bHwRadioOff ||(!priv->up))
+        if (queue_index != TXCMD_QUEUE) {
+               if (priv->bHwRadioOff || (!priv->up))
                {
-                               kfree_skb(skb);
-                       return 0;
-               }
+                       kfree_skb(skb);
+                       return 0;
+               }
         }
 
-       //spin_lock_irqsave(&priv->tx_lock,flags);
-
-        memcpy((unsigned char *)(skb->cb),&dev,sizeof(dev));
-       if(queue_index == TXCMD_QUEUE) {
-       //      skb_push(skb, USB_HWDESC_HEADER_LEN);
+        memcpy(skb->cb, &dev, sizeof(dev));
+       if (queue_index == TXCMD_QUEUE) {
                rtl819xE_tx_cmd(dev, skb);
                ret = 0;
-               //spin_unlock_irqrestore(&priv->tx_lock,flags);
                return ret;
        } else {
-       //      RT_TRACE(COMP_SEND, "To send management packet\n");
                tcb_desc->RATRIndex = 7;
                tcb_desc->bTxDisableRateFallBack = 1;
                tcb_desc->bTxUseDriverAssingedRate = 1;
                tcb_desc->bTxEnableFwCalcDur = 1;
                skb_push(skb, priv->ieee80211->tx_headroom);
                ret = rtl8192_tx(dev, skb);
-               if(ret != 0) {
+               if (ret != 0) {
                        kfree_skb(skb);
-               };
+               }
        }
 
-//     priv->ieee80211->stats.tx_bytes+=skb->len;
-//     priv->ieee80211->stats.tx_packets++;
-
-       //spin_unlock_irqrestore(&priv->tx_lock,flags);
-
        return ret;
-
 }