8723BU: Update 8723BU wifi driver to version v4.3.16_14189.20150519_BTCOEX2015119...
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8723bu / hal / rtl8723b / usb / rtl8723bu_recv.c
index c0e893db6792b8ce8bbb739da76f56ea87d68475..518f66ce1028ce4c0defded8f7c1758f59cb6e04 100755 (executable)
 
 int    rtl8723bu_init_recv_priv(_adapter *padapter)
 {
-       struct recv_priv        *precvpriv = &padapter->recvpriv;
-       int     i, res = _SUCCESS;
-       struct recv_buf *precvbuf;
-
-#ifdef CONFIG_RECV_THREAD_MODE 
-       _rtw_init_sema(&precvpriv->recv_sema, 0);//will be removed
-       _rtw_init_sema(&precvpriv->terminate_recvthread_sema, 0);//will be removed
-#endif
-
-#ifdef PLATFORM_LINUX
-       tasklet_init(&precvpriv->recv_tasklet,
-            (void(*)(unsigned long))usb_recv_tasklet,
-            (unsigned long)padapter);
-#endif
-
-#ifdef CONFIG_USB_INTERRUPT_IN_PIPE
-#ifdef PLATFORM_LINUX
-       precvpriv->int_in_urb = usb_alloc_urb(0, GFP_KERNEL);
-       if(precvpriv->int_in_urb == NULL){
-               DBG_8192C("alloc_urb for interrupt in endpoint fail !!!!\n");
-       }
-#endif
-       precvpriv->int_in_buf = rtw_zmalloc(USB_INTR_CONTENT_LENGTH);
-       if(precvpriv->int_in_buf == NULL){
-               DBG_8192C("alloc_mem for interrupt in endpoint fail !!!!\n");
-       }
-#endif
-
-       //init recv_buf
-       _rtw_init_queue(&precvpriv->free_recv_buf_queue);
-
-       _rtw_init_queue(&precvpriv->recv_buf_pending_queue);
-
-       precvpriv->pallocated_recv_buf = rtw_zmalloc(NR_RECVBUFF *sizeof(struct recv_buf) + 4);
-       if(precvpriv->pallocated_recv_buf==NULL){
-               res= _FAIL;
-               RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("alloc recv_buf fail!\n"));
-               goto exit;
-       }
-       _rtw_memset(precvpriv->pallocated_recv_buf, 0, NR_RECVBUFF *sizeof(struct recv_buf) + 4);
-
-       precvpriv->precv_buf = (u8 *)N_BYTE_ALIGMENT((SIZE_PTR)(precvpriv->pallocated_recv_buf), 4);
-       //precvpriv->precv_buf = precvpriv->pallocated_recv_buf + 4 -
-       //                                              ((uint) (precvpriv->pallocated_recv_buf) &(4-1));
-
-
-       precvbuf = (struct recv_buf*)precvpriv->precv_buf;
-
-       for(i=0; i < NR_RECVBUFF ; i++)
-       {
-               _rtw_init_listhead(&precvbuf->list);
-
-               _rtw_spinlock_init(&precvbuf->recvbuf_lock);
-
-               precvbuf->alloc_sz = MAX_RECVBUF_SZ;
-
-               res = rtw_os_recvbuf_resource_alloc(padapter, precvbuf);
-               if(res==_FAIL)
-                       break;
-
-               precvbuf->ref_cnt = 0;
-               precvbuf->adapter =padapter;
-
-
-               //rtw_list_insert_tail(&precvbuf->list, &(precvpriv->free_recv_buf_queue.queue));
-
-               precvbuf++;
-
-       }
-
-       precvpriv->free_recv_buf_queue_cnt = NR_RECVBUFF;
-
-#ifdef PLATFORM_LINUX
-
-       skb_queue_head_init(&precvpriv->rx_skb_queue);
-
-#ifdef CONFIG_PREALLOC_RECV_SKB
-       {
-               int i;
-               SIZE_PTR tmpaddr=0;
-               SIZE_PTR alignment=0;
-               struct sk_buff *pskb=NULL;
-
-               skb_queue_head_init(&precvpriv->free_recv_skb_queue);
-
-               for(i=0; i<NR_PREALLOC_RECV_SKB; i++)
-               {
-
-#ifdef CONFIG_PREALLOC_RX_SKB_BUFFER
-                       pskb = rtw_alloc_skb_premem();
-#else
-                       pskb = rtw_skb_alloc(MAX_RECVBUF_SZ + RECVBUFF_ALIGN_SZ);
-#endif
-
-                       if(pskb)
-                       {
-                               pskb->dev = padapter->pnetdev;
-
-#ifndef CONFIG_PREALLOC_RX_SKB_BUFFER
-                               tmpaddr = (SIZE_PTR)pskb->data;
-                               alignment = tmpaddr & (RECVBUFF_ALIGN_SZ-1);
-                               skb_reserve(pskb, (RECVBUFF_ALIGN_SZ - alignment));
-#endif //!
-
-                               skb_queue_tail(&precvpriv->free_recv_skb_queue, pskb);
-                       }
-
-                       pskb=NULL;
-
-               }
-       }
-#endif
-
-#endif
-
-exit:
-
-       return res;
-
+       return usb_init_recv_priv(padapter, USB_INTR_CONTENT_LENGTH);
 }
 
