OSDN Git Service

cnss2: Add support for bin format bdf file
authorJayachandran Sreekumaran <jsreekum@codeaurora.org>
Tue, 4 Dec 2018 13:31:37 +0000 (19:01 +0530)
committerJayachandran Sreekumaran <jsreekum@codeaurora.org>
Tue, 8 Jan 2019 05:14:05 +0000 (10:44 +0530)
As genoa supports bdf file only in bin format, add support for the same.

Change-Id: I55db0480a259379c4ee2dac76f587d3fdf497090
Signed-off-by: Jayachandran Sreekumaran <jsreekum@codeaurora.org>
drivers/net/wireless/cnss2/qmi.c

index 8570156..cd84f74 100644 (file)
@@ -25,6 +25,7 @@
 #define MAX_BDF_FILE_NAME              11
 #define DEFAULT_BDF_FILE_NAME          "bdwlan.elf"
 #define BDF_FILE_NAME_PREFIX           "bdwlan.e"
+#define DEFAULT_BIN_BDF_FILE_NAME       "bdwlan.bin"
 
 #ifdef CONFIG_CNSS2_DEBUG
 static unsigned int qmi_timeout = 10000;
@@ -510,6 +511,7 @@ int cnss_wlfw_bdf_dnld_send_sync(struct cnss_plat_data *plat_priv)
        const u8 *temp;
        unsigned int remaining;
        int ret = 0;
+       enum cnss_bdf_type bdf_type = CNSS_BDF_ELF;
 
        cnss_pr_dbg("Sending BDF download message, state: 0x%lx\n",
                    plat_priv->driver_state);
@@ -520,8 +522,18 @@ int cnss_wlfw_bdf_dnld_send_sync(struct cnss_plat_data *plat_priv)
                goto out;
        }
 
+       if (plat_priv->device_id == QCN7605_DEVICE_ID ||
+           plat_priv->device_id == QCN7605_COMPOSITE_DEVICE_ID ||
+           plat_priv->device_id == QCN7605_STANDALONE_DEVICE_ID)
+               bdf_type = CNSS_BDF_BIN;
+
        if (plat_priv->board_info.board_id == 0xFF)
-               snprintf(filename, sizeof(filename), DEFAULT_BDF_FILE_NAME);
+               if (bdf_type == CNSS_BDF_BIN)
+                       snprintf(filename, sizeof(filename),
+                                DEFAULT_BIN_BDF_FILE_NAME);
+               else
+                       snprintf(filename, sizeof(filename),
+                                DEFAULT_BDF_FILE_NAME);
        else
                snprintf(filename, sizeof(filename),
                         BDF_FILE_NAME_PREFIX "%02x",
@@ -566,7 +578,7 @@ bypass_bdf:
                req->data_valid = 1;
                req->end_valid = 1;
                req->bdf_type_valid = 1;
-               req->bdf_type = CNSS_BDF_ELF;
+               req->bdf_type = bdf_type;
 
                if (remaining > QMI_WLFW_MAX_DATA_SIZE_V01) {
                        req->data_len = QMI_WLFW_MAX_DATA_SIZE_V01;