]> Pileus Git - ~andy/linux/blobdiff - drivers/staging/rtl8192e/r819xE_cmdpkt.c
Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd
[~andy/linux] / drivers / staging / rtl8192e / r819xE_cmdpkt.c
index 11ad7cf16f71d4da8bcd458222f425ebd64a0afb..756e0660bbe54b3526d6786d7a28a89d2b17944f 100644 (file)
  * run time. We do not support message more than one segment now.
  */
 RT_STATUS cmpk_message_handle_tx(
-       struct net_device *dev,
+       struct r8192_priv *priv,
        u8*     code_virtual_address,
        u32     packettype,
        u32     buffer_len)
 {
-
        RT_STATUS           rt_status = RT_STATUS_SUCCESS;
-#ifdef RTL8192U
-       return rt_status;
-#else
-       struct r8192_priv   *priv = ieee80211_priv(dev);
        u16                 frag_threshold;
        u16                 frag_length = 0, frag_offset = 0;
        rt_firmware         *pfirmware = priv->pFirmware;
@@ -55,9 +50,8 @@ RT_STATUS cmpk_message_handle_tx(
        PTX_FWINFO_8190PCI      pTxFwInfo = NULL;
         int i;
 
-       //spin_lock_irqsave(&priv->tx_lock,flags);
        RT_TRACE(COMP_CMDPKT,"%s(),buffer_len is %d\n",__FUNCTION__,buffer_len);
-       firmware_init_param(dev);
+       firmware_init_param(priv);
        //Fragmentation might be required
        frag_threshold = pfirmware->cmdpacket_frag_thresold;
         do {
@@ -74,27 +68,18 @@ RT_STATUS cmpk_message_handle_tx(
             /* Allocate skb buffer to contain firmware info and tx descriptor info
              * add 4 to avoid packet appending overflow.
              * */
-#ifdef RTL8192U
-            skb  = dev_alloc_skb(USB_HWDESC_HEADER_LEN + frag_length + 4);
-#else
             skb  = dev_alloc_skb(frag_length + priv->ieee80211->tx_headroom + 4);
-#endif
             if(skb == NULL) {
                 rt_status = RT_STATUS_FAILURE;
                 goto Failed;
             }
 
-            memcpy((unsigned char *)(skb->cb),&dev,sizeof(dev));
             tcb_desc = (cb_desc*)(skb->cb + MAX_DEV_ADDR_SIZE);
             tcb_desc->queue_index = TXCMD_QUEUE;
             tcb_desc->bCmdOrInit = packettype;
             tcb_desc->bLastIniPkt = bLastIniPkt;
             tcb_desc->pkt_size = frag_length;
 
-#ifdef RTL8192U
-            skb_reserve(skb, USB_HWDESC_HEADER_LEN);
-#endif
-
             //seg_ptr = skb_put(skb, frag_length + priv->ieee80211->tx_headroom);
             seg_ptr = skb_put(skb, priv->ieee80211->tx_headroom);
 
@@ -116,7 +101,7 @@ RT_STATUS cmpk_message_handle_tx(
                 *seg_ptr++ = ((i+3)<frag_length)?code_virtual_address[i+0]:0;
             }
             skb_put(skb, i);
-            priv->ieee80211->softmac_hard_start_xmit(skb,dev);
+            priv->ieee80211->softmac_hard_start_xmit(skb, priv->ieee80211);
 
             code_virtual_address += frag_length;
             frag_offset += frag_length;
@@ -124,19 +109,11 @@ RT_STATUS cmpk_message_handle_tx(
         }while(frag_offset < buffer_len);
 
 Failed:
-       //spin_unlock_irqrestore(&priv->tx_lock,flags);
        return rt_status;
-
-
-#endif
 }
 
-static void
-cmpk_count_txstatistic(
-       struct net_device *dev,
-       cmpk_txfb_t     *pstx_fb)
+static void cmpk_count_txstatistic(struct r8192_priv *priv, cmpk_txfb_t *pstx_fb)
 {
-       struct r8192_priv *priv = ieee80211_priv(dev);
 #ifdef ENABLE_PS
        RT_RF_POWER_STATE       rtState;
 
@@ -179,19 +156,15 @@ cmpk_count_txstatistic(
  * refer to chapter "TX Feedback Element". We have to read 20 bytes
  * in the command packet.
  */
-static void
-cmpk_handle_tx_feedback(
-       struct net_device *dev,
-       u8      *       pmsg)
+static void cmpk_handle_tx_feedback(struct r8192_priv *priv, u8 *pmsg)
 {
-       struct r8192_priv *priv = ieee80211_priv(dev);
        cmpk_txfb_t             rx_tx_fb;       /* */
 
        priv->stats.txfeedback++;
 
        memcpy((u8*)&rx_tx_fb, pmsg, sizeof(cmpk_txfb_t));
        /* Use tx feedback info to count TX statistics. */
-       cmpk_count_txstatistic(dev, &rx_tx_fb);
+       cmpk_count_txstatistic(priv, &rx_tx_fb);
 }
 
 
@@ -201,13 +174,9 @@ cmpk_handle_tx_feedback(
  * ws-07-0063-v06-rtl819x-command-packet-specification-070315.doc.
  * Please refer to chapter "Interrupt Status Element".
  */
-static void
-cmpk_handle_interrupt_status(
-       struct net_device *dev,
-       u8*     pmsg)
+static void cmpk_handle_interrupt_status(struct r8192_priv *priv, u8 *pmsg)
 {
        cmpk_intr_sta_t         rx_intr_status; /* */
-       struct r8192_priv *priv = ieee80211_priv(dev);
 
        DMESG("---> cmpk_Handle_Interrupt_Status()\n");
 
@@ -260,10 +229,7 @@ cmpk_handle_interrupt_status(
  * ws-06-0063-rtl8190-command-packet-specification. Please
  * refer to chapter "Beacon State Element".
  */
-static void
-cmpk_handle_query_config_rx(
-       struct net_device *dev,
-       u8*        pmsg)
+static void cmpk_handle_query_config_rx(struct r8192_priv *priv, u8 *pmsg)
 {
        cmpk_query_cfg_t        rx_query_cfg;   /* */
 
@@ -293,10 +259,8 @@ cmpk_handle_query_config_rx(
  * Count aggregated tx status from firmwar of one type rx command
  * packet element id = RX_TX_STATUS.
  */
-static void    cmpk_count_tx_status(   struct net_device *dev,
-                                                                       cmpk_tx_status_t        *pstx_status)
+static void cmpk_count_tx_status(struct r8192_priv *priv, cmpk_tx_status_t *pstx_status)
 {
-       struct r8192_priv *priv = ieee80211_priv(dev);
 
 #ifdef ENABLE_PS
 
@@ -325,25 +289,19 @@ static    void    cmpk_count_tx_status(   struct net_device *dev,
  * Firmware add a new tx feedback status to reduce rx command
  * packet buffer operation load.
  */
-static void
-cmpk_handle_tx_status(
-       struct net_device *dev,
-       u8*        pmsg)
+static void cmpk_handle_tx_status(struct r8192_priv *priv, u8 *pmsg)
 {
        cmpk_tx_status_t        rx_tx_sts;      /* */
 
        memcpy((void*)&rx_tx_sts, (void*)pmsg, sizeof(cmpk_tx_status_t));
        /* 2. Use tx feedback info to count TX statistics. */
-       cmpk_count_tx_status(dev, &rx_tx_sts);
+       cmpk_count_tx_status(priv, &rx_tx_sts);
 
 }
 
 
 /* Firmware add a new tx rate history */
-static void
-cmpk_handle_tx_rate_history(
-       struct net_device *dev,
-       u8*        pmsg)
+static void cmpk_handle_tx_rate_history(struct r8192_priv *priv, u8 *pmsg)
 {
        u8                              i;
        u16                             length = sizeof(cmpk_tx_rahis_t);
@@ -385,7 +343,7 @@ cmpk_handle_tx_rate_history(
  * command packet now. Please refer to document
  * ws-06-0063-rtl8190-command-packet-specification.
  */
-u32 cmpk_message_handle_rx(struct net_device *dev, struct ieee80211_rx_stats *pstats)
+u32 cmpk_message_handle_rx(struct r8192_priv *priv, struct ieee80211_rx_stats *pstats)
 {
 //     u32                     debug_level = DBG_LOUD;
        int                     total_length;
@@ -430,28 +388,28 @@ u32 cmpk_message_handle_rx(struct net_device *dev, struct ieee80211_rx_stats *ps
                        case RX_TX_FEEDBACK:
 
                                RT_TRACE(COMP_EVENTS, "---->cmpk_message_handle_rx():RX_TX_FEEDBACK\n");
-                               cmpk_handle_tx_feedback (dev, pcmd_buff);
+                               cmpk_handle_tx_feedback(priv, pcmd_buff);
                                cmd_length = CMPK_RX_TX_FB_SIZE;
                                break;
 
                        case RX_INTERRUPT_STATUS:
 
                                RT_TRACE(COMP_EVENTS, "---->cmpk_message_handle_rx():RX_INTERRUPT_STATUS\n");
-                               cmpk_handle_interrupt_status(dev, pcmd_buff);
+                               cmpk_handle_interrupt_status(priv, pcmd_buff);
                                cmd_length = sizeof(cmpk_intr_sta_t);
                                break;
 
                        case BOTH_QUERY_CONFIG:
 
                                RT_TRACE(COMP_EVENTS, "---->cmpk_message_handle_rx():BOTH_QUERY_CONFIG\n");
-                               cmpk_handle_query_config_rx(dev, pcmd_buff);
+                               cmpk_handle_query_config_rx(priv, pcmd_buff);
                                cmd_length = CMPK_BOTH_QUERY_CONFIG_SIZE;
                                break;
 
                        case RX_TX_STATUS:
 
                                RT_TRACE(COMP_EVENTS, "---->cmpk_message_handle_rx():RX_TX_STATUS\n");
-                               cmpk_handle_tx_status(dev, pcmd_buff);
+                               cmpk_handle_tx_status(priv, pcmd_buff);
                                cmd_length = CMPK_RX_TX_STS_SIZE;
                                break;
 
@@ -467,7 +425,7 @@ u32 cmpk_message_handle_rx(struct net_device *dev, struct ieee80211_rx_stats *ps
                                //DbgPrint(" rx tx rate history\r\n");
 
                                RT_TRACE(COMP_EVENTS, "---->cmpk_message_handle_rx():RX_TX_HISTORY\n");
-                               cmpk_handle_tx_rate_history(dev, pcmd_buff);
+                               cmpk_handle_tx_rate_history(priv, pcmd_buff);
                                cmd_length = CMPK_TX_RAHIS_SIZE;
                                break;