qcacmn: Enable IPA if enabled in platform driver and ini
Enable IPA only if it is enabled from both platform driver and ini file. Change-Id: Ifc4bcd2c5b29b91c0eb72a844906cf11a65686e4 CRs-Fixed: 3148731
This commit is contained in:

committed by
Madan Koyyalamudi

parent
52181cceb1
commit
0afac9d12e
@@ -67,6 +67,21 @@ extern uint8_t g_instances_added;
|
|||||||
#define IPA_EXIT() \
|
#define IPA_EXIT() \
|
||||||
QDF_TRACE_EXIT(QDF_MODULE_ID_IPA, "exit")
|
QDF_TRACE_EXIT(QDF_MODULE_ID_IPA, "exit")
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ipa_set_pld_enable() - set g_ipa_pld_enable
|
||||||
|
* @flag: flag to set g_ipa_pld_enable
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
void ipa_set_pld_enable(bool flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ipa_get_pld_enable() - check if IPA is disabled in pld
|
||||||
|
*
|
||||||
|
* Return: g_ipa_pld_enable
|
||||||
|
*/
|
||||||
|
bool ipa_get_pld_enable(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ipa_check_hw_present() - get IPA hw status
|
* ipa_check_hw_present() - get IPA hw status
|
||||||
*
|
*
|
||||||
|
@@ -29,6 +29,17 @@
|
|||||||
|
|
||||||
static struct wlan_ipa_config *g_ipa_config;
|
static struct wlan_ipa_config *g_ipa_config;
|
||||||
static bool g_ipa_hw_support;
|
static bool g_ipa_hw_support;
|
||||||
|
static bool g_ipa_pld_enable = true;
|
||||||
|
|
||||||
|
void ipa_set_pld_enable(bool flag)
|
||||||
|
{
|
||||||
|
g_ipa_pld_enable = flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ipa_get_pld_enable(void)
|
||||||
|
{
|
||||||
|
return g_ipa_pld_enable;
|
||||||
|
}
|
||||||
|
|
||||||
bool ipa_check_hw_present(void)
|
bool ipa_check_hw_present(void)
|
||||||
{
|
{
|
||||||
@@ -805,8 +816,16 @@ void ipa_component_config_update(struct wlan_objmgr_psoc *psoc)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_ipa_config->ipa_config =
|
if (g_ipa_pld_enable) {
|
||||||
cfg_get(psoc, CFG_DP_IPA_OFFLOAD_CONFIG);
|
g_ipa_config->ipa_config = cfg_get(psoc,
|
||||||
|
CFG_DP_IPA_OFFLOAD_CONFIG);
|
||||||
|
ipa_info("IPA ini configuration: 0x%x",
|
||||||
|
g_ipa_config->ipa_config);
|
||||||
|
} else {
|
||||||
|
g_ipa_config->ipa_config = 0;
|
||||||
|
ipa_info("IPA disabled from platform driver");
|
||||||
|
}
|
||||||
|
|
||||||
g_ipa_config->desc_size =
|
g_ipa_config->desc_size =
|
||||||
cfg_get(psoc, CFG_DP_IPA_DESC_SIZE);
|
cfg_get(psoc, CFG_DP_IPA_DESC_SIZE);
|
||||||
g_ipa_config->txbuf_count =
|
g_ipa_config->txbuf_count =
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -31,6 +31,21 @@
|
|||||||
|
|
||||||
#ifdef IPA_OFFLOAD
|
#ifdef IPA_OFFLOAD
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_ipa_set_pld_enable() - set g_ipa_pld_enable
|
||||||
|
* @flag: flag to set g_ipa_pld_enable
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
void ucfg_ipa_set_pld_enable(bool flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_ipa_get_pld_enable() - check if IPA is disabled in pld
|
||||||
|
*
|
||||||
|
* Return: g_ipa_pld_enable
|
||||||
|
*/
|
||||||
|
bool ucfg_ipa_get_pld_enable(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_ipa_is_present() - get IPA hw status
|
* ucfg_ipa_is_present() - get IPA hw status
|
||||||
*
|
*
|
||||||
@@ -435,6 +450,14 @@ void ucfg_ipa_update_tx_stats(struct wlan_objmgr_pdev *pdev, uint64_t sta_tx,
|
|||||||
void ucfg_ipa_flush_pending_vdev_events(struct wlan_objmgr_pdev *pdev,
|
void ucfg_ipa_flush_pending_vdev_events(struct wlan_objmgr_pdev *pdev,
|
||||||
uint8_t vdev_id);
|
uint8_t vdev_id);
|
||||||
#else
|
#else
|
||||||
|
static inline void ucfg_ipa_set_pld_enable(bool flag)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline bool ucfg_ipa_get_pld_enable(void)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static inline bool ucfg_ipa_is_present(void)
|
static inline bool ucfg_ipa_is_present(void)
|
||||||
{
|
{
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -25,6 +25,20 @@
|
|||||||
#include "cfg_ucfg_api.h"
|
#include "cfg_ucfg_api.h"
|
||||||
#include "qdf_module.h"
|
#include "qdf_module.h"
|
||||||
|
|
||||||
|
void ucfg_ipa_set_pld_enable(bool flag)
|
||||||
|
{
|
||||||
|
ipa_set_pld_enable(flag);
|
||||||
|
}
|
||||||
|
|
||||||
|
qdf_export_symbol(ucfg_ipa_set_pld_enable);
|
||||||
|
|
||||||
|
bool ucfg_ipa_get_pld_enable(void)
|
||||||
|
{
|
||||||
|
return ipa_get_pld_enable();
|
||||||
|
}
|
||||||
|
|
||||||
|
qdf_export_symbol(ucfg_ipa_get_pld_enable);
|
||||||
|
|
||||||
bool ucfg_ipa_is_present(void)
|
bool ucfg_ipa_is_present(void)
|
||||||
{
|
{
|
||||||
return ipa_is_hw_support();
|
return ipa_is_hw_support();
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "wlan_ipa_ucfg_api.h"
|
||||||
#if defined(CONFIG_HL_SUPPORT)
|
#if defined(CONFIG_HL_SUPPORT)
|
||||||
#include "wlan_tgt_def_config_hl.h"
|
#include "wlan_tgt_def_config_hl.h"
|
||||||
#else
|
#else
|
||||||
@@ -1719,8 +1720,16 @@ static void
|
|||||||
wlan_soc_ipa_cfg_attach(struct cdp_ctrl_objmgr_psoc *psoc,
|
wlan_soc_ipa_cfg_attach(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx)
|
struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx)
|
||||||
{
|
{
|
||||||
wlan_cfg_ctx->ipa_enabled = (cfg_get(psoc, CFG_DP_IPA_OFFLOAD_CONFIG) &
|
if (ucfg_ipa_get_pld_enable()) {
|
||||||
WLAN_CFG_IPA_ENABLE_MASK);
|
wlan_cfg_ctx->ipa_enabled =
|
||||||
|
(cfg_get(psoc, CFG_DP_IPA_OFFLOAD_CONFIG) &
|
||||||
|
WLAN_CFG_IPA_ENABLE_MASK);
|
||||||
|
dp_info("is IPA enabled from ini: %d",
|
||||||
|
wlan_cfg_ctx->ipa_enabled);
|
||||||
|
} else {
|
||||||
|
wlan_cfg_ctx->ipa_enabled = false;
|
||||||
|
dp_info("IPA disabled from platform driver");
|
||||||
|
}
|
||||||
wlan_cfg_ctx->ipa_tx_ring_size =
|
wlan_cfg_ctx->ipa_tx_ring_size =
|
||||||
cfg_get(psoc, CFG_DP_IPA_TX_RING_SIZE);
|
cfg_get(psoc, CFG_DP_IPA_TX_RING_SIZE);
|
||||||
wlan_cfg_ctx->ipa_tx_comp_ring_size =
|
wlan_cfg_ctx->ipa_tx_comp_ring_size =
|
||||||
@@ -1743,8 +1752,16 @@ static void
|
|||||||
wlan_soc_ipa_cfg_attach(struct cdp_ctrl_objmgr_psoc *psoc,
|
wlan_soc_ipa_cfg_attach(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx)
|
struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx)
|
||||||
{
|
{
|
||||||
wlan_cfg_ctx->ipa_enabled = (cfg_get(psoc, CFG_DP_IPA_OFFLOAD_CONFIG) &
|
if (ucfg_ipa_get_pld_enable()) {
|
||||||
WLAN_CFG_IPA_ENABLE_MASK);
|
wlan_cfg_ctx->ipa_enabled =
|
||||||
|
(cfg_get(psoc, CFG_DP_IPA_OFFLOAD_CONFIG) &
|
||||||
|
WLAN_CFG_IPA_ENABLE_MASK);
|
||||||
|
dp_info("is IPA enabled from ini: %d",
|
||||||
|
wlan_cfg_ctx->ipa_enabled);
|
||||||
|
} else {
|
||||||
|
wlan_cfg_ctx->ipa_enabled = false;
|
||||||
|
dp_info("IPA disabled from platform driver");
|
||||||
|
}
|
||||||
wlan_cfg_ctx->ipa_tx_ring_size =
|
wlan_cfg_ctx->ipa_tx_ring_size =
|
||||||
cfg_get(psoc, CFG_DP_IPA_TX_RING_SIZE);
|
cfg_get(psoc, CFG_DP_IPA_TX_RING_SIZE);
|
||||||
wlan_cfg_ctx->ipa_tx_comp_ring_size =
|
wlan_cfg_ctx->ipa_tx_comp_ring_size =
|
||||||
|
Reference in New Issue
Block a user