diff --git a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/Makefile b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/Makefile index 8078de91f0..85636a5d01 100755 --- a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/Makefile +++ b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/Makefile @@ -62,7 +62,7 @@ DHDCFLAGS += -DCUSTOMER_HW -DDHD_OF_SUPPORT -DGET_CUSTOM_MAC_ENABLE #DHDCFLAGS += -DBCMWAPI_WPI -DBCMWAPI_WAI #endif -#DHDCFLAGS += -DBAND_AG +DHDCFLAGS += -DBAND_AG ifeq ($(CONFIG_DHD_USE_STATIC_BUF),y) # add dhd_static_buf to kernel image build diff --git a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.c b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.c index 7a85bfb0ab..46a26ddac8 100755 --- a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.c +++ b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.c @@ -473,11 +473,13 @@ dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path, char *nv_path) strcpy(&nv_path[j+1], "nvram_AP6210.txt"); break; case BCM43430_CHIP_ID: - if (chiprev == BCM43430A0_CHIP_REV) + if (chiprev == BCM43430A0_CHIP_REV){ + strcpy(&nv_path[i+1], "nvram_ap6212.txt"); strcpy(&fw_path[i+1], bcm43438a0_fw_name[fw_type]); - else if (chiprev == BCM43430A1_CHIP_REV) + } else if (chiprev == BCM43430A1_CHIP_REV){ + strcpy(&nv_path[j+1], "nvram_ap6212a.txt"); strcpy(&fw_path[i+1], bcm43438a1_fw_name[fw_type]); - strcpy(&nv_path[j+1], "nvram_ap6212.txt"); + } break; case BCM43340_CHIP_ID: if (chiprev == BCM43340B0_CHIP_REV) @@ -497,10 +499,9 @@ dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path, char *nv_path) strcpy(&fw_path[i+1], bcm4339a0_ag_fw_name[fw_type]); break; case BCM4345_CHIP_ID: - case BCM43454_CHIP_ID: if (chiprev == BCM43455C0_CHIP_REV) strcpy(&fw_path[i+1], bcm43455c0_ag_fw_name[fw_type]); - strcpy(&nv_path[j+1], "nvram_AP6255.txt"); + strcpy(&nv_path[j+1], "nvram_ap6255.txt"); break; case BCM4339_CHIP_ID: if (chiprev == BCM4339A0_CHIP_REV) @@ -520,11 +521,13 @@ dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path, char *nv_path) case BCM4356_CHIP_ID: if (chiprev == BCM4356A2_CHIP_REV) strcpy(&fw_path[i+1], bcm4356a2_ag_fw_name[fw_type]); - break; + strcpy(&nv_path[j+1], "nvram_ap6356.txt"); + break; case BCM4371_CHIP_ID: if (chiprev == BCM4356A2_CHIP_REV) strcpy(&fw_path[i+1], bcm4356a2_ag_fw_name[fw_type]); - break; + strcpy(&nv_path[j+1], "nvram_ap6356.txt"); + break; #endif #ifdef BCMPCIE case BCM4356_CHIP_ID: diff --git a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_sdio.c b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_sdio.c index f74f27e382..43eb231bf0 100755 --- a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_sdio.c +++ b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_sdio.c @@ -715,7 +715,6 @@ dhdsdio_sr_cap(dhd_bus_t *bus) (bus->sih->chip == BCM4339_CHIP_ID) || (bus->sih->chip == BCM43349_CHIP_ID) || (bus->sih->chip == BCM4345_CHIP_ID) || - (bus->sih->chip == BCM43454_CHIP_ID) || (bus->sih->chip == BCM4354_CHIP_ID) || (bus->sih->chip == BCM4356_CHIP_ID) || (bus->sih->chip == BCM4358_CHIP_ID) || @@ -737,7 +736,6 @@ dhdsdio_sr_cap(dhd_bus_t *bus) (bus->sih->chip == BCM4339_CHIP_ID) || (bus->sih->chip == BCM43349_CHIP_ID) || (bus->sih->chip == BCM4345_CHIP_ID) || - (bus->sih->chip == BCM43454_CHIP_ID) || (bus->sih->chip == BCM4354_CHIP_ID) || (bus->sih->chip == BCM4356_CHIP_ID) || (bus->sih->chip == BCM4358_CHIP_ID) || @@ -751,7 +749,6 @@ dhdsdio_sr_cap(dhd_bus_t *bus) if ((bus->sih->chip == BCM4350_CHIP_ID) || (bus->sih->chip == BCM4345_CHIP_ID) || - (bus->sih->chip == BCM43454_CHIP_ID) || (bus->sih->chip == BCM4354_CHIP_ID) || (bus->sih->chip == BCM4356_CHIP_ID) || (bus->sih->chip == BCM4358_CHIP_ID) || @@ -6759,8 +6756,6 @@ dhdsdio_chipmatch(uint16 chipid) return TRUE; if (chipid == BCM4345_CHIP_ID) return TRUE; - if (chipid == BCM43454_CHIP_ID) - return TRUE; if (chipid == BCM4350_CHIP_ID) return TRUE; if (chipid == BCM4354_CHIP_ID) @@ -7425,7 +7420,6 @@ dhdsdio_probe_attach(struct dhd_bus *bus, osl_t *osh, void *sdh, void *regsva, bus->dongle_ram_base = CR4_4360_RAM_BASE; break; case BCM4345_CHIP_ID: - case BCM43454_CHIP_ID: bus->dongle_ram_base = (bus->sih->chiprev < 6) /* from 4345C0 */ ? CR4_4345_LT_C0_RAM_BASE : CR4_4345_GE_C0_RAM_BASE; break; diff --git a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/include/bcmdevs.h b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/include/bcmdevs.h index 3474601ebf..1c17045eb5 100755 --- a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/include/bcmdevs.h +++ b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/include/bcmdevs.h @@ -365,7 +365,6 @@ (CHIPID(chipid) == BCM43570_CHIP_ID) || \ (CHIPID(chipid) == BCM4358_CHIP_ID)) /* 4350 variations */ #define BCM4345_CHIP_ID 0x4345 /* 4345 chipcommon chipid */ -#define BCM43454_CHIP_ID 43454 /* 43454 chipcommon chipid */ #define BCM43430_CHIP_ID 43430 /* 43430 chipcommon chipid */ #define BCM4349_CHIP_ID 0x4349 /* 4349 chipcommon chipid */ #define BCM4355_CHIP_ID 0x4355 /* 4355 chipcommon chipid */ diff --git a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/siutils.c b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/siutils.c index 0692a11595..f0f9926772 100755 --- a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/siutils.c +++ b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/siutils.c @@ -292,9 +292,8 @@ si_buscore_setup(si_info_t *sii, chipcregs_t *cc, uint bustype, uint32 savewin, /* for SDIO but downloaded on PCIE dev */ if (cid == PCIE2_CORE_ID) { if ((CHIPID(sii->pub.chip) == BCM43602_CHIP_ID) || - ((CHIPID(sii->pub.chip) == BCM4345_CHIP_ID || - CHIPID(sii->pub.chip) == BCM43454_CHIP_ID) && - CST4345_CHIPMODE_PCIE(sii->pub.chipst))) { + ((CHIPID(sii->pub.chip) == BCM4345_CHIP_ID) && + CST4345_CHIPMODE_PCIE(sii->pub.chipst))) { pcieidx = i; pcierev = crev; pcie = TRUE; @@ -1414,7 +1413,6 @@ si_chip_hostif(si_t *sih) break; case BCM4345_CHIP_ID: - case BCM43454_CHIP_ID: if (CST4345_CHIPMODE_USB20D(sih->chipst) || CST4345_CHIPMODE_HSIC(sih->chipst)) hosti = CHIP_HOSTIF_USBMODE; else if (CST4345_CHIPMODE_SDIOD(sih->chipst)) @@ -2819,7 +2817,6 @@ si_is_sprom_available(si_t *sih) !(sih->chipst & CST4324_SFLASH_MASK)); case BCM4335_CHIP_ID: case BCM4345_CHIP_ID: - case BCM43454_CHIP_ID: return ((sih->chipst & CST4335_SPROM_MASK) && !(sih->chipst & CST4335_SFLASH_MASK)); case BCM4349_CHIP_GRPID: diff --git a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c index db94e7e79f..f2192db4ee 100755 --- a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c +++ b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c @@ -57,6 +57,11 @@ if (chip == WIFI_AP6212) { sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_ap6212.txt"); } +if (chip == WIFI_AP6212A) { + sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_bcm43438a1.bin"); + sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_ap6212a.txt"); +} + if (chip == WIFI_AP6234) { sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_bcm43341b0_ag.bin"); sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_AP6234.txt"); diff --git a/kernel/drivers/net/wireless/rockchip_wlan/wifi_sys/rkwifi_sys_iface.c b/kernel/drivers/net/wireless/rockchip_wlan/wifi_sys/rkwifi_sys_iface.c index 9aac4e58b5..d53d7ea819 100755 --- a/kernel/drivers/net/wireless/rockchip_wlan/wifi_sys/rkwifi_sys_iface.c +++ b/kernel/drivers/net/wireless/rockchip_wlan/wifi_sys/rkwifi_sys_iface.c @@ -41,7 +41,12 @@ static ssize_t wifi_chip_read(struct class *cls, struct class_attribute *attr, c count = sprintf(_buf, "%s", "AP6212"); printk("Current WiFi chip is AP6212.\n"); } - + + if(type == WIFI_AP6212A) { + count = sprintf(_buf, "%s", "AP6212A"); + printk("Current WiFi chip is AP6212A.\n"); + } + if(type == WIFI_AP6234) { count = sprintf(_buf, "%s", "AP6234"); printk("Current WiFi chip is AP6234.\n"); diff --git a/kernel/include/linux/rfkill-wlan.h b/kernel/include/linux/rfkill-wlan.h index 3fd89a421d..5bfa372e98 100755 --- a/kernel/include/linux/rfkill-wlan.h +++ b/kernel/include/linux/rfkill-wlan.h @@ -48,6 +48,7 @@ enum { WIFI_AP6181, WIFI_AP6210, WIFI_AP6212, + WIFI_AP6212A, WIFI_AP6234, WIFI_AP6330, WIFI_AP6335, diff --git a/kernel/net/rfkill/rfkill-wlan.c b/kernel/net/rfkill/rfkill-wlan.c index cabc3336bd..7327502ec0 100755 --- a/kernel/net/rfkill/rfkill-wlan.c +++ b/kernel/net/rfkill/rfkill-wlan.c @@ -104,6 +104,8 @@ int get_wifi_chip_type(void) type = WIFI_AP6210; } else if (strcmp(wifi_chip_type_string, "ap6212") == 0) { type = WIFI_AP6212; + } else if (strcmp(wifi_chip_type_string, "ap6212a") == 0) { + type = WIFI_AP6212A; } else if (strcmp(wifi_chip_type_string, "rk901") == 0) { type = WIFI_RK901; } else if (strcmp(wifi_chip_type_string, "rk903") == 0) {