diff options
| -rw-r--r-- | drivers/net/wireless/cnss/cnss_common.c | 16 | ||||
| -rw-r--r-- | drivers/soc/qcom/icnss.c | 14 | ||||
| -rw-r--r-- | include/net/cnss.h | 10 | ||||
| -rw-r--r-- | include/soc/qcom/icnss.h | 9 |
4 files changed, 46 insertions, 3 deletions
diff --git a/drivers/net/wireless/cnss/cnss_common.c b/drivers/net/wireless/cnss/cnss_common.c index 7805882aa6fe..0b73f37afd94 100644 --- a/drivers/net/wireless/cnss/cnss_common.c +++ b/drivers/net/wireless/cnss/cnss_common.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. +/* Copyright (c) 2015-2017, 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 @@ -68,6 +68,8 @@ static struct cnss_dfs_nol_info { u16 dfs_nol_info_len; } dfs_nol_info; +static enum cnss_cc_src cnss_cc_source = CNSS_SOURCE_CORE; + int cnss_set_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 ch_count) { struct cnss_unsafe_channel_list *unsafe_list; @@ -491,6 +493,18 @@ int cnss_get_fw_files_for_target(struct cnss_fw_files *pfw_files, } EXPORT_SYMBOL(cnss_get_fw_files_for_target); +void cnss_set_cc_source(enum cnss_cc_src cc_source) +{ + cnss_cc_source = cc_source; +} +EXPORT_SYMBOL(cnss_set_cc_source); + +enum cnss_cc_src cnss_get_cc_source(void) +{ + return cnss_cc_source; +} +EXPORT_SYMBOL(cnss_get_cc_source); + const char *cnss_wlan_get_evicted_data_file(void) { return FW_FILES_QCA6174_FW_3_0.evicted_data; diff --git a/drivers/soc/qcom/icnss.c b/drivers/soc/qcom/icnss.c index 8c242bc7a702..92dc7a352ad9 100644 --- a/drivers/soc/qcom/icnss.c +++ b/drivers/soc/qcom/icnss.c @@ -366,6 +366,8 @@ static struct icnss_priv { bool bypass_s1_smmu; } *penv; +static enum cnss_cc_src cnss_cc_source = CNSS_SOURCE_CORE; + #ifdef CONFIG_ICNSS_DEBUG static void icnss_ignore_qmi_timeout(bool ignore) { @@ -939,6 +941,18 @@ static int icnss_hw_power_off(struct icnss_priv *priv) return ret; } +void cnss_set_cc_source(enum cnss_cc_src cc_source) +{ + cnss_cc_source = cc_source; +} +EXPORT_SYMBOL(cnss_set_cc_source); + +enum cnss_cc_src cnss_get_cc_source(void) +{ + return cnss_cc_source; +} +EXPORT_SYMBOL(cnss_get_cc_source); + int icnss_power_on(struct device *dev) { struct icnss_priv *priv = dev_get_drvdata(dev); diff --git a/include/net/cnss.h b/include/net/cnss.h index be58e32e6c7a..d6f27759af17 100644 --- a/include/net/cnss.h +++ b/include/net/cnss.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. +/* Copyright (c) 2013-2017, 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 @@ -187,6 +187,12 @@ 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); +enum cnss_cc_src { + CNSS_SOURCE_CORE, + CNSS_SOURCE_11D, + CNSS_SOURCE_USER +}; + enum { CNSS_RESET_SOC = 0, CNSS_RESET_SUBSYS_COUPLED, @@ -250,4 +256,6 @@ extern u8 *cnss_common_get_wlan_mac_address(struct device *dev, uint32_t *num); extern int cnss_power_up(struct device *dev); extern int cnss_power_down(struct device *dev); extern int cnss_sdio_configure_spdt(bool state); +extern void cnss_set_cc_source(enum cnss_cc_src cc_source); +extern enum cnss_cc_src cnss_get_cc_source(void); #endif /* _NET_CNSS_H_ */ diff --git a/include/soc/qcom/icnss.h b/include/soc/qcom/icnss.h index 7ef984afc442..b434da092b8e 100644 --- a/include/soc/qcom/icnss.h +++ b/include/soc/qcom/icnss.h @@ -23,6 +23,12 @@ enum icnss_uevent { ICNSS_UEVENT_FW_DOWN, }; +enum cnss_cc_src { + CNSS_SOURCE_CORE, + CNSS_SOURCE_11D, + CNSS_SOURCE_USER +}; + struct icnss_uevent_fw_down_data { bool crashed; }; @@ -144,5 +150,6 @@ extern bool icnss_is_fw_ready(void); extern int icnss_set_wlan_mac_address(const u8 *in, const uint32_t len); extern u8 *icnss_get_wlan_mac_address(struct device *dev, uint32_t *num); extern int icnss_trigger_recovery(struct device *dev); - +extern void cnss_set_cc_source(enum cnss_cc_src cc_source); +extern enum cnss_cc_src cnss_get_cc_source(void); #endif /* _ICNSS_WLAN_H_ */ |