-void rtl8723bu_free_recv_priv (_adapter *padapter)
+void rtl8723bu_free_recv_priv(_adapter *padapter)
 {
-       int     i;
-       struct recv_buf *precvbuf;
-       struct recv_priv        *precvpriv = &padapter->recvpriv;
-
-       precvbuf = (struct recv_buf *)precvpriv->precv_buf;
-
-       for(i=0; i < NR_RECVBUFF ; i++)
-       {
-               rtw_os_recvbuf_resource_free(padapter, precvbuf);
-               precvbuf++;
-       }
-
-       if(precvpriv->pallocated_recv_buf)
-               rtw_mfree(precvpriv->pallocated_recv_buf, NR_RECVBUFF *sizeof(struct recv_buf) + 4);
-
-#ifdef CONFIG_USB_INTERRUPT_IN_PIPE
-#ifdef PLATFORM_LINUX
-       if(precvpriv->int_in_urb)
-       {
-               usb_free_urb(precvpriv->int_in_urb);
-       }
-#endif
-       if(precvpriv->int_in_buf)
-               rtw_mfree(precvpriv->int_in_buf, USB_INTR_CONTENT_LENGTH);
-#endif
-
-#ifdef PLATFORM_LINUX
-
-       if (skb_queue_len(&precvpriv->rx_skb_queue)) {
-               DBG_8192C(KERN_WARNING "rx_skb_queue not empty\n");
-       }
-
-       rtw_skb_queue_purge(&precvpriv->rx_skb_queue);
-
-#ifdef CONFIG_PREALLOC_RECV_SKB
-
-       if (skb_queue_len(&precvpriv->free_recv_skb_queue)) {
-               DBG_8192C(KERN_WARNING "free_recv_skb_queue not empty, %d\n", skb_queue_len(&precvpriv->free_recv_skb_queue));
-       }
-
-#ifdef CONFIG_PREALLOC_RX_SKB_BUFFER
-       {
-               int i=0;
-               struct sk_buff *skb;
-
-               while ((skb = skb_dequeue(&precvpriv->free_recv_skb_queue)) != NULL)
-               {
-                       if(i<NR_PREALLOC_RECV_SKB)
-                               rtw_free_skb_premem(skb);
-                       else                            
-                               _rtw_skb_free(skb);
-
-                       i++;
-               }       
-       }       
-#else 
-       rtw_skb_queue_purge(&precvpriv->free_recv_skb_queue);
-#endif //CONFIG_PREALLOC_RX_SKB_BUFFER
-
-#endif
-
-#endif
+       usb_free_recv_priv(padapter, USB_INTR_CONTENT_LENGTH);
 }