ソースを参照

qcacld-3.0: Use PLD APIs

Replace CNSS/ICNSS APIs with PLD APIs.

Change-Id: Ic0be1ff00dd7b4fc0b125e625f5d3977f4580c5e
CRs-Fixed: 1014363
Yuanyuan Liu 9 年 前
コミット
0e0aa93d32

+ 3 - 6
core/cds/src/cds_api.c

@@ -45,10 +45,8 @@
 #include "wma_types.h"
 #include "wlan_hdd_main.h"
 #include <linux/vmalloc.h>
-#ifdef CONFIG_CNSS
-#include <net/cnss.h>
-#endif
 
+#include "pld_common.h"
 #include "sap_api.h"
 #include "qdf_trace.h"
 #include "bmi.h"
@@ -1651,6 +1649,7 @@ void cds_trigger_recovery(void)
 	tp_wma_handle wma_handle = cds_get_context(QDF_MODULE_ID_WMA);
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
 	qdf_runtime_lock_t recovery_lock;
+	qdf_device_t qdf_ctx = cds_get_context(QDF_MODULE_ID_QDF_DEVICE);
 
 	if (!wma_handle) {
 		QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
@@ -1675,15 +1674,13 @@ void cds_trigger_recovery(void)
 	if (QDF_STATUS_SUCCESS != status) {
 		QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
 			"CRASH_INJECT command is timed out!");
- #ifdef CONFIG_CNSS
 		if (cds_is_driver_recovering()) {
 			QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
 				"Recovery is in progress, ignore!");
 		} else {
 			cds_set_recovery_in_progress(true);
-			cnss_schedule_recovery_work();
+			pld_schedule_recovery_work(qdf_ctx->dev);
 		}
- #endif
 	}
 
 	qdf_runtime_pm_allow_suspend(recovery_lock);

+ 5 - 9
core/cds/src/cds_concurrency.c

@@ -65,6 +65,7 @@
 #include "cds_reg_service.h"
 #include "wlan_hdd_ipa.h"
 #include "cdp_txrx_flow_ctrl_legacy.h"
+#include "pld_common.h"
 
 static struct cds_conc_connection_info
 	conc_connection_list[MAX_NUMBER_OF_CONC_CONNECTIONS];
