wifi->esp8089:
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / esp8089 / esp_premalloc / esp_mem_init.c
1 #include <linux/module.h>
2 #include "esp_mem.h"
3 #include "esp_slab.h"
4 #include "esp_log.h"
5 #include "version.h"
6
7 #define RETRY_COUNT 10
8
9 static int __init esp_mem_init(void)
10 {
11         int err = 0;
12         int retry;
13
14         logi("%s enter date %s %s\n", __func__, __DATE__, __TIME__);
15         logi("%s VERSION [%s]\n", __func__, PREALLOC_VERSION);
16
17 #ifdef ESP_SLAB
18         retry = RETRY_COUNT;
19         do {
20                 err = esp_slab_init();
21                 if (err) 
22                         loge("%s esp_slab_init failed %d, retry %d\n", __func__, err, retry);
23                 else 
24                         break;
25
26         } while (--retry > 0);
27
28         if (retry <= 0)
29                 goto _err_slab;
30 #endif
31
32 #ifdef ESP_PRE_MEM
33         retry = RETRY_COUNT;
34         do {
35                 err = esp_indi_pre_mem_init();
36                 if (err)
37                         loge("%s esp_indi_pre_mem__init failed %d, retry %d\n", __func__, err, retry);
38                 else 
39                         break;
40
41         } while (--retry > 0);
42
43         if (retry <= 0)
44                 goto _err_mem;
45 #endif
46         logi("%s complete \n", __func__);
47         return 0;
48
49 #ifdef ESP_PRE_MEM
50 _err_mem:
51 #endif
52 #ifdef ESP_SLAB
53         esp_slab_deinit();
54 _err_slab:
55 #endif
56         return err;     
57 }
58
59 static void __exit esp_mem_exit(void)
60 {
61         logi("%s enter \n", __func__);
62 #ifdef ESP_SLAB
63         esp_slab_deinit();
64 #endif
65 #ifdef ESP_PRE_MEM
66         esp_indi_pre_mem_deinit();
67 #endif
68         logi("%s complete \n", __func__);
69 }
70
71
72 module_init(esp_mem_init);
73 module_exit(esp_mem_exit);