cnss: Refactor CNSS Platform Driver for better code maintenance

Retain API's in cnss_common.h file for cnss use only. cnss.h is to
be used to expose the EXPORT_SYMBOL API's.

CRs-Fixed: 1009898
Change-Id: I2b9eb81552f4803c3accd0221ea891697a9a93bc
Signed-off-by: Komal Kumar <kseelam@codeaurora.org>
This commit is contained in:
Komal Seelam 2016-04-28 14:00:01 +05:30 committed by Gerrit - the friendly Code Review server
parent 7099c2a6d2
commit 7a63bcdb97
6 changed files with 74 additions and 81 deletions

View file

@ -21,7 +21,7 @@
#include <linux/mutex.h>
#include <linux/rwsem.h>
#include <net/cnss.h>
#include <net/cnss_common.h>
#include "cnss_common.h"
#include <net/cfg80211.h>
enum cnss_dev_bus_type {

View file

@ -0,0 +1,40 @@
/* 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_
#define MAX_FIRMWARE_SIZE (1 * 1024 * 1024)
/* max 20mhz channel count */
#define CNSS_MAX_CH_NUM 45
int cnss_pci_request_bus_bandwidth(int bandwidth);
int cnss_sdio_request_bus_bandwidth(int bandwidth);
void cnss_sdio_device_crashed(void);
void cnss_pci_device_crashed(void);
void cnss_pci_device_self_recovery(void);
void cnss_sdio_device_self_recovery(void);
void *cnss_pci_get_virt_ramdump_mem(unsigned long *size);
void *cnss_sdio_get_virt_ramdump_mem(unsigned long *size);
void cnss_sdio_schedule_recovery_work(void);
void cnss_pci_schedule_recovery_work(void);
int cnss_pcie_set_wlan_mac_address(const u8 *in, uint32_t len);
int cnss_sdio_set_wlan_mac_address(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);
#endif /* _NET_CNSS_COMMON_H_ */

View file

@ -48,7 +48,7 @@
#include <net/cfg80211.h>
#include <soc/qcom/memory_dump.h>
#include <net/cnss.h>
#include <net/cnss_common.h>
#include "cnss_common.h"
#ifdef CONFIG_WCNSS_MEM_PRE_ALLOC
#include <net/cnss_prealloc.h>
@ -2059,7 +2059,6 @@ end:
*num = 0;
return NULL;
}
EXPORT_SYMBOL(cnss_pci_get_wlan_mac_address);
/**
* cnss_get_wlan_mac_address() - API to return MAC addresses buffer
@ -2149,7 +2148,6 @@ int cnss_pcie_set_wlan_mac_address(const u8 *in, uint32_t len)
}
return 0;
}
EXPORT_SYMBOL(cnss_pcie_set_wlan_mac_address);
int cnss_wlan_register_driver(struct cnss_wlan_driver *driver)
{

View file

@ -27,7 +27,7 @@
#include <soc/qcom/ramdump.h>
#include <soc/qcom/memory_dump.h>
#include <net/cnss.h>
#include <net/cnss_common.h>
#include "cnss_common.h"
#include <linux/pm_qos.h>
#include <linux/msm-bus.h>
#include <linux/msm-bus-board.h>
@ -1161,14 +1161,12 @@ int cnss_sdio_set_wlan_mac_address(const u8 *in, uint32_t len)
{
return 0;
}
EXPORT_SYMBOL(cnss_sdio_set_wlan_mac_address);
u8 *cnss_sdio_get_wlan_mac_address(uint32_t *num)
{
*num = 0;
return NULL;
}
EXPORT_SYMBOL(cnss_sdio_get_wlan_mac_address);
static const struct of_device_id cnss_sdio_dt_match[] = {
{.compatible = "qcom,cnss_sdio"},

View file

@ -15,7 +15,6 @@
#include <linux/device.h>
#include <linux/skbuff.h>
#include <linux/pci.h>
#include <net/cnss_common.h>
#include <linux/mmc/sdio_func.h>
#ifdef CONFIG_CNSS
@ -212,4 +211,35 @@ extern int cnss_wlan_query_oob_status(void);
extern int cnss_wlan_register_oob_irq_handler(oob_irq_handler_t handler,
void *pm_oob);
extern int cnss_wlan_unregister_oob_irq_handler(void *pm_oob);
extern void cnss_dump_stack(struct task_struct *task);
extern u8 *cnss_common_get_wlan_mac_address(struct device *dev, uint32_t *num);
extern void cnss_init_work(struct work_struct *work, work_func_t func);
extern void cnss_flush_delayed_work(void *dwork);
extern void cnss_flush_work(void *work);
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 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 int cnss_common_request_bus_bandwidth(struct device *dev, int
bandwidth);
extern void cnss_common_device_crashed(struct device *dev);
extern void cnss_common_device_self_recovery(struct device *dev);
extern void *cnss_common_get_virt_ramdump_mem(struct device *dev, unsigned long
*size);
extern void cnss_common_schedule_recovery_work(struct device *dev);
extern int cnss_common_set_wlan_mac_address(struct device *dev, const u8 *in,
uint32_t len);
extern u8 *cnss_common_get_wlan_mac_address(struct device *dev, uint32_t *num);
#endif /* _NET_CNSS_H_ */

View file

@ -1,73 +0,0 @@
/* 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_ */