summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/sc2331
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2017-08-30 08:25:59 +0000
committerYuval Adam <_@yuv.al>2017-08-30 08:25:59 +0000
commit8e4bff4cab0ddac6060645b0715210484d02ff40 (patch)
tree3a5c3024371a04692a3a6d9974d001cdff8ebf84 /drivers/net/wireless/sc2331
Initial file dump from open source releaseHEADmaster
Diffstat (limited to 'drivers/net/wireless/sc2331')
-rw-r--r--drivers/net/wireless/sc2331/sc2331_mem_alloc/Kconfig3
-rw-r--r--drivers/net/wireless/sc2331/sc2331_mem_alloc/Makefile1
-rw-r--r--drivers/net/wireless/sc2331/sc2331_mem_alloc/sprdwl_mem_alloc.c103
3 files changed, 107 insertions, 0 deletions
diff --git a/drivers/net/wireless/sc2331/sc2331_mem_alloc/Kconfig b/drivers/net/wireless/sc2331/sc2331_mem_alloc/Kconfig
new file mode 100644
index 00000000..22050189
--- /dev/null
+++ b/drivers/net/wireless/sc2331/sc2331_mem_alloc/Kconfig
@@ -0,0 +1,3 @@
+config SC2331_MEM_ALLOC
+ bool "sprdwl mem alloc "
+ default y
diff --git a/drivers/net/wireless/sc2331/sc2331_mem_alloc/Makefile b/drivers/net/wireless/sc2331/sc2331_mem_alloc/Makefile
new file mode 100644
index 00000000..087301d3
--- /dev/null
+++ b/drivers/net/wireless/sc2331/sc2331_mem_alloc/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_SC2331_MEM_ALLOC) += sprdwl_mem_alloc.o
diff --git a/drivers/net/wireless/sc2331/sc2331_mem_alloc/sprdwl_mem_alloc.c b/drivers/net/wireless/sc2331/sc2331_mem_alloc/sprdwl_mem_alloc.c
new file mode 100644
index 00000000..2f032622
--- /dev/null
+++ b/drivers/net/wireless/sc2331/sc2331_mem_alloc/sprdwl_mem_alloc.c
@@ -0,0 +1,103 @@
+#include <linux/proc_fs.h>
+#include <linux/sipc.h>
+#include <linux/mutex.h>
+#include <linux/spinlock.h>
+#include <linux/ieee80211.h>
+#include <linux/printk.h>
+#include <linux/inetdevice.h>
+#include <linux/spinlock.h>
+#include <net/cfg80211.h>
+#include <linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/module.h>
+#include <linux/netdevice.h>
+#include <linux/skbuff.h>
+#include <net/ieee80211_radiotap.h>
+#include <linux/etherdevice.h>
+#include <linux/wireless.h>
+#include <net/iw_handler.h>
+#include <linux/string.h>
+#include <linux/delay.h>
+#include <linux/interrupt.h>
+#include <linux/init.h>
+#include <linux/wakelock.h>
+#include <linux/workqueue.h>
+#include <linux/ipv6.h>
+#include <linux/ip.h>
+#include <linux/inetdevice.h>
+#include <asm/byteorder.h>
+#include <linux/platform_device.h>
+#include <linux/atomic.h>
+#include <linux/wait.h>
+#include <linux/semaphore.h>
+#include <linux/vmalloc.h>
+#include <linux/kthread.h>
+#include <linux/time.h>
+#include <linux/delay.h>
+#include <linux/timer.h>
+#include <linux/completion.h>
+#include <asm/atomic.h>
+#include <linux/ieee80211.h>
+#include <linux/delay.h>
+
+#define WIFI_MEM_BLOCK_NUM (2)
+
+typedef struct
+{
+ int status;
+ unsigned char *mem;
+}m_mem_t;
+
+static m_mem_t wifi_mem[WIFI_MEM_BLOCK_NUM] = {0};
+unsigned char *wifi_256k_alloc(void)
+{
+ unsigned char *p= NULL;
+ int i;
+ for(i=0; i< WIFI_MEM_BLOCK_NUM; i++)
+ {
+ if( (0 == wifi_mem[i].status) && (NULL != wifi_mem[i].mem) )
+ {
+ p = wifi_mem[i].mem;
+ wifi_mem[i].status = 1;
+ printk("\001" "0" "[wifi_256k_alloc][%d][0x%x]\n", i, wifi_mem[i].mem );
+ break;
+ }
+ }
+ return p;
+}
+EXPORT_SYMBOL_GPL(wifi_256k_alloc);
+
+int wifi_256k_free(unsigned char *mem)
+{
+ int i;
+ for(i=0; i< WIFI_MEM_BLOCK_NUM; i++)
+ {
+ if(mem == wifi_mem[i].mem)
+ {
+ wifi_mem[i].status = 0;
+ printk("\001" "0" "[wifi_256k_free][%d][0x%x]\n", i, wifi_mem[i].mem );
+ return 0;
+ }
+ }
+ return -1;
+}
+EXPORT_SYMBOL_GPL(wifi_256k_free);
+
+static int sprdwl_mem_alloc(void)
+{
+ int i;
+ printk("[%s]\n", __func__);
+ for(i = 0; i < WIFI_MEM_BLOCK_NUM; i++)
+ {
+ wifi_mem[i].mem = kmalloc( 256*1024, GFP_ATOMIC);
+ printk("\001" "0" "[wifi_mem][%d][0x%x]\n", i, wifi_mem[i].mem );
+ }
+ return 0;
+}
+
+arch_initcall(sprdwl_mem_alloc);
+
+MODULE_AUTHOR("jinglong.chen");
+MODULE_DESCRIPTION("256k mem alloc");
+MODULE_LICENSE("GPL");
+