@@ -4445,7 +4446,6 @@ QDF_STATUS cds_get_connection_channels(uint8_t *channels,
  *
  * Return: None
  */
-#ifdef CONFIG_CNSS
 void cds_update_with_safe_channel_list(uint8_t *pcl_channels, uint32_t *len,
 				uint8_t *weight_list, uint32_t weight_len)
 {
@@ -4456,6 +4456,7 @@ void cds_update_with_safe_channel_list(uint8_t *pcl_channels, uint32_t *len,
 	uint8_t is_unsafe = 1;
 	uint8_t i, j;
 	uint32_t safe_channel_count = 0, current_channel_count = 0;
+	qdf_device_t qdf_ctx = cds_get_context(QDF_MODULE_ID_QDF_DEVICE);
 
 	if (len) {
 		current_channel_count = QDF_MIN(*len, MAX_NUM_CHAN);
@@ -4464,7 +4465,8 @@ void cds_update_with_safe_channel_list(uint8_t *pcl_channels, uint32_t *len,
 		return;
 	}
 
-	cnss_get_wlan_unsafe_channel(unsafe_channel_list,
+	pld_get_wlan_unsafe_channel(qdf_ctx->dev,
+				    unsafe_channel_list,
 				     &unsafe_channel_count,
 				     sizeof(unsafe_channel_list));
 
@@ -4501,13 +4503,7 @@ void cds_update_with_safe_channel_list(uint8_t *pcl_channels, uint32_t *len,
 	}
 	return;
 }
-#else
-void cds_update_with_safe_channel_list(uint8_t *pcl_channels, uint32_t *len,
-				uint8_t *weight_list, uint32_t weight_len)
-{
-	return;
-}
-#endif
+
 /**
  * cds_get_channel_list() - provides the channel list
  * suggestion for new connection

+ 4 - 6
core/dp/txrx/ol_rx.c

@@ -59,11 +59,7 @@
 #include <wma.h>
 #include <cds_concurrency.h>
 
-#ifdef HTT_RX_RESTORE
-#if  defined(CONFIG_CNSS)
-#include <net/cnss.h>
-#endif
-#endif
+#include <pld_common.h>
 
 void ol_rx_data_process(struct ol_txrx_peer_t *peer,
 			qdf_nbuf_t rx_buf_list);
@@ -73,9 +69,11 @@ void ol_rx_data_process(struct ol_txrx_peer_t *peer,
 
 static void ol_rx_restore_handler(struct work_struct *htt_rx)
 {
+	qdf_device_t qdf_ctx = cds_get_context(QDF_MODULE_ID_QDF_DEVICE);
+
 	QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_INFO,
 		  "Enter: %s", __func__);
-	cnss_device_self_recovery();
+	pld_device_self_recovery(qdf_ctx->dev);
 	QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_INFO,
 		  "Exit: %s", __func__);
 }

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

@@ -327,6 +327,7 @@ int pld_get_wlan_unsafe_channel(struct device *dev, u16 *unsafe_ch_list,
 				u16 *ch_count, u16 buf_len);
 int pld_wlan_set_dfs_nol(struct device *dev, void *info, u16 info_len);
 int pld_wlan_get_dfs_nol(struct device *dev, void *info, u16 info_len);
+void pld_schedule_recovery_work(struct device *dev);
 int pld_wlan_pm_control(struct device *dev, bool vote);
 void *pld_get_virt_ramdump_mem(struct device *dev, unsigned long *size);
 void pld_device_crashed(struct device *dev);

+ 22 - 0
core/pld/src/pld_common.c

@@ -586,6 +586,28 @@ int pld_wlan_get_dfs_nol(struct device *dev, void *info, u16 info_len)
 	return ret;
 }
 
+/**
+ * pld_schedule_recovery_work() - Schedule recovery work
+ * @dev: device
+ *
+ * Schedule a system self recovery work.
+ *
+ * Return: void
+ */
+void pld_schedule_recovery_work(struct device *dev)
+{
+	switch (pld_get_bus_type(dev)) {
+	case PLD_BUS_TYPE_PCIE:
+		cnss_schedule_recovery_work();
+		break;
+	case PLD_BUS_TYPE_SNOC:
+		break;
+	default:
+		pr_err("Invalid device type\n");
+		break;
+	}
+}
+
 /**
  * pld_wlan_pm_control() - WLAN PM control on PCIE
  * @dev: device

+ 4 - 0
core/pld/src/pld_pcie.h

@@ -138,6 +138,10 @@ static inline int cnss_wlan_get_dfs_nol(void *info, u16 info_len)
 {
 	return 0;
 }
+static void cnss_schedule_recovery_work(void)
+{
+	return;
+}
 static inline void *cnss_get_virt_ramdump_mem(unsigned long *size)
 {
 	return NULL;

+ 4 - 14
core/sap/src/sap_ch_select.c

@@ -54,9 +54,7 @@
 #include "parser_api.h"
 #endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
 
-#ifdef CONFIG_CNSS
-#include <net/cnss.h>
-#endif
+#include "pld_common.h"
 
 /*--------------------------------------------------------------------------
    Function definitions
@@ -367,12 +365,12 @@ void sap_process_avoid_ie(tHalHandle hal,
    RETURN VALUE
     NULL
    ============================================================================*/
-#ifdef CONFIG_CNSS
 void sap_update_unsafe_channel_list(ptSapContext pSapCtx)
 {
 	uint16_t i, j;
 	uint16_t unsafe_channel_list[NUM_CHANNELS];
 	uint16_t unsafe_channel_count = 0;
+	qdf_device_t qdf_ctx = cds_get_context(QDF_MODULE_ID_QDF_DEVICE);
 
 	/* Flush, default set all channel safe */
 	for (i = 0; i < NUM_CHANNELS; i++) {
@@ -395,8 +393,8 @@ void sap_update_unsafe_channel_list(ptSapContext pSapCtx)
 		}
 	}
 #endif
-
-	cnss_get_wlan_unsafe_channel(unsafe_channel_list,
+	pld_get_wlan_unsafe_channel(qdf_ctx->dev,
+				    unsafe_channel_list,
 				     &unsafe_channel_count,
 				     sizeof(unsafe_channel_list));
 
@@ -417,14 +415,6 @@ void sap_update_unsafe_channel_list(ptSapContext pSapCtx)
 
 	return;
 }
-#else
-void sap_update_unsafe_channel_list(ptSapContext pSapCtx)
-{
-	QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_ERROR,
-			  "%s: Not implemented", __func__);
-	return;
-}
-#endif
 
 #endif /* FEATURE_WLAN_CH_AVOID */
 

+ 9 - 9
core/utils/epping/src/epping_txrx.c

@@ -44,9 +44,7 @@
 #include <wlan_ptt_sock_svc.h>
 #include <linux/wireless.h>
 #include <net/cfg80211.h>
-#if defined(MSM_PLATFORM) && defined(HIF_PCI)
-#include <net/cnss.h>
-#endif /* MSM_PLATFORM */
+#include <pld_common.h>
 #include <linux/rtnetlink.h>
 #include <linux/semaphore.h>
 #include <linux/ctype.h>
@@ -229,28 +227,30 @@ static int epping_set_mac_address(struct net_device *dev, void *addr)
 
 static void epping_stop_adapter(epping_adapter_t *pAdapter)
 {
+	qdf_device_t qdf_ctx = cds_get_context(QDF_MODULE_ID_QDF_DEVICE);
+
 	if (pAdapter && pAdapter->started) {
 		EPPING_LOG(LOG1, FL("Disabling queues"));
 		netif_tx_disable(pAdapter->dev);
 		netif_carrier_off(pAdapter->dev);
 		pAdapter->started = false;
-#if defined(MSM_PLATFORM) && defined(HIF_PCI) && defined(CONFIG_CNSS)
-		cnss_request_bus_bandwidth(CNSS_BUS_WIDTH_LOW);
-#endif
+		pld_request_bus_bandwidth(qdf_ctx->dev,
+					  PLD_BUS_WIDTH_LOW);
 	}
 }
 
 static int epping_start_adapter(epping_adapter_t *pAdapter)
 {
+	qdf_device_t qdf_ctx = cds_get_context(QDF_MODULE_ID_QDF_DEVICE);
+
 	if (!pAdapter) {
 		EPPING_LOG(QDF_TRACE_LEVEL_FATAL,
 			   "%s: pAdapter= NULL\n", __func__);
 		return -1;
 	}
 	if (!pAdapter->started) {
-#if defined(MSM_PLATFORM) && defined(HIF_PCI) && defined(CONFIG_CNSS)
-		cnss_request_bus_bandwidth(CNSS_BUS_WIDTH_HIGH);
-#endif
+		pld_request_bus_bandwidth(qdf_ctx->dev,
+					  PLD_BUS_WIDTH_HIGH);
 		netif_carrier_on(pAdapter->dev);
 		EPPING_LOG(LOG1, FL("Enabling queues"));
 		netif_tx_start_all_queues(pAdapter->dev);