Merge "cnss2: Update the wlan fw name for Genoa"

This commit is contained in:
qctecmdr 2020-09-20 22:48:38 -07:00 committed by Gerrit - the friendly Code Review server
commit bf8e2cbe97
3 changed files with 26 additions and 1 deletions

View File

@ -269,6 +269,7 @@ enum cnss_ce_index {
struct cnss_plat_data {
struct platform_device *plat_dev;
enum cnss_driver_mode driver_mode;
void *bus_priv;
enum cnss_dev_bus_type bus_type;
struct list_head vreg_list;

View File

@ -47,6 +47,8 @@
#define DEFAULT_M3_FILE_NAME "m3.bin"
#define DEFAULT_FW_FILE_NAME "amss.bin"
#define FW_V2_FILE_NAME "amss20.bin"
#define DEFAULT_GENOA_FW_FTM_NAME "genoaftm.bin"
#define FW_V2_NUMBER 2
#define WAKE_MSI_NAME "WAKE"
@ -146,6 +148,8 @@ static DEFINE_SPINLOCK(pci_reg_window_lock);
#define LINK_TRAINING_RETRY_MAX_TIMES 3
static void cnss_pci_update_fw_name(struct cnss_pci_data *pci_priv);
static struct cnss_pci_reg ce_src[] = {
{ "SRC_RING_BASE_LSB", QCA6390_CE_SRC_RING_BASE_LSB_OFFSET },
{ "SRC_RING_BASE_MSB", QCA6390_CE_SRC_RING_BASE_MSB_OFFSET },
@ -1321,6 +1325,11 @@ int cnss_wlan_register_driver(struct cnss_wlan_driver *driver_ops)
return -EEXIST;
}
if (driver_ops->get_driver_mode) {
plat_priv->driver_mode = driver_ops->get_driver_mode();
cnss_pci_update_fw_name(pci_priv);
}
if (!test_bit(CNSS_COLD_BOOT_CAL, &plat_priv->driver_state))
goto register_driver;
@ -3059,7 +3068,21 @@ static void cnss_pci_update_fw_name(struct cnss_pci_data *pci_priv)
"%s" FW_V2_FILE_NAME, cnss_get_fw_path(plat_priv));
mhi_ctrl->fw_image = plat_priv->firmware_name;
}
if (pci_priv->device_id == QCN7605_DEVICE_ID) {
if (plat_priv->driver_mode == CNSS_FTM) {
snprintf(plat_priv->firmware_name,
sizeof(plat_priv->firmware_name),
"%s" DEFAULT_GENOA_FW_FTM_NAME,
cnss_get_fw_path(plat_priv));
mhi_ctrl->fw_image = plat_priv->firmware_name;
} else {
snprintf(plat_priv->firmware_name,
sizeof(plat_priv->firmware_name),
"%s" DEFAULT_FW_FILE_NAME,
cnss_get_fw_path(plat_priv));
mhi_ctrl->fw_image = plat_priv->firmware_name;
}
}
cnss_pr_dbg("Firmware name is %s\n", mhi_ctrl->fw_image);
}

View File

@ -95,6 +95,7 @@ struct cnss_wlan_driver {
void (*update_status)(struct pci_dev *pdev, uint32_t status);
struct cnss_wlan_runtime_ops *runtime_ops;
const struct pci_device_id *id_table;
enum cnss_driver_mode (*get_driver_mode)(void);
};
struct cnss_usb_wlan_driver {