Przeglądaj źródła

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
Yuanyuan Liu 8 lat temu
rodzic
commit
d555ef181e
3 zmienionych plików z 89 dodań i 1 usunięć
  1. 6 0
      core/pld/src/pld_common.c
  2. 59 0
      core/pld/src/pld_snoc.c
  3. 24 1
      core/pld/src/pld_snoc.h

+ 6 - 0
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;

+ 59 - 0
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

+ 24 - 1
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