[AIO-3288C] kernel->support ap6212a wifi,compatible with the old version

This commit is contained in:
sujl
2018-05-03 11:18:55 +08:00
parent d862e99549
commit bc074a684d
9 changed files with 27 additions and 21 deletions

View File

@ -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

View File

@ -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:

View File

@ -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;

View File

@ -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 */

View File

@ -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:

View File

@ -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");

View File

@ -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");

View File

@ -48,6 +48,7 @@ enum {
WIFI_AP6181,
WIFI_AP6210,
WIFI_AP6212,
WIFI_AP6212A,
WIFI_AP6234,
WIFI_AP6330,
WIFI_AP6335,

View File

@ -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) {