diff --git a/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/bcmsdh_linux.c b/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/bcmsdh_linux.c index 9c93279dcbf2..a0e5f2400c1e 100755 --- a/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/bcmsdh_linux.c +++ b/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/bcmsdh_linux.c @@ -51,6 +51,9 @@ extern void dhdsdio_isr(void * args); #include #endif /* defined(CONFIG_ARCH_ODIN) */ #include +#include + +extern int get_wifi_chip_type(void); /* driver info, initialized when bcmsdh_register is called */ static bcmsdh_driver_t drvinfo = {NULL, NULL, NULL, NULL}; @@ -333,6 +336,7 @@ int bcmsdh_oob_intr_register(bcmsdh_info_t *bcmsdh, bcmsdh_cb_fn_t oob_irq_handl void* oob_irq_handler_context) { int err = 0; + int type; bcmsdh_os_info_t *bcmsdh_osinfo = bcmsdh->os_cxt; SDLX_MSG(("%s: Enter\n", __FUNCTION__)); @@ -365,6 +369,9 @@ int bcmsdh_oob_intr_register(bcmsdh_info_t *bcmsdh, bcmsdh_cb_fn_t oob_irq_handl return err; } + type = get_wifi_chip_type(); + if (type == WIFI_AP6255) + bcmsdh_oob_intr_set(bcmsdh, FALSE); #if defined(DISABLE_WOWLAN) SDLX_MSG(("%s: disable_irq_wake\n", __FUNCTION__)); bcmsdh_osinfo->oob_irq_wake_enabled = FALSE; diff --git a/drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c b/drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c index 230c33776967..566f4672b867 100755 --- a/drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c +++ b/drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c @@ -73,6 +73,10 @@ if (chip == WIFI_AP6234) { sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_AP6234.txt"); } +if (chip == WIFI_AP6255) { + sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_bcm43455c0_ag.bin"); + sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_ap6255.txt"); +} if (chip == WIFI_AP6441) { sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_bcm43341b0_ag.bin"); sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_AP6441.txt"); diff --git a/drivers/net/wireless/rockchip_wlan/wifi_sys/rkwifi_sys_iface.c b/drivers/net/wireless/rockchip_wlan/wifi_sys/rkwifi_sys_iface.c index 7cc12cc9da4b..bdf45f364239 100644 --- a/drivers/net/wireless/rockchip_wlan/wifi_sys/rkwifi_sys_iface.c +++ b/drivers/net/wireless/rockchip_wlan/wifi_sys/rkwifi_sys_iface.c @@ -46,7 +46,12 @@ static ssize_t wifi_chip_read(struct class *cls, struct class_attribute *attr, c count = sprintf(_buf, "%s", "AP6234"); printk("Current WiFi chip is AP6234.\n"); } - + + if (type == WIFI_AP6255) { + count = sprintf(_buf, "%s", "AP6255"); + printk("Current WiFi chip is AP6255.\n"); + } + if(type == WIFI_AP6330) { count = sprintf(_buf, "%s", "AP6330"); printk("Current WiFi chip is AP6330.\n"); diff --git a/include/linux/rfkill-wlan.h b/include/linux/rfkill-wlan.h index 02bf9bb17efa..b78f989f18c7 100755 --- a/include/linux/rfkill-wlan.h +++ b/include/linux/rfkill-wlan.h @@ -49,6 +49,7 @@ enum { WIFI_AP6210, WIFI_AP6212, WIFI_AP6234, + WIFI_AP6255, WIFI_AP6330, WIFI_AP6335, WIFI_AP6354, diff --git a/net/rfkill/rfkill-wlan.c b/net/rfkill/rfkill-wlan.c index 66accd5f84f2..319c44bd5b00 100644 --- a/net/rfkill/rfkill-wlan.c +++ b/net/rfkill/rfkill-wlan.c @@ -115,7 +115,9 @@ int get_wifi_chip_type(void) } else if (strcmp(wifi_chip_type_string, "ap6181") == 0) { type = WIFI_AP6181; } else if (strcmp(wifi_chip_type_string, "ap6234") == 0) { - type = WIFI_AP6234; + type = WIFI_AP6234; + } else if (strcmp(wifi_chip_type_string, "ap6255") == 0) { + type = WIFI_AP6255; } else if (strcmp(wifi_chip_type_string, "ap6330") == 0) { type = WIFI_AP6330; } else if (strcmp(wifi_chip_type_string, "ap6335") == 0) {