staging: rtl8188eu: remove all RT_TRACE calls from hal/rtl8188eu_recv.c
[linux-2.6-microblaze.git] / drivers / staging / rtl8188eu / hal / rtl8188eu_recv.c
1 // SPDX-License-Identifier: GPL-2.0
2 /******************************************************************************
3  *
4  * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
5  *
6  ******************************************************************************/
7 #define _RTL8188EU_RECV_C_
8 #include <linux/kmemleak.h>
9 #include <osdep_service.h>
10 #include <drv_types.h>
11 #include <recv_osdep.h>
12 #include <mlme_osdep.h>
13
14 #include <usb_ops_linux.h>
15 #include <wifi.h>
16
17 #include <rtl8188e_hal.h>
18
19 int rtw_hal_init_recv_priv(struct adapter *padapter)
20 {
21         struct recv_priv *precvpriv = &padapter->recvpriv;
22         int i, res = _SUCCESS;
23         struct recv_buf *precvbuf;
24
25         tasklet_setup(&precvpriv->recv_tasklet, rtl8188eu_recv_tasklet);
26
27         /* init recv_buf */
28         _rtw_init_queue(&precvpriv->free_recv_buf_queue);
29
30         precvpriv->precv_buf =
31                 kcalloc(NR_RECVBUFF, sizeof(struct recv_buf), GFP_KERNEL);
32         if (!precvpriv->precv_buf) {
33                 res = _FAIL;
34                 goto exit;
35         }
36         precvbuf = precvpriv->precv_buf;
37
38         for (i = 0; i < NR_RECVBUFF; i++) {
39                 res = rtw_os_recvbuf_resource_alloc(precvbuf);
40                 if (res == _FAIL)
41                         break;
42                 precvbuf->adapter = padapter;
43                 precvbuf++;
44         }
45         skb_queue_head_init(&precvpriv->rx_skb_queue);
46         {
47                 int i;
48                 struct sk_buff *pskb = NULL;
49
50                 skb_queue_head_init(&precvpriv->free_recv_skb_queue);
51
52                 for (i = 0; i < NR_PREALLOC_RECV_SKB; i++) {
53                         pskb = __netdev_alloc_skb(padapter->pnetdev,
54                                                   MAX_RECVBUF_SZ, GFP_KERNEL);
55                         if (pskb) {
56                                 kmemleak_not_leak(pskb);
57                                 skb_queue_tail(&precvpriv->free_recv_skb_queue,
58                                                pskb);
59                         }
60                         pskb = NULL;
61                 }
62         }
63 exit:
64         return res;
65 }
66
67 void rtw_hal_free_recv_priv(struct adapter *padapter)
68 {
69         int i;
70         struct recv_buf *precvbuf;
71         struct recv_priv *precvpriv = &padapter->recvpriv;
72
73         precvbuf = precvpriv->precv_buf;
74
75         for (i = 0; i < NR_RECVBUFF; i++) {
76                 usb_free_urb(precvbuf->purb);
77                 precvbuf++;
78         }
79
80         kfree(precvpriv->precv_buf);
81         skb_queue_purge(&precvpriv->rx_skb_queue);
82         skb_queue_purge(&precvpriv->free_recv_skb_queue);
83 }