summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuanyuan Liu <yuanliu@codeaurora.org>2016-08-23 13:10:59 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-09-02 18:25:46 -0700
commitd555ef181e5469fc176580e4631303d798059efc (patch)
tree4d55aeb6ed25e2440ee6e646a7a64e951bac325b
parent734dd59f32562370c24ef7c4b9dd298a090796d7 (diff)
qcacld-3.0: Call ICNSS APIs for get/set channels and dfs
Call ICNSS API for get/set unsafe channels and dfs nol when bus type is SNOC. CRs-Fixed: 1061220 Change-Id: Ic0627a14a65f07faeb5cfa0ec4fcdc85b79e3f63
-rw-r--r--core/pld/src/pld_common.c6
-rw-r--r--core/pld/src/pld_snoc.c59
-rw-r--r--core/pld/src/pld_snoc.h25
3 files changed, 89 insertions, 1 deletions
diff --git a/core/pld/src/pld_common.c b/core/pld/src/pld_common.c
index 59538421e4e7..858c821746c5 100644
--- a/core/pld/src/pld_common.c
+++ b/core/pld/src/pld_common.c
@@ -622,6 +622,8 @@ int pld_set_wlan_unsafe_channel(struct device *dev,
ch_count);
break;
case PLD_BUS_TYPE_SNOC:
+ ret = pld_snoc_set_wlan_unsafe_channel(unsafe_ch_list,
+ ch_count);
break;
case PLD_BUS_TYPE_SDIO:
/* To do get unsafe channel via cnss sdio API */
@@ -657,6 +659,8 @@ int pld_get_wlan_unsafe_channel(struct device *dev, u16 *unsafe_ch_list,
ch_count, buf_len);
break;
case PLD_BUS_TYPE_SNOC:
+ ret = pld_snoc_get_wlan_unsafe_channel(unsafe_ch_list,
+ ch_count, buf_len);
break;
case PLD_BUS_TYPE_SDIO:
/* To do get unsafe channel via cnss sdio API */
@@ -687,6 +691,7 @@ int pld_wlan_set_dfs_nol(struct device *dev, void *info, u16 info_len)
ret = pld_pcie_wlan_set_dfs_nol(info, info_len);
break;
case PLD_BUS_TYPE_SNOC:
+ ret = pld_snoc_wlan_set_dfs_nol(info, info_len);
break;
case PLD_BUS_TYPE_SDIO:
/* To do get nol via cnss sdio API */
@@ -719,6 +724,7 @@ int pld_wlan_get_dfs_nol(struct device *dev, void *info, u16 info_len)
ret = pld_pcie_wlan_get_dfs_nol(info, info_len);
break;
case PLD_BUS_TYPE_SNOC:
+ ret = pld_snoc_wlan_get_dfs_nol(info, info_len);
break;
case PLD_BUS_TYPE_SDIO:
break;
diff --git a/core/pld/src/pld_snoc.c b/core/pld/src/pld_snoc.c
index a47409b4180d..d04547c9a656 100644
--- a/core/pld/src/pld_snoc.c
+++ b/core/pld/src/pld_snoc.c
@@ -448,4 +448,63 @@ int pld_snoc_get_irq(int ce_id)
return icnss_get_irq(ce_id);
}
+/**
+ * pld_snoc_set_wlan_unsafe_channel() - Set unsafe channel
+ * @unsafe_ch_list: unsafe channel list
+ * @ch_count: number of channel
+ *
+ * Return: 0 for success
+ * Non zero failure code for errors
+ */
+int pld_snoc_set_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 ch_count)
+{
+ return icnss_set_wlan_unsafe_channel(unsafe_ch_list, ch_count);
+}
+
+/**
+ * pld_get_wlan_unsafe_channel() - Get unsafe channel
+ * @unsafe_ch_list: buffer to unsafe channel list
+ * @ch_count: number of channel
+ * @buf_len: buffer length
+ *
+ * Return WLAN unsafe channel to the buffer.
+ *
+ * Return: 0 for success
+ * Non zero failure code for errors
+ */
+int pld_snoc_get_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 *ch_count,
+ u16 buf_len)
+{
+ return icnss_get_wlan_unsafe_channel(unsafe_ch_list, ch_count,
+ buf_len);
+}
+
+/**
+ * pld_wlan_set_dfs_nol() - Set DFS info
+ * @info: DFS info
+ * @info_len: info length
+ *
+ * Return: 0 for success
+ * Non zero failure code for errors
+ */
+int pld_snoc_wlan_set_dfs_nol(const void *info, u16 info_len)
+{
+ return icnss_wlan_set_dfs_nol(info, info_len);
+}
+
+/**
+ * pld_wlan_get_dfs_nol() - Get DFS info
+ * @info: buffer to DFS info
+ * @info_len: info length
+ *
+ * Return DFS info to the buffer.
+ *
+ * Return: 0 for success
+ * Non zero failure code for errors
+ */
+int pld_snoc_wlan_get_dfs_nol(void *info, u16 info_len)
+{
+ return icnss_wlan_get_dfs_nol(info, info_len);
+}
+
#endif
diff --git a/core/pld/src/pld_snoc.h b/core/pld/src/pld_snoc.h
index ca1ce1d91cd6..e047ae2c35af 100644
--- a/core/pld/src/pld_snoc.h
+++ b/core/pld/src/pld_snoc.h
@@ -87,6 +87,25 @@ static inline int pld_snoc_get_irq(int ce_id)
{
return 0;
}
+static inline int pld_snoc_set_wlan_unsafe_channel(u16 *unsafe_ch_list,
+ u16 ch_count)
+{
+ return 0;
+}
+static inline int pld_snoc_get_wlan_unsafe_channel(u16 *unsafe_ch_list,
+ u16 *ch_count,
+ u16 buf_len)
+{
+ return 0;
+}
+static inline int pld_snoc_wlan_set_dfs_nol(const void *info, u16 info_len)
+{
+ return 0;
+}
+static inline int pld_snoc_wlan_get_dfs_nol(void *info, u16 info_len)
+{
+ return 0;
+}
#else
int pld_snoc_register_driver(void);
void pld_snoc_unregister_driver(void);
@@ -104,6 +123,10 @@ int pld_snoc_get_ce_id(int irq);
int pld_snoc_power_on(struct device *dev);
int pld_snoc_power_off(struct device *dev);
int pld_snoc_get_irq(int ce_id);
+int pld_snoc_set_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 ch_count);
+int pld_snoc_get_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 *ch_count,
+ u16 buf_len);
+int pld_snoc_wlan_set_dfs_nol(const void *info, u16 info_len);
+int pld_snoc_wlan_get_dfs_nol(void *info, u16 info_len);
#endif
-
#endif