bcmdhd wifi: add auto recognize different chips
authorhwg <hwg@rock-chips.com>
Thu, 18 Jun 2015 09:30:23 +0000 (17:30 +0800)
committerhwg <hwg@rock-chips.com>
Thu, 18 Jun 2015 09:30:53 +0000 (17:30 +0800)
drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.c
drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.h
drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_sdio.c

index cee481281ce568f0679d4013284ced554d7cba60..1e8e577ed51e36b8f85838a9be385233ff66eda2 100755 (executable)
@@ -404,7 +404,7 @@ dhd_conf_set_nv_name_by_mac(dhd_pub_t *dhd, bcmsdh_info_t *sdh, char *nv_path)
 #endif\r
 \r
 void\r
-dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path)\r
+dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path, char *nv_path)\r
 {\r
        int fw_type, ag_type;\r
        uint chip, chiprev;\r
@@ -453,6 +453,7 @@ dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_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
                                break;\r
                        }\r
                case BCM43362_CHIP_ID:\r
@@ -460,12 +461,14 @@ dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_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
                        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
                        break;\r
                case BCM43340_CHIP_ID:\r
                        if (chiprev == BCM43340B0_CHIP_REV)\r
@@ -482,6 +485,7 @@ dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path)
                case BCM4335_CHIP_ID:\r
                        if (chiprev == BCM4335A0_CHIP_REV)\r
                                strcpy(&fw_path[i+1], bcm4339a0_ag_fw_name[fw_type]);\r
+                       strcpy(&nv_path[i+1], "nvram_AP6335.txt");\r
                        break;\r
                case BCM4345_CHIP_ID:\r
                        if (chiprev == BCM43455C0_CHIP_REV)\r
@@ -496,6 +500,7 @@ dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path)
                                strcpy(&fw_path[i+1], bcm4354a1_ag_fw_name[fw_type]);\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
                        break;\r
 #endif\r
 #ifdef BCMPCIE\r
index 09748e07df89f05398ba36007aa8afc958dab424..7b948cb1f291476aef7951a9d81eccb88526d836 100755 (executable)
@@ -134,7 +134,7 @@ void dhd_conf_set_nv_name_by_mac(dhd_pub_t *dhd, bcmsdh_info_t *sdh, char *nv_pa
 void dhd_conf_set_hw_oob_intr(bcmsdh_info_t *sdh, uint chip);\r
 #endif\r
 #endif\r
-void dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path);\r
+void dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path, char *nv_path);\r
 void dhd_conf_set_nv_name_by_chip(dhd_pub_t *dhd, char *nv_path);\r
 void dhd_conf_set_conf_path_by_nv_path(dhd_pub_t *dhd, char *conf_path, char *nv_path);\r
 int dhd_conf_set_band(dhd_pub_t *dhd);\r
index 1a186d95ebdbf9c3d4f095497cc3aaa0ce77c476..508bac55ba74f3e81fbdeeda632125dc0224aa94 100755 (executable)
@@ -7632,7 +7632,7 @@ dhdsdio_download_firmware(struct dhd_bus *bus, osl_t *osh, void *sdh)
        /* External conf takes precedence if specified */
        dhd_conf_preinit(bus->dhd);
        dhd_conf_read_config(bus->dhd, bus->dhd->conf_path);
-       dhd_conf_set_fw_name_by_chip(bus->dhd, bus->fw_path);
+       dhd_conf_set_fw_name_by_chip(bus->dhd, bus->fw_path, bus->nv_path);
        dhd_conf_set_nv_name_by_chip(bus->dhd, bus->nv_path);
        dhd_conf_set_fw_name_by_mac(bus->dhd, bus->sdh, bus->fw_path);
        dhd_conf_set_nv_name_by_mac(bus->dhd, bus->sdh, bus->nv_path);