ソースを参照

qcacld-3.0: Add PCIE/SNOC wrapper functions in PLD

It is not flexible to call CNSS/ICNSS APIs directly in pld_common
as PCIE and SDIO share some CNSS APIs. It will introduce "duplicate
definition" errors when SDIO is added. Hence, add wrapper functions
for all used CNSS/ICNSS APIs.

CRs-Fixed: 1022778
Change-Id: I6a38434cfa99fc47543e995dd82b7d8ddc4453a7
Yuanyuan Liu 9 年 前
コミット
59f81e020e

+ 1 - 2
core/pld/inc/pld_common.h

@@ -329,7 +329,7 @@ int pld_get_fw_files_for_target(struct device *dev,
 int pld_get_fw_image(struct device *dev,
 		     struct pld_image_desc_info *image_desc_info);
 void pld_is_pci_link_down(struct device *dev);
-int pld_pcie_shadow_control(struct device *dev, bool enable);
+int pld_shadow_control(struct device *dev, bool enable);
 int pld_get_codeswap_struct(struct device *dev,
 			    struct pld_codeswap_codeseg_info *swap_seg);
 int pld_set_wlan_unsafe_channel(struct device *dev, u16 *unsafe_ch_list,
@@ -349,7 +349,6 @@ void pld_remove_pm_qos(struct device *dev);
 int pld_request_bus_bandwidth(struct device *dev, int bandwidth);
 int pld_get_platform_cap(struct device *dev, struct pld_platform_cap *cap);
 void pld_set_driver_status(struct device *dev, enum pld_driver_status status);
-int pld_get_bmi_setup(struct device *dev);
 int pld_get_sha_hash(struct device *dev, const u8 *data,
 		     u32 data_len, u8 *hash_idx, u8 *out);
 void *pld_get_fw_ptr(struct device *dev);

+ 31 - 58
core/pld/src/pld_common.c

@@ -428,7 +428,7 @@ void pld_is_pci_link_down(struct device *dev)
 {
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		cnss_wlan_pci_link_down();
+		pld_pcie_link_down();
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -439,7 +439,7 @@ void pld_is_pci_link_down(struct device *dev)
 }
 
 /**
- * pld_pcie_shadow_control() - Control pci shadow registers
+ * pld_shadow_control() - Control pci shadow registers
  * @dev: device
  * @enable: 0 for disable, 1 for enable
  *
@@ -450,14 +450,13 @@ void pld_is_pci_link_down(struct device *dev)
  * Return: 0 for success
  *         Non zero failure code for errors
  */
-int pld_pcie_shadow_control(struct device *dev, bool enable)
+int pld_shadow_control(struct device *dev, bool enable)
 {
 	int ret = 0;
 
-	/* cnss_shadow_control is not supported on BF64.0.3 kernel yet
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		ret = cnss_shadow_control(enable);
+		ret = pld_pcie_shadow_control(enable);
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -465,7 +464,7 @@ int pld_pcie_shadow_control(struct device *dev, bool enable)
 		ret = -EINVAL;
 		break;
 	}
-	*/
+
 	return ret;
 }
 
@@ -514,8 +513,8 @@ int pld_set_wlan_unsafe_channel(struct device *dev,
 
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		ret = cnss_set_wlan_unsafe_channel(unsafe_ch_list,
-						   ch_count);
+		ret = pld_pcie_set_wlan_unsafe_channel(unsafe_ch_list,
+						       ch_count);
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -546,8 +545,8 @@ int pld_get_wlan_unsafe_channel(struct device *dev, u16 *unsafe_ch_list,
 
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		ret = cnss_get_wlan_unsafe_channel(unsafe_ch_list,
-						   ch_count, buf_len);
+		ret = pld_pcie_get_wlan_unsafe_channel(unsafe_ch_list,
+						       ch_count, buf_len);
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -574,7 +573,7 @@ int pld_wlan_set_dfs_nol(struct device *dev, void *info, u16 info_len)
 
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		ret = cnss_wlan_set_dfs_nol(info, info_len);
+		ret = pld_pcie_wlan_set_dfs_nol(info, info_len);
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -603,7 +602,7 @@ int pld_wlan_get_dfs_nol(struct device *dev, void *info, u16 info_len)
 
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		ret = cnss_wlan_get_dfs_nol(info, info_len);
+		ret = pld_pcie_wlan_get_dfs_nol(info, info_len);
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -627,7 +626,7 @@ void pld_schedule_recovery_work(struct device *dev)
 {
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		cnss_schedule_recovery_work();
+		pld_pcie_schedule_recovery_work();
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -655,7 +654,7 @@ int pld_wlan_pm_control(struct device *dev, bool vote)
 
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		ret = cnss_wlan_pm_control(vote);
+		ret = pld_pcie_wlan_pm_control(vote);
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -680,7 +679,7 @@ void *pld_get_virt_ramdump_mem(struct device *dev, unsigned long *size)
 
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		mem = cnss_get_virt_ramdump_mem(size);
+		mem = pld_pcie_get_virt_ramdump_mem(size);
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -705,7 +704,7 @@ void pld_device_crashed(struct device *dev)
 {
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		cnss_device_crashed();
+		pld_pcie_device_crashed();
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -725,7 +724,7 @@ void pld_device_self_recovery(struct device *dev)
 {
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		cnss_device_self_recovery();
+		pld_pcie_device_self_recovery();
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -747,7 +746,7 @@ void pld_intr_notify_q6(struct device *dev)
 {
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		cnss_intr_notify_q6();
+		pld_pcie_intr_notify_q6();
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -770,7 +769,7 @@ void pld_request_pm_qos(struct device *dev, u32 qos_val)
 {
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		cnss_request_pm_qos(qos_val);
+		pld_pcie_request_pm_qos(qos_val);
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -792,7 +791,7 @@ void pld_remove_pm_qos(struct device *dev)
 {
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		cnss_remove_pm_qos();
+		pld_pcie_remove_pm_qos();
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -818,7 +817,7 @@ int pld_request_bus_bandwidth(struct device *dev, int bandwidth)
 
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		ret = cnss_request_bus_bandwidth(bandwidth);
+		ret = pld_pcie_request_bus_bandwidth(bandwidth);
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -879,32 +878,6 @@ void pld_set_driver_status(struct device *dev, enum pld_driver_status status)
 	}
 }
 
-/**
- * pld_get_bmi_setup() - Get BMI setup
- * @dev: device
- *
- * BMI read/write test should be run if BMI test is enabled.
- *
- * Return: BMI test setup
- */
-int pld_get_bmi_setup(struct device *dev)
-{
-	int ret = 0;
-
-	switch (pld_get_bus_type(dev)) {
-	case PLD_BUS_TYPE_PCIE:
-		ret = cnss_get_bmi_setup();
-		break;
-	case PLD_BUS_TYPE_SNOC:
-		break;
-	default:
-		ret = -EINVAL;
-		break;
-	}
-
-	return ret;
-}
-
 /**
  * pld_get_sha_hash() - Get sha hash number
  * @dev: device
@@ -925,7 +898,7 @@ int pld_get_sha_hash(struct device *dev, const u8 *data,
 
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		ret = cnss_get_sha_hash(data, data_len,
+		ret = pld_pcie_get_sha_hash(data, data_len,
 					    hash_idx, out);
 		break;
 	case PLD_BUS_TYPE_SNOC:
@@ -950,7 +923,7 @@ void *pld_get_fw_ptr(struct device *dev)
 
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		ptr = cnss_get_fw_ptr();
+		ptr = pld_pcie_get_fw_ptr();
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -975,7 +948,7 @@ int pld_auto_suspend(struct device *dev)
 
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		ret = cnss_auto_suspend();
+		ret = pld_pcie_auto_suspend();
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -1000,7 +973,7 @@ int pld_auto_resume(struct device *dev)
 
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		ret = cnss_auto_resume();
+		ret = pld_pcie_auto_resume();
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -1032,7 +1005,7 @@ int pld_ce_request_irq(struct device *dev, unsigned int ce_id,
 
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_SNOC:
-		ret = icnss_ce_request_irq(ce_id, handler, flags, name, ctx);
+		ret = pld_snoc_ce_request_irq(ce_id, handler, flags, name, ctx);
 		break;
 	case PLD_BUS_TYPE_PCIE:
 		break;
@@ -1059,7 +1032,7 @@ int pld_ce_free_irq(struct device *dev, unsigned int ce_id, void *ctx)
 
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_SNOC:
-		ret = icnss_ce_free_irq(ce_id, ctx);
+		ret = pld_snoc_ce_free_irq(ce_id, ctx);
 		break;
 	case PLD_BUS_TYPE_PCIE:
 		break;
@@ -1082,7 +1055,7 @@ void pld_enable_irq(struct device *dev, unsigned int ce_id)
 {
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_SNOC:
-		icnss_enable_irq(ce_id);
+		pld_snoc_enable_irq(ce_id);
 		break;
 	case PLD_BUS_TYPE_PCIE:
 		break;
@@ -1103,7 +1076,7 @@ void pld_disable_irq(struct device *dev, unsigned int ce_id)
 {
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_SNOC:
-		icnss_disable_irq(ce_id);
+		pld_snoc_disable_irq(ce_id);
 		break;
 	case PLD_BUS_TYPE_PCIE:
 		break;
@@ -1154,7 +1127,7 @@ int pld_get_ce_id(struct device *dev, int irq)
 
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_SNOC:
-		ret = icnss_get_ce_id(irq);
+		ret = pld_snoc_get_ce_id(irq);
 		break;
 	case PLD_BUS_TYPE_PCIE:
 		ret = pld_pcie_get_ce_id(irq);
@@ -1177,7 +1150,7 @@ void pld_lock_pm_sem(struct device *dev)
 {
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		cnss_lock_pm_sem();
+		pld_pcie_lock_pm_sem();
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;
@@ -1197,7 +1170,7 @@ void pld_release_pm_sem(struct device *dev)
 {
 	switch (pld_get_bus_type(dev)) {
 	case PLD_BUS_TYPE_PCIE:
-		cnss_release_pm_sem();
+		pld_pcie_release_pm_sem();
 		break;
 	case PLD_BUS_TYPE_SNOC:
 		break;

+ 277 - 0
core/pld/src/pld_pcie.c

@@ -443,6 +443,66 @@ int pld_pcie_set_fw_debug_mode(bool mode)
 {
 	return cnss_set_fw_debug_mode(mode);
 }
+
+/**
+ * pld_pcie_intr_notify_q6() - Notify Q6 FW interrupts
+ *
+ * Notify Q6 that a FW interrupt is triggered.
+ *
+ * Return: void
+ */
+void pld_pcie_intr_notify_q6(void)
+{
+	cnss_intr_notify_q6();
+}
+#endif
+
+#ifdef CONFIG_CNSS_SECURE_FW
+/**
+ * pld_pcie_get_sha_hash() - Get sha hash number
+ * @data: input data
+ * @data_len: data length
+ * @hash_idx: hash index
+ * @out:  output buffer
+ *
+ * Return computed hash to the out buffer.
+ *
+ * Return: 0 for success
+ *         Non zero failure code for errors
+ */
+int pld_pcie_get_sha_hash(const u8 *data,
+			  u32 data_len, u8 *hash_idx, u8 *out)
+{
+	return cnss_get_sha_hash(data, data_len, hash_idx, out);
+}
+
+/**
+ * pld_pcie_get_fw_ptr() - Get secure FW memory address
+ *
+ * Return: secure memory address
+ */
+void *pld_pcie_get_fw_ptr(void)
+{
+	return cnss_get_fw_ptr();
+}
+#endif
+
+#ifdef CONFIG_PCI_MSM
+/**
+ * pld_wlan_pm_control() - WLAN PM control on PCIE
+ * @vote: 0 for enable PCIE PC, 1 for disable PCIE PC
+ *
+ * This is for PCIE power collaps control during suspend/resume.
+ * When PCIE power collaps is disabled, WLAN FW can access memory
+ * through PCIE when system is suspended.
+ *
+ * Return: 0 for success
+ *         Non zero failure code for errors
+ */
+int pld_pcie_wlan_pm_control(bool vote)
+{
+	return cnss_wlan_pm_control(vote);
+}
 #endif
 
 /**
@@ -589,6 +649,223 @@ void pld_pcie_set_driver_status(enum pld_driver_status status)
 	}
 	cnss_set_driver_status(cnss_status);
 }
+
+/**
+ * pld_pcie_link_down() - Notification for pci link down event
+ *
+ * Notify platform that pci link is down.
+ *
+ * Return: void
+ */
+void pld_pcie_link_down(void)
+{
+	cnss_wlan_pci_link_down();
+}
+
+/**
+ * pld_pcie_shadow_control() - Control pci shadow registers
+ * @enable: 0 for disable, 1 for enable
+ *
+ * This function is for suspend/resume. It can control if we
+ * use pci shadow registers (for saving config space) or not.
+ * During suspend we disable it to avoid config space corruption.
+ *
+ * Return: 0 for success
+ *         Non zero failure code for errors
+ */
+int pld_pcie_shadow_control(bool enable)
+{
+	/* cnss_shadow_control is not supported on LA.BF64.0.3
+	 * Disable it for now
+	 */
+
+	/* return cnss_shadow_control(enable); */
+
+	return 0;
+}
+
+/**
+ * pld_pcie_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_pcie_set_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 ch_count)
+{
+	return cnss_set_wlan_unsafe_channel(unsafe_ch_list, ch_count);
+}
+
+/**
+ * pld_pcie_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_pcie_get_wlan_unsafe_channel(u16 *unsafe_ch_list,
+				     u16 *ch_count, u16 buf_len)
+{
+	return cnss_get_wlan_unsafe_channel(unsafe_ch_list, ch_count, buf_len);
+}
+
+/**
+ * pld_pcie_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_pcie_wlan_set_dfs_nol(void *info, u16 info_len)
+{
+	return cnss_wlan_set_dfs_nol(info, info_len);
+}
+
+/**
+ * pld_pcie_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_pcie_wlan_get_dfs_nol(void *info, u16 info_len)
+{
+	return cnss_wlan_get_dfs_nol(info, info_len);
+}
+
+/**
+ * pld_pcie_schedule_recovery_work() - Schedule recovery work
+ *
+ * Return: void
+ */
+void pld_pcie_schedule_recovery_work(void)
+{
+	cnss_schedule_recovery_work();
+}
+
+/**
+ * pld_pcie_get_virt_ramdump_mem() - Get virtual ramdump memory
+ * @size: buffer to virtual memory size
+ *
+ * Return: virtual ramdump memory address
+ */
+void *pld_pcie_get_virt_ramdump_mem(unsigned long *size)
+{
+	return cnss_get_virt_ramdump_mem(size);
+}
+
+/**
+ * pld_pcie_device_crashed() - Notification for device crash event
+ *
+ * Notify subsystem a device crashed event. A subsystem restart
+ * is expected to happen after calling this function.
+ *
+ * Return: void
+ */
+void pld_pcie_device_crashed(void)
+{
+	cnss_device_crashed();
+}
+
+/**
+ * pld_pcie_device_self_recovery() - Device self recovery
+ *
+ * Return: void
+ */
+void pld_pcie_device_self_recovery(void)
+{
+	cnss_device_self_recovery();
+}
+
+/**
+ * pld_pcie_request_pm_qos() - Request system PM
+ * @qos_val: request value
+ *
+ * It votes for the value of aggregate QoS expectations.
+ *
+ * Return: void
+ */
+void pld_pcie_request_pm_qos(u32 qos_val)
+{
+	cnss_request_pm_qos(qos_val);
+}
+
+/**
+ * pld_pcie_remove_pm_qos() - Remove system PM
+ *
+ * Remove the vote request for Qos expectations.
+ *
+ * Return: void
+ */
+void pld_pcie_remove_pm_qos(void)
+{
+	cnss_remove_pm_qos();
+}
+
+/**
+ * pld_pcie_request_bus_bandwidth() - Request bus bandwidth
+ * @bandwidth: bus bandwidth
+ *
+ * Votes for HIGH/MEDIUM/LOW bus bandwidth.
+ *
+ * Return: 0 for success
+ *         Non zero failure code for errors
+ */
+int pld_pcie_request_bus_bandwidth(int bandwidth)
+{
+	return cnss_request_bus_bandwidth(bandwidth);
+}
+
+/**
+ * pld_pcie_auto_suspend() - Auto suspend
+ *
+ * Return: 0 for success
+ *         Non zero failure code for errors
+ */
+int pld_pcie_auto_suspend(void)
+{
+	return cnss_auto_suspend();
+}
+
+/**
+ * pld_pcie_auto_resume() - Auto resume
+ *
+ * Return: 0 for success
+ *         Non zero failure code for errors
+ */
+int pld_pcie_auto_resume(void)
+{
+	return cnss_auto_resume();
+}
+
+/**
+ * pld_pcie_lock_pm_sem() - Lock PM semaphore
+ *
+ * Return: void
+ */
+void pld_pcie_lock_pm_sem(void)
+{
+	cnss_lock_pm_sem();
+}
+
+/**
+ * pld_pcie_release_pm_sem() - Release PM semaphore
+ *
+ * Return: void
+ */
+void pld_pcie_release_pm_sem(void)
+{
+	cnss_release_pm_sem();
+}
 #endif
 
 #endif

+ 49 - 27
core/pld/src/pld_pcie.h

@@ -65,7 +65,7 @@ static inline int pld_pcie_set_fw_debug_mode(bool enablefwlog)
 {
 	return 0;
 }
-static inline void cnss_intr_notify_q6(void)
+static inline void pld_pcie_intr_notify_q6(void)
 {
 	return;
 }
@@ -74,25 +74,32 @@ int pld_pcie_wlan_enable(struct pld_wlan_enable_cfg *config,
 			 enum pld_driver_mode mode, const char *host_version);
 int pld_pcie_wlan_disable(enum pld_driver_mode mode);
 int pld_pcie_set_fw_debug_mode(bool enablefwlog);
+void pld_pcie_intr_notify_q6(void);
 #endif
 
 #if (!defined(CONFIG_PLD_PCIE_CNSS)) || (!defined(CONFIG_CNSS_SECURE_FW))
-static inline int cnss_get_sha_hash(const u8 *data,
-				    u32 data_len, u8 *hash_idx, u8 *out)
+static inline int pld_pcie_get_sha_hash(const u8 *data,
+					u32 data_len, u8 *hash_idx, u8 *out)
 {
 	return 0;
 }
-static inline void *cnss_get_fw_ptr(void)
+static inline void *pld_pcie_get_fw_ptr(void)
 {
 	return NULL;
 }
+#else
+int pld_pcie_get_sha_hash(const u8 *data,
+			  u32 data_len, u8 *hash_idx, u8 *out);
+void *pld_pcie_get_fw_ptr(void);
 #endif
 
 #if (!defined(CONFIG_PLD_PCIE_CNSS)) || (!defined(CONFIG_PCI_MSM))
-static inline int cnss_wlan_pm_control(bool vote)
+static inline int pld_pcie_wlan_pm_control(bool vote)
 {
 	return 0;
 }
+#else
+int pld_pcie_wlan_pm_control(bool vote);
 #endif
 
 #ifndef CONFIG_PLD_PCIE_CNSS
@@ -108,11 +115,11 @@ pld_pcie_get_fw_image(struct pld_image_desc_info *image_desc_info)
 {
 	return 0;
 }
-static inline void cnss_wlan_pci_link_down(void)
+static inline void pld_pcie_link_down(void)
 {
 	return;
 }
-static inline int cnss_pcie_shadow_control(bool enable)
+static inline int pld_pcie_shadow_control(bool enable)
 {
 	return 0;
 }
@@ -122,48 +129,49 @@ pld_pcie_get_codeswap_struct(struct pld_codeswap_codeseg_info *swap_seg)
 	return 0;
 }
 static inline int
-cnss_set_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 ch_count)
+pld_pcie_set_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 ch_count)
 {
 	return 0;
 }
-static inline int cnss_get_wlan_unsafe_channel(u16 *unsafe_ch_list,
-				u16 *ch_count, u16 buf_len)
+static inline int
+pld_pcie_get_wlan_unsafe_channel(u16 *unsafe_ch_list,
+				 u16 *ch_count, u16 buf_len)
 {
 	return 0;
 }
-static inline int cnss_wlan_set_dfs_nol(void *info, u16 info_len)
+static inline int pld_pcie_wlan_set_dfs_nol(void *info, u16 info_len)
 {
 	return 0;
 }
-static inline int cnss_wlan_get_dfs_nol(void *info, u16 info_len)
+static inline int pld_pcie_wlan_get_dfs_nol(void *info, u16 info_len)
 {
 	return 0;
 }
-static void cnss_schedule_recovery_work(void)
+static void pld_pcie_schedule_recovery_work(void)
 {
 	return;
 }
-static inline void *cnss_get_virt_ramdump_mem(unsigned long *size)
+static inline void *pld_pcie_get_virt_ramdump_mem(unsigned long *size)
 {
 	return NULL;
 }
-static inline void cnss_device_crashed(void)
+static inline void pld_pcie_device_crashed(void)
 {
 	return;
 }
-static inline void cnss_device_self_recovery(void)
+static inline void pld_pcie_device_self_recovery(void)
 {
 	return;
 }
-static inline void cnss_request_pm_qos(u32 qos_val)
+static inline void pld_pcie_request_pm_qos(u32 qos_val)
 {
 	return;
 }
-static inline void cnss_remove_pm_qos(void)
+static inline void pld_pcie_remove_pm_qos(void)
 {
 	return;
 }
-static inline int cnss_request_bus_bandwidth(int bandwidth)
+static inline int pld_pcie_request_bus_bandwidth(int bandwidth)
 {
 	return 0;
 }
@@ -175,23 +183,19 @@ static inline void pld_pcie_set_driver_status(enum pld_driver_status status)
 {
 	return;
 }
-static inline int cnss_get_bmi_setup(void)
-{
-	return 0;
-}
-static inline int cnss_auto_suspend(void)
+static inline int pld_pcie_auto_suspend(void)
 {
 	return 0;
 }
-static inline int cnss_auto_resume(void)
+static inline int pld_pcie_auto_resume(void)
 {
 	return 0;
 }
-static void cnss_lock_pm_sem(void)
+static void pld_pcie_lock_pm_sem(void)
 {
 	return;
 }
-static void cnss_release_pm_sem(void)
+static void pld_pcie_release_pm_sem(void)
 {
 	return;
 }
@@ -202,6 +206,24 @@ int pld_pcie_get_fw_image(struct pld_image_desc_info *image_desc_info);
 int pld_pcie_get_codeswap_struct(struct pld_codeswap_codeseg_info *swap_seg);
 int pld_pcie_get_platform_cap(struct pld_platform_cap *cap);
 void pld_pcie_set_driver_status(enum pld_driver_status status);
+void pld_pcie_link_down(void);
+int pld_pcie_shadow_control(bool enable);
+int pld_pcie_set_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 ch_count);
+int pld_pcie_get_wlan_unsafe_channel(u16 *unsafe_ch_list,
+				     u16 *ch_count, u16 buf_len);
+int pld_pcie_wlan_set_dfs_nol(void *info, u16 info_len);
+int pld_pcie_wlan_get_dfs_nol(void *info, u16 info_len);
+void pld_pcie_schedule_recovery_work(void);
+void *pld_pcie_get_virt_ramdump_mem(unsigned long *size);
+void pld_pcie_device_crashed(void);
+void pld_pcie_device_self_recovery(void);
+void pld_pcie_request_pm_qos(u32 qos_val);
+void pld_pcie_remove_pm_qos(void);
+int pld_pcie_request_bus_bandwidth(int bandwidth);
+int pld_pcie_auto_suspend(void);
+int pld_pcie_auto_resume(void);
+void pld_pcie_lock_pm_sem(void);
+void pld_pcie_release_pm_sem(void);
 #endif
 
 #endif

+ 64 - 0
core/pld/src/pld_snoc.c

@@ -314,4 +314,68 @@ int pld_snoc_get_soc_info(struct pld_soc_info *info)
 	return 0;
 }
 
+/**
+ * pld_snoc_ce_request_irq() - Register IRQ for CE
+ * @ce_id: CE number
+ * @handler: IRQ callback function
+ * @flags: IRQ flags
+ * @name: IRQ name
+ * @ctx: IRQ context
+ *
+ * Return: 0 for success
+ *         Non zero failure code for errors
+ */
+int pld_snoc_ce_request_irq(unsigned int ce_id,
+			    irqreturn_t (*handler)(int, void *),
+			    unsigned long flags, const char *name, void *ctx)
+{
+	return icnss_ce_request_irq(ce_id, handler, flags, name, ctx);
+}
+
+/**
+ * pld_snoc_ce_free_irq() - Free IRQ for CE
+ * @ce_id: CE number
+ * @ctx: IRQ context
+ *
+ * Return: 0 for success
+ *         Non zero failure code for errors
+ */
+int pld_snoc_ce_free_irq(unsigned int ce_id, void *ctx)
+{
+	return icnss_ce_free_irq(ce_id, ctx);
+}
+
+/**
+ * pld_snoc_enable_irq() - Enable IRQ for CE
+ * @ce_id: CE number
+ *
+ * Return: void
+ */
+void pld_snoc_enable_irq(unsigned int ce_id)
+{
+	icnss_enable_irq(ce_id);
+}
+
+/**
+ * pld_snoc_disable_irq() - Disable IRQ for CE
+ * @ce_id: CE number
+ *
+ * Return: void
+ */
+void pld_snoc_disable_irq(unsigned int ce_id)
+{
+	icnss_disable_irq(ce_id);
+}
+
+/**
+ * pld_snoc_get_ce_id() - Get CE number for the provided IRQ
+ * @irq: IRQ number
+ *
+ * Return: CE number
+ */
+int pld_snoc_get_ce_id(int irq)
+{
+	icnss_get_ce_id(irq);
+}
+
 #endif

+ 13 - 10
core/pld/src/pld_snoc.h

@@ -49,33 +49,29 @@ static inline int pld_snoc_wlan_disable(enum pld_driver_mode mode)
 {
 	return 0;
 }
-static inline int icnss_ce_request_irq(unsigned int ce_id,
+static inline int pld_snoc_ce_request_irq(unsigned int ce_id,
 		       irqreturn_t (*handler)(int, void *),
 		       unsigned long flags, const char *name, void *ctx)
 {
 	return 0;
 }
-static inline int icnss_ce_free_irq(unsigned int ce_id, void *ctx)
+static inline int pld_snoc_ce_free_irq(unsigned int ce_id, void *ctx)
 {
 	return 0;
 }
-static inline void icnss_enable_irq(unsigned int ce_id)
+static inline void pld_snoc_enable_irq(unsigned int ce_id)
 {
 	return;
 }
-static inline void icnss_disable_irq(unsigned int ce_id)
+static inline void pld_snoc_disable_irq(unsigned int ce_id)
 {
 	return;
 }
-static inline int icnss_get_soc_info(struct pld_soc_info *info)
-{
-	return 0;
-}
-static inline int icnss_get_ce_id(int irq)
+static inline int pld_snoc_get_soc_info(struct pld_soc_info *info)
 {
 	return 0;
 }
-static inline int pld_snoc_get_soc_info(struct pld_soc_info *info)
+static inline int pld_snoc_get_ce_id(int irq)
 {
 	return 0;
 }
@@ -86,6 +82,13 @@ int pld_snoc_wlan_enable(struct pld_wlan_enable_cfg *config,
 			 enum pld_driver_mode mode, const char *host_version);
 int pld_snoc_wlan_disable(enum pld_driver_mode mode);
 int pld_snoc_get_soc_info(struct pld_soc_info *info);
+int pld_snoc_ce_request_irq(unsigned int ce_id,
+			    irqreturn_t (*handler)(int, void *),
+			    unsigned long flags, const char *name, void *ctx);
+int pld_snoc_ce_free_irq(unsigned int ce_id, void *ctx);
+void pld_snoc_enable_irq(unsigned int ce_id);
+void pld_snoc_disable_irq(unsigned int ce_id);
+int pld_snoc_get_ce_id(int irq);
 #endif
 
 #endif