From c859dedc509054fe779040580c50619523ed2316 Mon Sep 17 00:00:00 2001 From: hwg Date: Tue, 10 Mar 2015 16:23:07 +0800 Subject: [PATCH] wifi: support ap6212 ap6354 --- .../net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c | 10 ++++++++++ .../wireless/rockchip_wlan/wifi_sys/rkwifi_sys_iface.c | 10 ++++++++++ include/linux/rfkill-wlan.h | 2 ++ net/rfkill/rfkill-wlan.c | 4 ++++ 4 files changed, 26 insertions(+) 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 dce8eb14b396..db94e7e79f68 100755 --- a/drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c +++ b/drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c @@ -52,6 +52,11 @@ if (chip == WIFI_AP6210) { sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_AP6210.txt"); } +if (chip == WIFI_AP6212) { + sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_bcm43438a0.bin"); + sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_ap6212.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"); @@ -67,6 +72,11 @@ if (chip == WIFI_AP6335) { sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_AP6335.txt"); } +if (chip == WIFI_AP6354) { + sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_bcm4354a1_ag.bin"); + sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_ap6354.txt"); +} + if (chip == WIFI_AP6476) { sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_RK901.bin"); sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_AP6476.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 795d4b8407d0..d9f05c81e38b 100755 --- a/drivers/net/wireless/rockchip_wlan/wifi_sys/rkwifi_sys_iface.c +++ b/drivers/net/wireless/rockchip_wlan/wifi_sys/rkwifi_sys_iface.c @@ -36,6 +36,11 @@ static ssize_t wifi_chip_read(struct class *cls, struct class_attribute *attr, c count = sprintf(_buf, "%s", "AP6210"); printk("Current WiFi chip is AP6210.\n"); } + + if(type == WIFI_AP6212) { + count = sprintf(_buf, "%s", "AP6212"); + printk("Current WiFi chip is AP6212.\n"); + } if(type == WIFI_AP6234) { count = sprintf(_buf, "%s", "AP6234"); @@ -52,6 +57,11 @@ static ssize_t wifi_chip_read(struct class *cls, struct class_attribute *attr, c printk("Current WiFi chip is AP6335.\n"); } + if(type == WIFI_AP6354) { + count = sprintf(_buf, "%s", "AP6354"); + printk("Current WiFi chip is AP6354.\n"); + } + if(type == WIFI_AP6441) { count = sprintf(_buf, "%s", "AP6441"); printk("Current WiFi chip is AP6441.\n"); diff --git a/include/linux/rfkill-wlan.h b/include/linux/rfkill-wlan.h index 6e85cf9b7010..3fd89a421d53 100755 --- a/include/linux/rfkill-wlan.h +++ b/include/linux/rfkill-wlan.h @@ -47,9 +47,11 @@ enum { WIFI_RK903, WIFI_AP6181, WIFI_AP6210, + WIFI_AP6212, WIFI_AP6234, WIFI_AP6330, WIFI_AP6335, + WIFI_AP6354, WIFI_AP6441, WIFI_AP6476, WIFI_AP6493, diff --git a/net/rfkill/rfkill-wlan.c b/net/rfkill/rfkill-wlan.c index 75d7fe4b7ff1..a49bd3052ffd 100755 --- a/net/rfkill/rfkill-wlan.c +++ b/net/rfkill/rfkill-wlan.c @@ -103,6 +103,8 @@ int get_wifi_chip_type(void) int type; if (strcmp(wifi_chip_type_string, "ap6210") == 0) { type = WIFI_AP6210; + } else if (strcmp(wifi_chip_type_string, "ap6212") == 0) { + type = WIFI_AP6212; } else if (strcmp(wifi_chip_type_string, "rk901") == 0) { type = WIFI_RK901; } else if (strcmp(wifi_chip_type_string, "rk903") == 0) { @@ -115,6 +117,8 @@ int get_wifi_chip_type(void) type = WIFI_AP6330; } else if (strcmp(wifi_chip_type_string, "ap6335") == 0) { type = WIFI_AP6335; + } else if (strcmp(wifi_chip_type_string, "ap6354") == 0) { + type = WIFI_AP6354; } else if (strcmp(wifi_chip_type_string, "ap6441") == 0) { type = WIFI_AP6441; } else if (strcmp(wifi_chip_type_string, "ap6476") == 0) { -- 2.34.1