bcmdhd wifi: support ap6356 nvram auto recognize
authorhwg <hwg@rock-chips.com>
Thu, 16 Jul 2015 12:32:39 +0000 (20:32 +0800)
committerhwg <hwg@rock-chips.com>
Thu, 16 Jul 2015 12:32:53 +0000 (20:32 +0800)
drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.c [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 1f5137d..a3aa73d
@@ -408,7 +408,7 @@ dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path, char *nv_path)
 {\r
        int fw_type, ag_type;\r
        uint chip, chiprev;\r
-       int i;\r
+       int i, j;\r
 \r
        chip = dhd->conf->chip;\r
        chiprev = dhd->conf->chiprev;\r
@@ -433,6 +433,11 @@ dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path, char *nv_path)
                if (fw_path[i] == '/') break;\r
                i--;\r
        }\r
+        j = strlen(nv_path);
+        while (j>0){
+                if (nv_path[j] == '/') break;
+                j--;
+        }
 #ifdef BAND_AG\r
        ag_type = FW_TYPE_AG;\r
 #else\r
@@ -453,7 +458,7 @@ dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path, char *nv_path)
                        } else {\r
                                if (chiprev == BCM4330B2_CHIP_REV)\r
                                        strcpy(&fw_path[i+1], bcm4330b2_ag_fw_name[fw_type]);\r
-                               strcpy(&nv_path[i+1], "nvram_AP6330.txt");\r
+                               strcpy(&nv_path[j+1], "nvram_AP6330.txt");\r
                                break;\r
                        }\r
                case BCM43362_CHIP_ID:\r
@@ -461,14 +466,14 @@ dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path, char *nv_path)
                                strcpy(&fw_path[i+1], bcm43362a0_fw_name[fw_type]);\r
                        else\r
                                strcpy(&fw_path[i+1], bcm43362a2_fw_name[fw_type]);\r
-                       strcpy(&nv_path[i+1], "nvram_AP6210.txt");\r
+                       strcpy(&nv_path[j+1], "nvram_AP6210.txt");\r
                        break;\r
                case BCM43430_CHIP_ID:\r
                        if (chiprev == BCM43430A0_CHIP_REV)\r
                                strcpy(&fw_path[i+1], bcm43438a0_fw_name[fw_type]);\r
                        else if (chiprev == BCM43430A1_CHIP_REV)\r
                                strcpy(&fw_path[i+1], bcm43438a1_fw_name[fw_type]);\r
-                       strcpy(&nv_path[i+1], "nvram_ap6212.txt");\r
+                       strcpy(&nv_path[j+1], "nvram_ap6212.txt");\r
                        break;\r
                case BCM43340_CHIP_ID:\r
                        if (chiprev == BCM43340B0_CHIP_REV)\r
@@ -481,7 +486,7 @@ dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path, char *nv_path)
                case BCM4324_CHIP_ID:\r
                        if (chiprev == BCM43241B4_CHIP_REV)\r
                                strcpy(&fw_path[i+1], bcm43241b4_ag_fw_name[fw_type]);\r
-                        strcpy(&nv_path[i+1], "nvram_ap62x2.txt");
+                        strcpy(&nv_path[j+1], "nvram_ap62x2.txt");
                        break;\r
                case BCM4335_CHIP_ID:\r
                        if (chiprev == BCM4335A0_CHIP_REV)\r
@@ -494,14 +499,17 @@ dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path, char *nv_path)
                case BCM4339_CHIP_ID:\r
                        if (chiprev == BCM4339A0_CHIP_REV)\r
                                strcpy(&fw_path[i+1], bcm4339a0_ag_fw_name[fw_type]);\r
-                       strcpy(&nv_path[i+1], "nvram_AP6335.txt");
+                       strcpy(&nv_path[j+1], "nvram_AP6335.txt");
                        break;\r
                case BCM4354_CHIP_ID:\r
-                       if (chiprev == BCM4354A1_CHIP_REV)\r
+                       if (chiprev == BCM4354A1_CHIP_REV) {\r
                                strcpy(&fw_path[i+1], bcm4354a1_ag_fw_name[fw_type]);\r
-                       else if (chiprev == BCM4356A2_CHIP_REV)\r
+                               strcpy(&nv_path[j+1], "nvram_ap6354.txt");\r
+                       }\r
+                       else if (chiprev == BCM4356A2_CHIP_REV) {\r
                                strcpy(&fw_path[i+1], bcm4356a2_ag_fw_name[fw_type]);\r
-                       strcpy(&nv_path[i+1], "nvram_ap6354.txt");      \r
+                               strcpy(&nv_path[j+1], "nvram_ap6356.txt");      \r
+                       }\r
                        break;\r
 #endif\r
 #ifdef BCMPCIE\r