soc: qcom: icnss2: Use device specific firmware versions
From branches: mona-r-oss lisa-r-oss taoyao-s-oss zijin-s-oss redwood-s-oss Change-Id: I6962479d585a2fa04216bdb96f4207672ec7fd37
This commit is contained in:
parent
04ecdb7b1b
commit
c65543d317
@ -21,6 +21,7 @@
|
||||
#include <linux/thread_info.h>
|
||||
#include <linux/firmware.h>
|
||||
#include <linux/soc/qcom/qmi.h>
|
||||
#include <linux/hwid.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <soc/qcom/icnss2.h>
|
||||
#include <soc/qcom/service-locator.h>
|
||||
@ -39,9 +40,23 @@
|
||||
#define BDF_FILE_NAME_PREFIX "bdwlan"
|
||||
#define ELF_BDF_FILE_NAME "bdwlan.elf"
|
||||
#define ELF_BDF_FILE_NAME_PREFIX "bdwlan.e"
|
||||
|
||||
#define ELF_BDF_FILE_NAME_K9D "bd_k9d.elf"
|
||||
#define ELF_BDF_FILE_NAME_K9D_GLOBAL "bd_k9dgl.elf"
|
||||
#define ELF_BDF_FILE_NAME_K9D_INDIA "bd_k9din.elf"
|
||||
#define ELF_BDF_FILE_NAME_K9B "bd_k9b.elf"
|
||||
#define ELF_BDF_FILE_NAME_K9E "bd_k9e.elf"
|
||||
#define ELF_BDF_FILE_NAME_L9 "bd_l9.elf"
|
||||
#define ELF_BDF_FILE_NAME_L9_GLOBAL "bd_l9gl.elf"
|
||||
#define ELF_BDF_FILE_NAME_L9_INDIA "bd_l9in.elf"
|
||||
#define ELF_BDF_FILE_NAME_M20_GLOBAL "bd_m20gl.elf"
|
||||
#define ELF_BDF_FILE_NAME_M20_INDIA "bd_m20in.elf"
|
||||
#define ELF_BDF_FILE_NAME_M20 "bd_m20.elf"
|
||||
|
||||
#define BIN_BDF_FILE_NAME "bdwlan.bin"
|
||||
#define BIN_BDF_FILE_NAME_PREFIX "bdwlan.b"
|
||||
#define REGDB_FILE_NAME "regdb.bin"
|
||||
#define REGDB_FILE_NAME_XIAOMI "regdb_xiaomi.bin"
|
||||
#define DUMMY_BDF_FILE_NAME "bdwlan.dmy"
|
||||
|
||||
#define QDSS_TRACE_CONFIG_FILE "qdss_trace_config.cfg"
|
||||
@ -774,11 +789,12 @@ int icnss_qmi_get_dms_mac(struct icnss_priv *priv)
|
||||
if (resp.resp.error == DMS_MAC_NOT_PROVISIONED) {
|
||||
icnss_pr_err("NV MAC address is not provisioned");
|
||||
priv->dms.nv_mac_not_prov = 1;
|
||||
ret = -resp.resp.result;
|
||||
} else {
|
||||
icnss_pr_err("QMI_DMS_GET_MAC_ADDRESS_REQ_V01 failed, result: %d, err: %d\n",
|
||||
resp.resp.result, resp.resp.error);
|
||||
ret = -EAGAIN;
|
||||
}
|
||||
ret = -resp.resp.result;
|
||||
goto out;
|
||||
}
|
||||
if (!resp.mac_address_valid ||
|
||||
@ -932,11 +948,47 @@ static int icnss_get_bdf_file_name(struct icnss_priv *priv,
|
||||
{
|
||||
char filename_tmp[ICNSS_MAX_FILE_NAME];
|
||||
int ret = 0;
|
||||
int hw_platform_ver = -1;
|
||||
uint32_t hw_country_ver = 0;
|
||||
hw_platform_ver = get_hw_version_platform();
|
||||
hw_country_ver = get_hw_country_version();
|
||||
|
||||
switch (bdf_type) {
|
||||
case ICNSS_BDF_ELF:
|
||||
if (priv->board_id == 0xFF)
|
||||
snprintf(filename_tmp, filename_len, ELF_BDF_FILE_NAME);
|
||||
{
|
||||
if (hw_platform_ver == HARDWARE_PROJECT_K9D) {
|
||||
if ((uint32_t)CountryGlobal == hw_country_ver) {
|
||||
snprintf(filename_tmp, filename_len, ELF_BDF_FILE_NAME_K9D_GLOBAL);
|
||||
} else if ((uint32_t)CountryIndia == hw_country_ver) {
|
||||
snprintf(filename_tmp, filename_len, ELF_BDF_FILE_NAME_K9D_INDIA);
|
||||
} else {
|
||||
snprintf(filename_tmp, filename_len, ELF_BDF_FILE_NAME_K9D);
|
||||
}
|
||||
} else if (hw_platform_ver == HARDWARE_PROJECT_K9B) {
|
||||
snprintf(filename_tmp, filename_len, ELF_BDF_FILE_NAME_K9B);
|
||||
} else if (hw_platform_ver == HARDWARE_PROJECT_K9E) {
|
||||
snprintf(filename_tmp, filename_len, ELF_BDF_FILE_NAME_K9E);
|
||||
} else if (hw_platform_ver == HARDWARE_PROJECT_L9) {
|
||||
if ((uint32_t)CountryGlobal == hw_country_ver) {
|
||||
snprintf(filename_tmp, filename_len, ELF_BDF_FILE_NAME_L9_GLOBAL);
|
||||
} else if ((uint32_t)CountryIndia == hw_country_ver) {
|
||||
snprintf(filename_tmp, filename_len, ELF_BDF_FILE_NAME_L9_INDIA);
|
||||
} else {
|
||||
snprintf(filename_tmp, filename_len, ELF_BDF_FILE_NAME_L9);
|
||||
}
|
||||
} else if (hw_platform_ver == HARDWARE_PROJECT_M20) {
|
||||
if ((uint32_t)CountryGlobal == hw_country_ver) {
|
||||
snprintf(filename_tmp, filename_len, ELF_BDF_FILE_NAME_M20_GLOBAL);
|
||||
} else if ((uint32_t)CountryIndia == hw_country_ver) {
|
||||
snprintf(filename_tmp, filename_len, ELF_BDF_FILE_NAME_M20_INDIA);
|
||||
} else {
|
||||
snprintf(filename_tmp, filename_len, ELF_BDF_FILE_NAME_M20);
|
||||
}
|
||||
} else {
|
||||
snprintf(filename_tmp, filename_len, ELF_BDF_FILE_NAME);
|
||||
}
|
||||
}
|
||||
else if (priv->board_id < 0xFF)
|
||||
snprintf(filename_tmp, filename_len,
|
||||
ELF_BDF_FILE_NAME_PREFIX "%02x",
|
||||
@ -961,7 +1013,7 @@ static int icnss_get_bdf_file_name(struct icnss_priv *priv,
|
||||
priv->board_id & 0xFF);
|
||||
break;
|
||||
case ICNSS_BDF_REGDB:
|
||||
snprintf(filename_tmp, filename_len, REGDB_FILE_NAME);
|
||||
snprintf(filename_tmp, filename_len, REGDB_FILE_NAME_XIAOMI);
|
||||
break;
|
||||
case ICNSS_BDF_DUMMY:
|
||||
icnss_pr_dbg("CNSS_BDF_DUMMY is set, sending dummy BDF\n");
|
||||
|
Loading…
Reference in New Issue
Block a user