Merge "cnss2: Update board data file name for certain RF chip ID"
This commit is contained in:
commit
e0c39261f1
2 changed files with 46 additions and 14 deletions
|
@ -43,6 +43,7 @@
|
|||
#define DEFAULT_FW_FILE_NAME "amss.bin"
|
||||
#define FW_V2_FILE_NAME "amss20.bin"
|
||||
#define FW_V2_NUMBER 2
|
||||
#define DEVICE_MAJOR_VERSION_MASK 0xF
|
||||
|
||||
#define WAKE_MSI_NAME "WAKE"
|
||||
|
||||
|
@ -4536,6 +4537,9 @@ static int cnss_pci_update_fw_name(struct cnss_pci_data *pci_priv)
|
|||
plat_priv->device_version.major_version,
|
||||
plat_priv->device_version.minor_version);
|
||||
|
||||
/* Only keep lower 4 bits as real device major version */
|
||||
plat_priv->device_version.major_version &= DEVICE_MAJOR_VERSION_MASK;
|
||||
|
||||
switch (pci_priv->device_id) {
|
||||
case QCA6390_DEVICE_ID:
|
||||
if (plat_priv->device_version.major_version < FW_V2_NUMBER) {
|
||||
|
|
|
@ -14,11 +14,16 @@
|
|||
#define WLFW_CLIENT_ID 0x4b4e454c
|
||||
#define BDF_FILE_NAME_PREFIX "bdwlan"
|
||||
#define ELF_BDF_FILE_NAME "bdwlan.elf"
|
||||
#define ELF_BDF_FILE_NAME_GF "bdwlang.elf"
|
||||
#define ELF_BDF_FILE_NAME_PREFIX "bdwlan.e"
|
||||
#define ELF_BDF_FILE_NAME_GF_PREFIX "bdwlang.e"
|
||||
#define BIN_BDF_FILE_NAME "bdwlan.bin"
|
||||
#define BIN_BDF_FILE_NAME_GF "bdwlang.bin"
|
||||
#define BIN_BDF_FILE_NAME_PREFIX "bdwlan.b"
|
||||
#define BIN_BDF_FILE_NAME_GF_PREFIX "bdwlang.b"
|
||||
#define REGDB_FILE_NAME "regdb.bin"
|
||||
#define DUMMY_BDF_FILE_NAME "bdwlan.dmy"
|
||||
#define CHIP_ID_GF_MASK 0x10
|
||||
|
||||
#define QMI_WLFW_TIMEOUT_MS (plat_priv->ctrl_params.qmi_timeout)
|
||||
#define QMI_WLFW_TIMEOUT_JF msecs_to_jiffies(QMI_WLFW_TIMEOUT_MS)
|
||||
|
@ -504,30 +509,53 @@ static int cnss_get_bdf_file_name(struct cnss_plat_data *plat_priv,
|
|||
|
||||
switch (bdf_type) {
|
||||
case CNSS_BDF_ELF:
|
||||
if (plat_priv->board_info.board_id == 0xFF)
|
||||
snprintf(filename_tmp, filename_len, ELF_BDF_FILE_NAME);
|
||||
else if (plat_priv->board_info.board_id < 0xFF)
|
||||
snprintf(filename_tmp, filename_len,
|
||||
ELF_BDF_FILE_NAME_PREFIX "%02x",
|
||||
plat_priv->board_info.board_id);
|
||||
else
|
||||
/* Board ID will be equal or less than 0xFF in GF mask case */
|
||||
if (plat_priv->board_info.board_id == 0xFF) {
|
||||
if (plat_priv->chip_info.chip_id & CHIP_ID_GF_MASK)
|
||||
snprintf(filename_tmp, filename_len,
|
||||
ELF_BDF_FILE_NAME_GF);
|
||||
else
|
||||
snprintf(filename_tmp, filename_len,
|
||||
ELF_BDF_FILE_NAME);
|
||||
} else if (plat_priv->board_info.board_id < 0xFF) {
|
||||
if (plat_priv->chip_info.chip_id & CHIP_ID_GF_MASK)
|
||||
snprintf(filename_tmp, filename_len,
|
||||
ELF_BDF_FILE_NAME_GF_PREFIX "%02x",
|
||||
plat_priv->board_info.board_id);
|
||||
else
|
||||
snprintf(filename_tmp, filename_len,
|
||||
ELF_BDF_FILE_NAME_PREFIX "%02x",
|
||||
plat_priv->board_info.board_id);
|
||||
} else {
|
||||
snprintf(filename_tmp, filename_len,
|
||||
BDF_FILE_NAME_PREFIX "%02x.e%02x",
|
||||
plat_priv->board_info.board_id >> 8 & 0xFF,
|
||||
plat_priv->board_info.board_id & 0xFF);
|
||||
}
|
||||
break;
|
||||
case CNSS_BDF_BIN:
|
||||
if (plat_priv->board_info.board_id == 0xFF)
|
||||
snprintf(filename_tmp, filename_len, BIN_BDF_FILE_NAME);
|
||||
else if (plat_priv->board_info.board_id < 0xFF)
|
||||
snprintf(filename_tmp, filename_len,
|
||||
BIN_BDF_FILE_NAME_PREFIX "%02x",
|
||||
plat_priv->board_info.board_id);
|
||||
else
|
||||
if (plat_priv->board_info.board_id == 0xFF) {
|
||||
if (plat_priv->chip_info.chip_id & CHIP_ID_GF_MASK)
|
||||
snprintf(filename_tmp, filename_len,
|
||||
BIN_BDF_FILE_NAME_GF);
|
||||
else
|
||||
snprintf(filename_tmp, filename_len,
|
||||
BIN_BDF_FILE_NAME);
|
||||
} else if (plat_priv->board_info.board_id < 0xFF) {
|
||||
if (plat_priv->chip_info.chip_id & CHIP_ID_GF_MASK)
|
||||
snprintf(filename_tmp, filename_len,
|
||||
BIN_BDF_FILE_NAME_GF_PREFIX "%02x",
|
||||
plat_priv->board_info.board_id);
|
||||
else
|
||||
snprintf(filename_tmp, filename_len,
|
||||
BIN_BDF_FILE_NAME_PREFIX "%02x",
|
||||
plat_priv->board_info.board_id);
|
||||
} else {
|
||||
snprintf(filename_tmp, filename_len,
|
||||
BDF_FILE_NAME_PREFIX "%02x.b%02x",
|
||||
plat_priv->board_info.board_id >> 8 & 0xFF,
|
||||
plat_priv->board_info.board_id & 0xFF);
|
||||
}
|
||||
break;
|
||||
case CNSS_BDF_REGDB:
|
||||
snprintf(filename_tmp, filename_len, REGDB_FILE_NAME);
|
||||
|
|
Loading…
Add table
Reference in a new issue