From ab70c840e7431d6e986cbb2cb70a891a87fbd3ab Mon Sep 17 00:00:00 2001 From: Frank Liu Date: Thu, 20 Oct 2016 10:02:18 +0800 Subject: [PATCH] qcacld-3.0: Support IBSS firmware bin(32-clis) qcacld-2.0 to qcacld-3.0 propagation Firmware can't support all station feature and 32 ibss clients in one bin because of the mem limitation. So host supports to download IBSS firmware bin if con_mode=6. CRs-Fixed: 962246 Change-Id: I6c3dca17c82fdfd2bdadcee319cc157e6aa2ead9 --- core/bmi/src/ol_fw.c | 8 +++++++- core/pld/inc/pld_common.h | 1 + core/pld/src/pld_sdio.h | 10 +++++----- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/core/bmi/src/ol_fw.c b/core/bmi/src/ol_fw.c index 71b7217452fc..75081f5d0076 100644 --- a/core/bmi/src/ol_fw.c +++ b/core/bmi/src/ol_fw.c @@ -194,7 +194,13 @@ __ol_transfer_bin_file(struct ol_context *ol_ctx, ATH_BIN_FILE file, break; } #endif - filename = bmi_ctx->fw_files.image_file; + if (cds_get_conparam() == QDF_GLOBAL_IBSS_MODE && + (bmi_ctx->fw_files.ibss_image_file[0] != '\0')) { + filename = bmi_ctx->fw_files.ibss_image_file; + } else { + filename = bmi_ctx->fw_files.image_file; + } + if (SIGNED_SPLIT_BINARY_VALUE) bin_sign = true; break; diff --git a/core/pld/inc/pld_common.h b/core/pld/inc/pld_common.h index 3a9bd1266c11..94854a79f390 100644 --- a/core/pld/inc/pld_common.h +++ b/core/pld/inc/pld_common.h @@ -94,6 +94,7 @@ struct pld_fw_files { char epping_file[PLD_MAX_FILE_NAME]; char evicted_data[PLD_MAX_FILE_NAME]; char setup_file[PLD_MAX_FILE_NAME]; + char ibss_image_file[PLD_MAX_FILE_NAME]; }; /** diff --git a/core/pld/src/pld_sdio.h b/core/pld/src/pld_sdio.h index 5db8bb90e180..c0d4647e7578 100644 --- a/core/pld/src/pld_sdio.h +++ b/core/pld/src/pld_sdio.h @@ -35,19 +35,19 @@ struct pld_fw_files fw_files_qca6174_fw_1_1 = { "qwlan11.bin", "bdwlan11.bin", "otp11.bin", "utf11.bin", - "utfbd11.bin", "qsetup11.bin", "epping11.bin"}; + "utfbd11.bin", "qsetup11.bin", "epping11.bin", ""}; struct pld_fw_files fw_files_qca6174_fw_2_0 = { "qwlan20.bin", "bdwlan20.bin", "otp20.bin", "utf20.bin", - "utfbd20.bin", "qsetup20.bin", "epping20.bin"}; + "utfbd20.bin", "qsetup20.bin", "epping20.bin", ""}; struct pld_fw_files fw_files_qca6174_fw_1_3 = { "qwlan13.bin", "bdwlan13.bin", "otp13.bin", "utf13.bin", - "utfbd13.bin", "qsetup13.bin", "epping13.bin"}; + "utfbd13.bin", "qsetup13.bin", "epping13.bin", ""}; struct pld_fw_files fw_files_qca6174_fw_3_0 = { "qwlan30.bin", "bdwlan30.bin", "otp30.bin", "utf30.bin", - "utfbd30.bin", "qsetup30.bin", "epping30.bin"}; + "utfbd30.bin", "qsetup30.bin", "epping30.bin", "qwlan30i.bin"}; struct pld_fw_files fw_files_default = { "qwlan.bin", "bdwlan.bin", "otp.bin", "utf.bin", - "utfbd.bin", "qsetup.bin", "epping.bin"}; + "utfbd.bin", "qsetup.bin", "epping.bin", ""}; #endif #ifndef CONFIG_SDIO