qcacld-3.0: Remove CDS related functions in HTC

Update runtime PM APIs and HTC connection mode parameter
accordingly.

Change-Id: I2f54933b90aaed233042c113d246fae4726f5707
CRs-fixed: 982024
This commit is contained in:
Yue Ma
2016-02-26 18:58:44 -08:00
committed by Vishwajith Upendra
parent 6785797b91
commit 1e11d79646
6 changed files with 55 additions and 7 deletions

View File

@@ -55,7 +55,7 @@
#include "ol_fw.h" #include "ol_fw.h"
#include "ol_if_athvar.h" #include "ol_if_athvar.h"
#include "hif.h" #include "hif.h"
#include "cds_concurrency.h"
#include "cds_utils.h" #include "cds_utils.h"
#include "wlan_logging_sock_svc.h" #include "wlan_logging_sock_svc.h"
#include "wma.h" #include "wma.h"
@@ -273,7 +273,7 @@ QDF_STATUS cds_open(void)
/* Create HTC */ /* Create HTC */
gp_cds_context->htc_ctx = gp_cds_context->htc_ctx =
htc_create(scn, &htcInfo, qdf_ctx); htc_create(scn, &htcInfo, qdf_ctx, cds_get_conparam());
if (!gp_cds_context->htc_ctx) { if (!gp_cds_context->htc_ctx) {
QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_FATAL, QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_FATAL,
"%s: Failed to Create HTC", __func__); "%s: Failed to Create HTC", __func__);

View File

