qcacld-3.0: Create ini config structures for each modules
Update ini configuration parameters for each modules in the driver Change-Id: I00b1f2a9690060a15854ad84d819e9b883e95c41 CRs-Fixed: 967765
This commit is contained in:

committed by
Prakash Dhavali

parent
9ef9458c04
commit
ec702b0afb
@@ -41,6 +41,27 @@ struct ol_context;
|
||||
CDF_STATUS ol_cds_init(cdf_device_t cdf_dev, void *hif_ctx);
|
||||
void ol_cds_free(void);
|
||||
|
||||
/**
|
||||
* struct hif_config_info - Place Holder for hif confiruation
|
||||
* @enable_uart_print: UART Print
|
||||
* @enable_self_recovery: Self Recovery
|
||||
* @enable_fw_log: To Enable FW LOG
|
||||
* @enable_lpass_support: LPASS support
|
||||
* @enable_ramdump_collection: Ramdump Collection
|
||||
*
|
||||
* Structure for holding ini parameters.
|
||||
*/
|
||||
|
||||
struct ol_config_info {
|
||||
bool enable_uart_print;
|
||||
bool enable_self_recovery;
|
||||
bool enable_fw_log;
|
||||
bool enable_lpass_support;
|
||||
bool enable_ramdump_collection;
|
||||
};
|
||||
|
||||
void ol_init_ini_config(struct ol_context *ol_ctx,
|
||||
struct ol_config_info *cfg);
|
||||
#ifdef HIF_PCI
|
||||
void bmi_cleanup(struct ol_context *scn);
|
||||
CDF_STATUS bmi_done(struct ol_context *ol_ctx);
|
||||
|
@@ -155,10 +155,11 @@ struct bmi_info {
|
||||
*/
|
||||
struct ol_context {
|
||||
struct bmi_info bmi;
|
||||
struct ol_config_info cfg_info;
|
||||
uint8_t *cal_in_flash;
|
||||
cdf_device_t cdf_dev;
|
||||
struct ol_softc *scn;
|
||||
cdf_work_t ramdump_work;
|
||||
struct ol_softc *scn;
|
||||
struct targetdef_t {
|
||||
struct targetdef_s *targetdef;
|
||||
} tgt_def;
|
||||
@@ -187,4 +188,5 @@ CDF_STATUS bmi_done_local(struct ol_context *ol_ctx);
|
||||
CDF_STATUS ol_download_firmware(struct ol_context *ol_ctx);
|
||||
CDF_STATUS ol_configure_target(struct ol_context *ol_ctx);
|
||||
void ramdump_work_handler(void *arg);
|
||||
struct ol_config_info *ol_get_ini_handle(struct ol_context *ol_ctx);
|
||||
#endif
|
||||
|
@@ -527,14 +527,14 @@ int ol_copy_ramdump(struct ol_softc *scn)
|
||||
return ret;
|
||||
}
|
||||
|
||||
void ramdump_work_handler(void *ol_context)
|
||||
void ramdump_work_handler(void *data)
|
||||
{
|
||||
int ret;
|
||||
uint32_t host_interest_address;
|
||||
uint32_t dram_dump_values[4];
|
||||
uint32_t target_type;
|
||||
struct hif_target_info *tgt_info;
|
||||
struct ol_context *ol_ctx = ol_context;
|
||||
struct ol_context *ol_ctx = data;
|
||||
struct ol_softc *ramdump_scn = ol_ctx->scn;
|
||||
|
||||
if (!ramdump_scn) {
|
||||
@@ -612,7 +612,7 @@ void ol_target_failure(void *instance, CDF_STATUS status)
|
||||
struct ol_context *ol_ctx = instance;
|
||||
struct ol_softc *scn = ol_ctx->scn;
|
||||
tp_wma_handle wma = cds_get_context(CDF_MODULE_ID_WMA);
|
||||
struct hif_config_info *ini_cfg = hif_get_ini_handle(scn);
|
||||
struct ol_config_info *ini_cfg = ol_get_ini_handle(ol_ctx);
|
||||
int ret;
|
||||
ol_target_status target_status =
|
||||
hif_get_target_status(scn);
|
||||
@@ -672,7 +672,7 @@ CDF_STATUS ol_configure_target(struct ol_context *ol_ctx)
|
||||
#endif
|
||||
struct ol_softc *scn = ol_ctx->scn;
|
||||
struct hif_target_info *tgt_info = hif_get_target_info_handle(scn);
|
||||
struct hif_config_info *ini_cfg = hif_get_ini_handle(scn);
|
||||
struct ol_config_info *ini_cfg = ol_get_ini_handle(ol_ctx);
|
||||
uint32_t target_type = tgt_info->target_type;
|
||||
|
||||
/* Tell target which HTC version it is used */
|
||||
@@ -813,7 +813,8 @@ CDF_STATUS ol_configure_target(struct ol_context *ol_ctx)
|
||||
return CDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static int ol_check_dataset_patch(struct ol_softc *scn, uint32_t *address)
|
||||
static int
|
||||
ol_check_dataset_patch(struct ol_softc *scn, uint32_t *address)
|
||||
{
|
||||
/* Check if patch file needed for this target type/version. */
|
||||
return 0;
|
||||
@@ -1209,7 +1210,7 @@ CDF_STATUS ol_download_firmware(struct ol_context *ol_ctx)
|
||||
int status = !EOK;
|
||||
CDF_STATUS ret;
|
||||
struct hif_target_info *tgt_info = hif_get_target_info_handle(scn);
|
||||
struct hif_config_info *ini_cfg = hif_get_ini_handle(scn);
|
||||
struct ol_config_info *ini_cfg = ol_get_ini_handle(ol_ctx);
|
||||
uint32_t target_type = tgt_info->target_type;
|
||||
uint32_t target_version = tgt_info->target_version;
|
||||
struct bmi_info *bmi_ctx = GET_BMI_CONTEXT(ol_ctx);
|
||||
@@ -1310,8 +1311,8 @@ CDF_STATUS ol_download_firmware(struct ol_context *ol_ctx)
|
||||
|
||||
/* Apply the patches */
|
||||
if (ol_check_dataset_patch(scn, &address)) {
|
||||
if ((ol_transfer_bin_file(ol_ctx, ATH_PATCH_FILE, address, false))
|
||||
!= EOK) {
|
||||
if ((ol_transfer_bin_file(ol_ctx, ATH_PATCH_FILE, address,
|
||||
false)) != EOK) {
|
||||
return -1;
|
||||
}
|
||||
bmi_write_memory(hif_hia_item_address(target_type,
|
||||
@@ -1546,17 +1547,16 @@ void ol_dump_target_memory(struct ol_softc *scn, void *memory_block)
|
||||
}
|
||||
}
|
||||
|
||||
/**---------------------------------------------------------------------------
|
||||
* \brief ol_target_coredump
|
||||
/**
|
||||
* ol_target_coredump() - API to collect target ramdump
|
||||
* @inst - private context
|
||||
* @memory_block - non-NULL reserved memory location
|
||||
* @block_len - size of the dump to collect
|
||||
*
|
||||
* Function to perform core dump for the target
|
||||
* Function to perform core dump for the target.
|
||||
*
|
||||
* \param: scn - ol_softc handler
|
||||
* memory_block - non-NULL reserved memory location
|
||||
* block_len - size of the dump to collect
|
||||
*
|
||||
* \return: None
|
||||
* --------------------------------------------------------------------------*/
|
||||
* Return: int
|
||||
*/
|
||||
static int ol_target_coredump(void *inst, void *memory_block,
|
||||
uint32_t block_len)
|
||||
{
|
||||
@@ -1633,3 +1633,27 @@ static int ol_target_coredump(void *inst, void *memory_block,
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* ol_get_ini_handle() - API to get Ol INI configuration
|
||||
* @ol_ctx: OL Context
|
||||
*
|
||||
* Return: pointer to OL configuration
|
||||
*/
|
||||
struct ol_config_info *ol_get_ini_handle(struct ol_context *ol_ctx)
|
||||
{
|
||||
return &ol_ctx->cfg_info;
|
||||
}
|
||||
|
||||
/**
|
||||
* ol_init_ini_config() - API to initialize INI configuration
|
||||
* @ol_ctx: OL Context
|
||||
* @cfg: OL ini configuration
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void ol_init_ini_config(struct ol_context *ol_ctx,
|
||||
struct ol_config_info *cfg)
|
||||
{
|
||||
cdf_mem_copy(&ol_ctx->cfg_info, cfg, sizeof(struct ol_config_info));
|
||||
}
|
||||
|
@@ -172,8 +172,8 @@ CDF_STATUS cds_open(void)
|
||||
tMacOpenParameters mac_openParms;
|
||||
cdf_device_t cdf_ctx;
|
||||
HTC_INIT_INFO htcInfo;
|
||||
struct ol_softc *scn;
|
||||
struct ol_context *ol_ctx;
|
||||
struct ol_softc *scn;
|
||||
void *HTCHandle;
|
||||
hdd_context_t *pHddCtx;
|
||||
|
||||
@@ -255,7 +255,7 @@ CDF_STATUS cds_open(void)
|
||||
goto err_sched_close;
|
||||
}
|
||||
|
||||
hdd_update_hif_config(scn, pHddCtx);
|
||||
hdd_update_config(pHddCtx);
|
||||
|
||||
ol_ctx = cds_get_context(CDF_MODULE_ID_BMI);
|
||||
/* Initialize BMI and Download firmware */
|
||||
|
@@ -1525,5 +1525,5 @@ hdd_adapter_t *hdd_get_adapter_by_sme_session_id(hdd_context_t *hdd_ctx,
|
||||
phy_ch_width hdd_map_nl_chan_width(enum nl80211_chan_width ch_width);
|
||||
uint8_t wlan_hdd_find_opclass(tHalHandle hal, uint8_t channel,
|
||||
uint8_t bw_offset);
|
||||
void hdd_update_hif_config(void *scn, hdd_context_t *hdd_ctx);
|
||||
void hdd_update_config(hdd_context_t *hdd_ctx);
|
||||
#endif /* end #if !defined(WLAN_HDD_MAIN_H) */
|
||||
|
@@ -309,7 +309,7 @@ static CDF_STATUS wlan_ftm_cds_open(v_CONTEXT_t p_cds_context,
|
||||
goto err_htc_close;
|
||||
}
|
||||
#if defined(QCA_WIFI_FTM)
|
||||
hdd_update_hif_config(pHifContext, hdd_ctx);
|
||||
hdd_update_config(hdd_ctx);
|
||||
|
||||
pHtcContext = cds_get_context(CDF_MODULE_ID_HTC);
|
||||
if (!pHtcContext) {
|
||||
|
@@ -105,6 +105,7 @@ extern int hdd_hostapd_stop(struct net_device *dev);
|
||||
#include "cds_concurrency.h"
|
||||
#include "wlan_hdd_green_ap.h"
|
||||
#include "platform_icnss.h"
|
||||
#include "bmi.h"
|
||||
|
||||
#ifdef MODULE
|
||||
#define WLAN_MODULE_NAME module_name(THIS_MODULE)
|
||||
@@ -6989,23 +6990,57 @@ static inline bool hdd_is_lpass_supported(hdd_context_t *hdd_ctx)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* hdd_update_hif_config() - Initialize HIF ini parameters
|
||||
* @scn: HIF Context
|
||||
* @hdd_ctx: HDD Context
|
||||
* hdd_update_ol_config - API to update ol configuration parameters
|
||||
* @hdd_ctx: HDD context
|
||||
*
|
||||
* API is used to initialize all HIF configuration parameters
|
||||
* Return: void
|
||||
*/
|
||||
void hdd_update_hif_config(void *scn, hdd_context_t *hdd_ctx)
|
||||
static void hdd_update_ol_config(hdd_context_t *hdd_ctx)
|
||||
{
|
||||
struct hif_config_info *cfg = hif_get_ini_handle(scn);
|
||||
struct ol_config_info cfg;
|
||||
struct ol_context *ol_ctx = cds_get_context(CDF_MODULE_ID_BMI);
|
||||
|
||||
cfg->enable_self_recovery = hdd_ctx->config->enableSelfRecovery;
|
||||
cfg->enable_uart_print = hdd_ctx->config->enablefwprint;
|
||||
cfg->enable_fw_log = hdd_ctx->config->enable_fw_log;
|
||||
cfg->enable_ramdump_collection =
|
||||
hdd_ctx->config->is_ramdump_enabled;
|
||||
cfg->enable_lpass_support = hdd_is_lpass_supported(hdd_ctx);
|
||||
if (!ol_ctx)
|
||||
return;
|
||||
|
||||
cfg.enable_self_recovery = hdd_ctx->config->enableSelfRecovery;
|
||||
cfg.enable_uart_print = hdd_ctx->config->enablefwprint;
|
||||
cfg.enable_fw_log = hdd_ctx->config->enable_fw_log;
|
||||
cfg.enable_ramdump_collection = hdd_ctx->config->is_ramdump_enabled;
|
||||
cfg.enable_lpass_support = hdd_is_lpass_supported(hdd_ctx);
|
||||
|
||||
ol_init_ini_config(ol_ctx, &cfg);
|
||||
}
|
||||
|
||||
/**
|
||||
* hdd_update_hif_config - API to update HIF configuration parameters
|
||||
* @hdd_ctx: HDD Context
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
static void hdd_update_hif_config(hdd_context_t *hdd_ctx)
|
||||
{
|
||||
struct ol_softc *scn = cds_get_context(CDF_MODULE_ID_HIF);
|
||||
struct hif_config_info cfg;
|
||||
|
||||
if (!scn)
|
||||
return;
|
||||
|
||||
cfg.enable_self_recovery = hdd_ctx->config->enableSelfRecovery;
|
||||
hif_init_ini_config(scn, &cfg);
|
||||
}
|
||||
|
||||
/**
|
||||
* hdd_update_config() - Initialize driver per module ini parameters
|
||||
* @hdd_ctx: HDD Context
|
||||
*
|
||||
* API is used to initialize all driver per module configuration parameters
|
||||
* Return: void
|
||||
*/
|
||||
void hdd_update_config(hdd_context_t *hdd_ctx)
|
||||
{
|
||||
hdd_update_ol_config(hdd_ctx);
|
||||
hdd_update_hif_config(hdd_ctx);
|
||||
}
|
||||
|
||||
/* Register the module init/exit functions */
|
||||
|
@@ -181,7 +181,6 @@ int epping_enable(struct device *parent_dev)
|
||||
HTC_INIT_INFO htcInfo;
|
||||
struct ol_softc *scn;
|
||||
tSirMacAddr adapter_macAddr;
|
||||
struct hif_config_info *cfg;
|
||||
struct hif_target_info *tgt_info;
|
||||
struct ol_context *ol_ctx;
|
||||
|
||||
@@ -216,11 +215,6 @@ int epping_enable(struct device *parent_dev)
|
||||
return -1;
|
||||
}
|
||||
|
||||
cfg = hif_get_ini_handle(scn);
|
||||
|
||||
cfg->enable_uart_print = 0;
|
||||
cfg->enable_fw_log = 0;
|
||||
|
||||
tgt_info = hif_get_target_info_handle(scn);
|
||||
|
||||
/* store target type and target version info in hdd ctx */
|
||||
|
Reference in New Issue
Block a user