From 60a93a12d8b405092fbbf7c081a727eab3bc3c7e Mon Sep 17 00:00:00 2001 From: hwg Date: Thu, 18 Jun 2015 17:30:23 +0800 Subject: [PATCH] bcmdhd wifi: add auto recognize different chips --- .../net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.c | 7 ++++++- .../net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.h | 2 +- .../net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_sdio.c | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.c b/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.c index cee481281ce5..1e8e577ed51e 100755 --- a/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.c +++ b/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.c @@ -404,7 +404,7 @@ dhd_conf_set_nv_name_by_mac(dhd_pub_t *dhd, bcmsdh_info_t *sdh, char *nv_path) #endif void -dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path) +dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path, char *nv_path) { int fw_type, ag_type; uint chip, chiprev; @@ -453,6 +453,7 @@ dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path) } else { if (chiprev == BCM4330B2_CHIP_REV) strcpy(&fw_path[i+1], bcm4330b2_ag_fw_name[fw_type]); + strcpy(&nv_path[i+1], "nvram_AP6330.txt"); break; } case BCM43362_CHIP_ID: @@ -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]); else strcpy(&fw_path[i+1], bcm43362a2_fw_name[fw_type]); + strcpy(&nv_path[i+1], "nvram_AP6210.txt"); break; case BCM43430_CHIP_ID: if (chiprev == BCM43430A0_CHIP_REV) strcpy(&fw_path[i+1], bcm43438a0_fw_name[fw_type]); else if (chiprev == BCM43430A1_CHIP_REV) strcpy(&fw_path[i+1], bcm43438a1_fw_name[fw_type]); + strcpy(&nv_path[i+1], "nvram_ap6212.txt"); break; case BCM43340_CHIP_ID: if (chiprev == BCM43340B0_CHIP_REV) @@ -482,6 +485,7 @@ dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path) case BCM4335_CHIP_ID: if (chiprev == BCM4335A0_CHIP_REV) strcpy(&fw_path[i+1], bcm4339a0_ag_fw_name[fw_type]); + strcpy(&nv_path[i+1], "nvram_AP6335.txt"); break; case BCM4345_CHIP_ID: if (chiprev == BCM43455C0_CHIP_REV) @@ -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]); else if (chiprev == BCM4356A2_CHIP_REV) strcpy(&fw_path[i+1], bcm4356a2_ag_fw_name[fw_type]); + strcpy(&nv_path[i+1], "nvram_ap6354.txt"); break; #endif #ifdef BCMPCIE diff --git a/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.h b/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.h index 09748e07df89..7b948cb1f291 100755 --- a/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.h +++ b/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.h @@ -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); #endif #endif -void dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path); +void dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path, char *nv_path); void dhd_conf_set_nv_name_by_chip(dhd_pub_t *dhd, char *nv_path); void dhd_conf_set_conf_path_by_nv_path(dhd_pub_t *dhd, char *conf_path, char *nv_path); int dhd_conf_set_band(dhd_pub_t *dhd); diff --git a/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_sdio.c b/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_sdio.c index 1a186d95ebdb..508bac55ba74 100755 --- a/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_sdio.c +++ b/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_sdio.c @@ -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); -- 2.34.1