@@ -674,6 +674,10 @@ ol_txrx_set_monitor_mode_vap(ol_txrx_pdev_handle pdev,
*/ */
void ol_txrx_set_curchan(ol_txrx_pdev_handle pdev, uint32_t chan_mhz); void ol_txrx_set_curchan(ol_txrx_pdev_handle pdev, uint32_t chan_mhz);
#ifdef FEATURE_RUNTIME_PM
QDF_STATUS ol_txrx_runtime_suspend(ol_txrx_pdev_handle txrx_pdev);
QDF_STATUS ol_txrx_runtime_resume(ol_txrx_pdev_handle txrx_pdev);
#endif
QDF_STATUS ol_txrx_bus_suspend(void); QDF_STATUS ol_txrx_bus_suspend(void);
QDF_STATUS ol_txrx_bus_resume(void); QDF_STATUS ol_txrx_bus_resume(void);
QDF_STATUS ol_txrx_wait_for_pending_tx(int timeout); QDF_STATUS ol_txrx_wait_for_pending_tx(int timeout);

View File

@@ -1918,6 +1918,38 @@ QDF_STATUS ol_txrx_wait_for_pending_tx(int timeout)
#define SUSPEND_DRAIN_WAIT 3000 #define SUSPEND_DRAIN_WAIT 3000
#endif #endif
#ifdef FEATURE_RUNTIME_PM
/**
* ol_txrx_runtime_suspend() - ensure TXRX is ready to runtime suspend
* @txrx_pdev: TXRX pdev context
*
* TXRX is ready to runtime suspend if there are no pending packets
* in the tx queue.
*
* Return: QDF_STATUS
*/
QDF_STATUS ol_txrx_runtime_suspend(ol_txrx_pdev_handle txrx_pdev)
{
if (ol_txrx_get_tx_pending(txrx_pdev))
return QDF_STATUS_E_BUSY;
else
return QDF_STATUS_SUCCESS;
}
/**
* ol_txrx_runtime_resume() - ensure TXRX is ready to runtime resume
* @txrx_pdev: TXRX pdev context
*
* This is a dummy function for symmetry.
*
* Return: QDF_STATUS_SUCCESS
*/
QDF_STATUS ol_txrx_runtime_resume(ol_txrx_pdev_handle txrx_pdev)
{
return QDF_STATUS_SUCCESS;
}
#endif
/** /**
* ol_txrx_bus_suspend() - bus suspend * ol_txrx_bus_suspend() - bus suspend
* *

View File

@@ -681,6 +681,8 @@ static int __wlan_hdd_runtime_suspend(void)
{ {
void *hdd_ctx = cds_get_context(QDF_MODULE_ID_HDD); void *hdd_ctx = cds_get_context(QDF_MODULE_ID_HDD);
void *hif_ctx = cds_get_context(QDF_MODULE_ID_HIF); void *hif_ctx = cds_get_context(QDF_MODULE_ID_HIF);
void *txrx_pdev = cds_get_context(QDF_MODULE_ID_TXRX);
void *htc_ctx = cds_get_context(QDF_MODULE_ID_HTC);
int status = wlan_hdd_validate_context(hdd_ctx); int status = wlan_hdd_validate_context(hdd_ctx);
if (0 != status) if (0 != status)
@@ -690,10 +692,14 @@ static int __wlan_hdd_runtime_suspend(void)
if (status) if (status)
goto process_failure; goto process_failure;
status = htc_runtime_suspend(); status = qdf_status_to_os_return(ol_txrx_runtime_suspend(txrx_pdev));
if (status) if (status)
goto process_failure; goto process_failure;
status = htc_runtime_suspend(htc_ctx);
if (status)
goto resume_txrx;
status = wma_runtime_suspend(); status = wma_runtime_suspend();
if (status) if (status)
goto resume_htc; goto resume_htc;
@@ -714,7 +720,9 @@ resume_hif:
resume_wma: resume_wma:
QDF_BUG(!wma_runtime_resume()); QDF_BUG(!wma_runtime_resume());
resume_htc: resume_htc:
QDF_BUG(!htc_runtime_resume()); QDF_BUG(!htc_runtime_resume(htc_ctx));
resume_txrx:
QDF_BUG(!qdf_status_to_os_return(ol_txrx_runtime_resume(txrx_pdev)));
process_failure: process_failure:
hif_process_runtime_suspend_failure(hif_ctx); hif_process_runtime_suspend_failure(hif_ctx);
return status; return status;
@@ -751,12 +759,15 @@ static int wlan_hdd_runtime_suspend(void)
static int __wlan_hdd_runtime_resume(void) static int __wlan_hdd_runtime_resume(void)
{ {
void *hif_ctx = cds_get_context(QDF_MODULE_ID_HIF); void *hif_ctx = cds_get_context(QDF_MODULE_ID_HIF);
void *htc_ctx = cds_get_context(QDF_MODULE_ID_HTC);
void *txrx_pdev = cds_get_context(QDF_MODULE_ID_TXRX);
hif_pre_runtime_resume(hif_ctx); hif_pre_runtime_resume(hif_ctx);
QDF_BUG(!cnss_auto_resume()); QDF_BUG(!cnss_auto_resume());
QDF_BUG(!hif_runtime_resume(hif_ctx)); QDF_BUG(!hif_runtime_resume(hif_ctx));
QDF_BUG(!wma_runtime_resume()); QDF_BUG(!wma_runtime_resume());
QDF_BUG(!htc_runtime_resume()); QDF_BUG(!htc_runtime_resume(htc_ctx));
QDF_BUG(!qdf_status_to_os_return(ol_txrx_runtime_resume(txrx_pdev)));
hif_process_runtime_resume_success(hif_ctx); hif_process_runtime_resume_success(hif_ctx);
return 0; return 0;
} }

View File

@@ -266,7 +266,7 @@ static QDF_STATUS wlan_ftm_cds_open(v_CONTEXT_t p_cds_context,
/* Create HTC */ /* Create HTC */
gp_cds_context->htc_ctx = gp_cds_context->htc_ctx =
htc_create(pHifContext, &htcInfo, qdf_ctx); htc_create(pHifContext, &htcInfo, qdf_ctx, hdd_get_conparam());
if (!gp_cds_context->htc_ctx) { if (!gp_cds_context->htc_ctx) {
QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_FATAL, QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_FATAL,
"%s: Failed to Create HTC", __func__); "%s: Failed to Create HTC", __func__);

View File

@@ -239,7 +239,8 @@ int epping_enable(struct device *parent_dev)
qdf_ctx = cds_get_context(QDF_MODULE_ID_QDF_DEVICE); qdf_ctx = cds_get_context(QDF_MODULE_ID_QDF_DEVICE);
/* Create HTC */ /* Create HTC */
p_cds_context->htc_ctx = htc_create(scn, &htcInfo, qdf_ctx); p_cds_context->htc_ctx = htc_create(scn, &htcInfo, qdf_ctx,
cds_get_conparam());
if (!p_cds_context->htc_ctx) { if (!p_cds_context->htc_ctx) {
QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_FATAL, QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_FATAL,
"%s: Failed to Create HTC", __func__); "%s: Failed to Create HTC", __func__);