summaryrefslogtreecommitdiff
path: root/include/net
diff options
context:
space:
mode:
authorSarada Prasanna Garnayak <sgarna@codeaurora.org>2016-03-07 19:59:57 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-25 16:04:00 -0700
commit95d3c6569c0a4fe5536dd93c439c3c99120d0f9b (patch)
treed93688a22591c363bf74683e31e76ad8d45b3489 /include/net
parente74a8a432ef2193d83f3dcea5bef9d02ca3b0999 (diff)
net: cnss: add cnss common api support for dual WiFi
Add common api support of subsystem restart and bus bandwidth for dual wifi. This feature redirect the cnss export api according to the bus type SDIO/PCI. CRs-Fixed: 986275 Change-Id: Iaf13d6c6d68ef62b7e4f6581899ec8325c5e9696 Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/cnss.h42
-rw-r--r--include/net/cnss_common.h73
2 files changed, 76 insertions, 39 deletions
diff --git a/include/net/cnss.h b/include/net/cnss.h
index bf1f80d5655f..e9d0ca85d7f2 100644
--- a/include/net/cnss.h
+++ b/include/net/cnss.h
@@ -15,14 +15,13 @@
#include <linux/device.h>
#include <linux/skbuff.h>
#include <linux/pci.h>
+#include <net/cnss_common.h>
#ifdef CONFIG_CNSS_SDIO
#include <linux/mmc/sdio_func.h>
#endif
#ifdef CONFIG_CNSS
-#define CNSS_MAX_FILE_NAME 20
-
-#define MAX_FIRMWARE_SIZE (1 * 1024 * 1024)
+#define CNSS_MAX_FILE_NAME 20
enum cnss_bus_width_type {
CNSS_BUS_WIDTH_NONE,
@@ -122,10 +121,8 @@ extern void cnss_wlan_unregister_driver(struct cnss_wlan_driver *driver);
extern int cnss_get_fw_files(struct cnss_fw_files *pfw_files);
extern int cnss_get_fw_files_for_target(struct cnss_fw_files *pfw_files,
u32 target_type, u32 target_version);
-extern int cnss_pci_request_bus_bandwidth(int bandwidth);
-extern int cnss_sdio_request_bus_bandwidth(int bandwidth);
-extern int cnss_request_bus_bandwidth(int bandwidth);
+extern int cnss_request_bus_bandwidth(int bandwidth);
extern int cnss_get_sha_hash(const u8 *data, u32 data_len,
u8 *hash_idx, u8 *out);
extern void *cnss_get_fw_ptr(void);
@@ -172,47 +169,15 @@ extern int cnss_is_auto_suspend_allowed(const char *caller_func);
extern int cnss_pm_runtime_request(struct device *dev, enum
cnss_runtime_request request);
#endif
-/* max 20mhz channel count */
-#define CNSS_MAX_CH_NUM 45
-
-extern void cnss_init_work(struct work_struct *work, work_func_t func);
-extern void cnss_flush_work(void *work);
-extern void cnss_flush_delayed_work(void *dwork);
-extern void cnss_get_monotonic_boottime(struct timespec *ts);
-extern void cnss_get_boottime(struct timespec *ts);
-extern void cnss_init_delayed_work(struct delayed_work *work, work_func_t func);
-extern int cnss_vendor_cmd_reply(struct sk_buff *skb);
extern void cnss_pm_wake_lock_init(struct wakeup_source *ws, const char *name);
extern void cnss_pm_wake_lock(struct wakeup_source *ws);
-extern void cnss_pm_wake_lock_timeout(struct wakeup_source *ws, ulong msec);
-extern void cnss_pm_wake_lock_release(struct wakeup_source *ws);
-extern void cnss_pm_wake_lock_destroy(struct wakeup_source *ws);
-extern int cnss_set_cpus_allowed_ptr(struct task_struct *task, ulong cpu);
-
-extern int cnss_set_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 ch_count);
-extern int cnss_get_wlan_unsafe_channel(u16 *unsafe_ch_list,
- u16 *ch_count, u16 buf_len);
-extern int cnss_wlan_set_dfs_nol(const void *info, u16 info_len);
-extern int cnss_wlan_get_dfs_nol(void *info, u16 info_len);
extern void cnss_device_crashed(void);
-extern void cnss_sdio_device_crashed(void);
-extern void cnss_pci_device_crashed(void);
-
extern void cnss_device_self_recovery(void);
-extern void cnss_pci_device_self_recovery(void);
-extern void cnss_sdio_device_self_recovery(void);
-
-extern int cnss_get_ramdump_mem(unsigned long *address, unsigned long *size);
-
extern void *cnss_get_virt_ramdump_mem(unsigned long *size);
-extern void *cnss_pci_get_virt_ramdump_mem(unsigned long *size);
-extern void *cnss_sdio_get_virt_ramdump_mem(unsigned long *size);
extern void cnss_schedule_recovery_work(void);
-extern void cnss_sdio_schedule_recovery_work(void);
-extern void cnss_pci_schedule_recovery_work(void);
extern int cnss_pcie_set_wlan_mac_address(const u8 *in, uint32_t len);
extern u8 *cnss_get_wlan_mac_address(struct device *dev, uint32_t *num);
extern int cnss_sdio_set_wlan_mac_address(const u8 *in, uint32_t len);
@@ -223,7 +188,6 @@ enum {
CNSS_RESET_LEVEL_MAX
};
extern int cnss_get_restart_level(void);
-extern void cnss_dump_stack(struct task_struct *task);
#ifdef CONFIG_CNSS_SDIO
struct cnss_sdio_wlan_driver {
diff --git a/include/net/cnss_common.h b/include/net/cnss_common.h
new file mode 100644
index 000000000000..c5175a190b37
--- /dev/null
+++ b/include/net/cnss_common.h
@@ -0,0 +1,73 @@
+/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef _NET_CNSS_COMMON_H_
+#define _NET_CNSS_COMMON_H_
+
+#ifdef CONFIG_CNSS
+
+#define MAX_FIRMWARE_SIZE (1 * 1024 * 1024)
+/* max 20mhz channel count */
+#define CNSS_MAX_CH_NUM 45
+
+extern int cnss_set_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 ch_count);
+extern int cnss_get_wlan_unsafe_channel(u16 *unsafe_ch_list,
+ u16 *ch_count, u16 buf_len);
+
+extern int cnss_wlan_set_dfs_nol(const void *info, u16 info_len);
+extern int cnss_wlan_get_dfs_nol(void *info, u16 info_len);
+
+extern void cnss_init_work(struct work_struct *work, work_func_t func);
+extern void cnss_flush_work(void *work);
+extern void cnss_flush_delayed_work(void *dwork);
+extern void cnss_pm_wake_lock_timeout(struct wakeup_source *ws, ulong msec);
+extern void cnss_pm_wake_lock_release(struct wakeup_source *ws);
+extern void cnss_pm_wake_lock_destroy(struct wakeup_source *ws);
+extern void cnss_get_monotonic_boottime(struct timespec *ts);
+extern void cnss_get_boottime(struct timespec *ts);
+extern void cnss_init_delayed_work(struct delayed_work *work, work_func_t func);
+extern int cnss_vendor_cmd_reply(struct sk_buff *skb);
+extern int cnss_set_cpus_allowed_ptr(struct task_struct *task, ulong cpu);
+extern void cnss_dump_stack(struct task_struct *task);
+
+int cnss_pci_request_bus_bandwidth(int bandwidth);
+int cnss_sdio_request_bus_bandwidth(int bandwidth);
+extern int cnss_common_request_bus_bandwidth(struct device *dev,
+ int bandwidth);
+
+void cnss_sdio_device_crashed(void);
+void cnss_pci_device_crashed(void);
+extern void cnss_common_device_crashed(struct device *dev);
+
+void cnss_pci_device_self_recovery(void);
+void cnss_sdio_device_self_recovery(void);
+extern void cnss_common_device_self_recovery(struct device *dev);
+
+void *cnss_pci_get_virt_ramdump_mem(unsigned long *size);
+void *cnss_sdio_get_virt_ramdump_mem(unsigned long *size);
+extern void *cnss_common_get_virt_ramdump_mem(struct device *dev,
+ unsigned long *size);
+
+void cnss_sdio_schedule_recovery_work(void);
+void cnss_pci_schedule_recovery_work(void);
+extern void cnss_common_schedule_recovery_work(struct device *dev);
+
+extern int cnss_pcie_set_wlan_mac_address(const u8 *in, uint32_t len);
+extern int cnss_sdio_set_wlan_mac_address(const u8 *in, uint32_t len);
+extern int cnss_common_set_wlan_mac_address(struct device *dev,
+ const u8 *in, uint32_t len);
+
+u8 *cnss_pci_get_wlan_mac_address(uint32_t *num);
+u8 *cnss_sdio_get_wlan_mac_address(uint32_t *num);
+extern u8 *cnss_common_get_wlan_mac_address(struct device *dev, uint32_t *num);
+#endif
+#endif /* _NET_CNSS_COMMON_H_ */