support different wifi bt chip auto compatible

like auto recognize rtl8188eu, ap6210, esp8089 in android

Conflicts:
	drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/Makefile
	net/rfkill/rfkill-wlan.c
This commit is contained in:
hwg 2015-02-28 14:05:32 +08:00
parent ac12f21803
commit 69ec730f70
19 changed files with 217 additions and 234 deletions

8
arch/arm/configs/rockchip_defconfig Normal file → Executable file
View File

@ -204,6 +204,7 @@ CONFIG_BT_BNEP=y
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=y
CONFIG_BT_RTKBTUSB=y
CONFIG_BT_HCIUART=y
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_LL=y
@ -294,6 +295,13 @@ CONFIG_USB_NET_INT51X1=y
CONFIG_USB_IPHETH=y
CONFIG_USB_SIERRA_NET=y
CONFIG_RTL8188EU=y
CONFIG_RTL8189ES=m
CONFIG_RTL8192DU=m
CONFIG_RTL8723AU=m
CONFIG_RTL8723BU=m
CONFIG_RTL8723BS=m
CONFIG_RTL8723BS_VQ0=m
CONFIG_RTL8812AU=m
CONFIG_ESP8089=y
CONFIG_RKWIFI=y
CONFIG_AP6335=y

View File

@ -4139,7 +4139,7 @@ extern int get_wifi_chip_type(void);
int dw_mci_suspend(struct dw_mci *host)
{
if((host->mmc->restrict_caps & RESTRICT_CARD_TYPE_SDIO) &&
(get_wifi_chip_type() == WIFI_ESP8089 || get_wifi_chip_type() == WIFI_RTKWIFI))
(get_wifi_chip_type() == WIFI_ESP8089 || get_wifi_chip_type() > WIFI_AP6XXX_SERIES))
return 0;
if(host->vmmc)
@ -4173,7 +4173,7 @@ int dw_mci_resume(struct dw_mci *host)
struct dw_mci_slot *slot;
if((host->mmc->restrict_caps & RESTRICT_CARD_TYPE_SDIO) &&
(get_wifi_chip_type() == WIFI_ESP8089 || get_wifi_chip_type() == WIFI_RTKWIFI))
(get_wifi_chip_type() == WIFI_ESP8089 || get_wifi_chip_type() > WIFI_AP6XXX_SERIES))
return 0;

View File

@ -25,30 +25,16 @@ if WLAN
# bool "rda 5990p"
# ---help---
# rda5990P fm bt wifi
menuconfig RTL_WIRELESS_SOLUTION
bool "Realtek Wireless Device Driver Support"
default y
if RTL_WIRELESS_SOLUTION
choice
prompt "Realtek WiFi Device Driver Support"
default RTL8188EU
config RTL_WIFI_NONE
bool "No Realtek WiFi"
source "drivers/net/wireless/rockchip_wlan/rtl8188eu/Kconfig"
source "drivers/net/wireless/rockchip_wlan/rtl8189es/Kconfig"
source "drivers/net/wireless/rockchip_wlan/rtl8192cu/Kconfig"
#source "drivers/net/wireless/rockchip_wlan/rtl8192cu/Kconfig"
source "drivers/net/wireless/rockchip_wlan/rtl8192du/Kconfig"
source "drivers/net/wireless/rockchip_wlan/rtl8723au/Kconfig"
source "drivers/net/wireless/rockchip_wlan/rtl8723bu/Kconfig"
source "drivers/net/wireless/rockchip_wlan/rtl8723bs/Kconfig"
source "drivers/net/wireless/rockchip_wlan/rtl8723bs-vq0/Kconfig"
source "drivers/net/wireless/rockchip_wlan/rtl8812au/Kconfig"
endchoice
endif
#source "drivers/net/wireless/rockchip_wlan/mt5931/Kconfig"
source "drivers/net/wireless/rockchip_wlan/esp8089/Kconfig"

View File

@ -9,14 +9,14 @@ config ESP8089
---help---
Espressif 8089 sdio Wi-Fi support
config BK3515A_COMBO
depends on ESP8089
select WIRELESS_EXT
select WEXT_PRIV
select CFG80211
select MAC80211
select NL80211_TESTMODE
bool "Espressif 8089 sdio Wi-Fi combo with BK3515A bluetooth"
---help---
RK Wi-Fi+BT+[GPS optional] Combo module support
# config BK3515A_COMBO
# depends on ESP8089
# select WIRELESS_EXT
# select WEXT_PRIV
# select CFG80211
# select MAC80211
# select NL80211_TESTMODE
# bool "Espressif 8089 sdio Wi-Fi combo with BK3515A bluetooth"
# ---help---
# RK Wi-Fi+BT+[GPS optional] Combo module support

View File

@ -10,6 +10,7 @@
*/
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/rfkill-wlan.h>
/*
* Set Firmware Path
@ -17,22 +18,20 @@
#define ANDROID_FW_PATH "/system/etc/firmware/"
extern int get_wifi_chip_type(void);
int rkwifi_set_firmware(char *fw, char *nvram)
{
#ifdef CONFIG_RK903
int chip = get_wifi_chip_type();
if (chip == WIFI_RK903) {
sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_RK903b2.bin");
#ifdef CONFIG_RKWIFI_26M
sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_RK903_26M.cal");
#endif
#ifdef CONFIG_RKWIFI_37_4M
sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_RK903.cal");
#endif
#endif
}
#ifdef CONFIG_RK901
if (chip == WIFI_RK901) {
sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_RK901.bin");
sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_RK901.txt");
#endif
}
#ifdef CONFIG_BCM4330
sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_bcm4330.bin");
@ -43,50 +42,45 @@ int rkwifi_set_firmware(char *fw, char *nvram)
#endif
#endif
#ifdef CONFIG_AP6181
if (chip == WIFI_AP6181) {
sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_RK901.bin");
sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_AP6181.txt");
#endif
}
#ifdef CONFIG_AP6210
if (chip == WIFI_AP6210) {
sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_RK901.bin");
#ifdef CONFIG_RKWIFI_26M
sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_AP6210.txt");
#endif
#ifdef CONFIG_RKWIFI_24M
sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_AP6210_24M.txt");
#endif
#endif
}
#ifdef CONFIG_AP6234
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");
#endif
}
#ifdef CONFIG_AP6441
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");
#endif
}
#ifdef CONFIG_AP6335
if (chip == WIFI_AP6335) {
sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_bcm4339a0_ag.bin");
sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_AP6335.txt");
#endif
}
#ifdef CONFIG_AP6476
if (chip == WIFI_AP6476) {
sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_RK901.bin");
sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_AP6476.txt");
#endif
}
#ifdef CONFIG_AP6493
if (chip == WIFI_AP6493) {
sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_RK903.bin");
sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_AP6493.txt");
#endif
}
#ifdef CONFIG_AP6330
if (chip == WIFI_AP6330) {
sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_RK903_ag.bin");
sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_AP6330.txt");
#endif
}
#ifdef CONFIG_GB86302I
sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_RK903_ag.bin");

View File

@ -1,6 +1,9 @@
config RTL8188EU
tristate "Realtek 8188E USB WiFi"
depends on USB
tristate "Realtek 8188EU USB WiFi Support"
select WIRELESS_EXT
select WEXT_PRIV
select IEEE80211
default y
---help---
Help message of RTL8188EU
Help message of RTL8188EU & RTL8189ES

View File

@ -1110,7 +1110,7 @@ EXTRA_CFLAGS += -DCONFIG_P2P_IPS
ARCH := arm
CROSS_COMPILE := /home/android_sdk/Rockchip/Rk3188/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
KSRC := /home/android_sdk/Rockchip/Rk3188/kernel
MODULE_NAME := wlan
MODULE_NAME := 8189es
endif
ifeq ($(CONFIG_PLATFORM_ARM_RK3066), y)

View File

@ -1066,8 +1066,8 @@ void rockchip_wifi_exit_module_rtkwifi(void)
rockchip_wifi_power(0);
}
EXPORT_SYMBOL(rockchip_wifi_init_module_rtkwifi);
EXPORT_SYMBOL(rockchip_wifi_exit_module_rtkwifi);
module_init(rockchip_wifi_init_module_rtkwifi);
module_exit(rockchip_wifi_exit_module_rtkwifi);
//module_init(rtw_drv_entry);
//module_exit(rtw_drv_halt);

View File

@ -1670,8 +1670,8 @@ void rockchip_wifi_exit_module_rtkwifi(void)
rockchip_wifi_power(0);
}
EXPORT_SYMBOL(rockchip_wifi_init_module_rtkwifi);
EXPORT_SYMBOL(rockchip_wifi_exit_module_rtkwifi);
module_init(rockchip_wifi_init_module_rtkwifi);
module_exit(rockchip_wifi_exit_module_rtkwifi);
//module_init(rtw_drv_entry);
//module_exit(rtw_drv_halt);

View File

@ -637,7 +637,7 @@ endif
ARCH := arm
CROSS_COMPILE := /usr/src/release_fae_version/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
KSRC := /usr/src/release_fae_version/kernel25_A7_281x
MODULE_NAME := wlan
MODULE_NAME := 8723au
endif
ifeq ($(CONFIG_PLATFORM_ARM_RK3066), y)

View File

@ -2182,8 +2182,8 @@ void rockchip_wifi_exit_module_rtkwifi(void)
rockchip_wifi_power(0);
}
EXPORT_SYMBOL(rockchip_wifi_init_module_rtkwifi);
EXPORT_SYMBOL(rockchip_wifi_exit_module_rtkwifi);
module_init(rockchip_wifi_init_module_rtkwifi);
module_exit(rockchip_wifi_exit_module_rtkwifi);
//module_init(rtw_drv_entry);
//module_exit(rtw_drv_halt);

View File

@ -1070,8 +1070,8 @@ void rockchip_wifi_exit_module_rtkwifi(void)
rockchip_wifi_power(0);
}
EXPORT_SYMBOL(rockchip_wifi_init_module_rtkwifi);
EXPORT_SYMBOL(rockchip_wifi_exit_module_rtkwifi);
module_init(rockchip_wifi_init_module_rtkwifi);
module_exit(rockchip_wifi_exit_module_rtkwifi);
//module_init(rtw_drv_entry);
//module_exit(rtw_drv_halt);

View File

@ -1025,7 +1025,7 @@ EXTRA_CFLAGS += -DCONFIG_P2P_IPS
ARCH := arm
CROSS_COMPILE := /home/android_sdk/Rockchip/Rk3188/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
KSRC := /home/android_sdk/Rockchip/Rk3188/kernel
MODULE_NAME := wlan
MODULE_NAME := 8723bs
endif
ifeq ($(CONFIG_PLATFORM_ARM_RK3066), y)

View File

@ -975,8 +975,8 @@ void rockchip_wifi_exit_module_rtkwifi(void)
rockchip_wifi_power(0);
}
EXPORT_SYMBOL(rockchip_wifi_init_module_rtkwifi);
EXPORT_SYMBOL(rockchip_wifi_exit_module_rtkwifi);
module_init(rockchip_wifi_init_module_rtkwifi);
module_exit(rockchip_wifi_exit_module_rtkwifi);
//module_init(rtw_drv_entry);
//module_exit(rtw_drv_halt);

View File

@ -1782,8 +1782,8 @@ void rockchip_wifi_exit_module_rtkwifi(void)
rockchip_wifi_power(0);
}
EXPORT_SYMBOL(rockchip_wifi_init_module_rtkwifi);
EXPORT_SYMBOL(rockchip_wifi_exit_module_rtkwifi);
module_init(rockchip_wifi_init_module_rtkwifi);
module_exit(rockchip_wifi_exit_module_rtkwifi);
//module_init(rtw_drv_entry);
//module_exit(rtw_drv_halt);

View File

@ -1777,8 +1777,8 @@ void rockchip_wifi_exit_module_rtkwifi(void)
rockchip_wifi_power(0);
}
EXPORT_SYMBOL(rockchip_wifi_init_module_rtkwifi);
EXPORT_SYMBOL(rockchip_wifi_exit_module_rtkwifi);
module_init(rockchip_wifi_init_module_rtkwifi);
module_exit(rockchip_wifi_exit_module_rtkwifi);
//module_init(rtw_drv_entry);
//module_exit(rtw_drv_halt);

View File

@ -17,148 +17,95 @@ static ssize_t wifi_chip_read(struct class *cls, struct class_attribute *attr, c
int count = 0;
int type = get_wifi_chip_type();
if(type == WIFI_RTKWIFI) {
#ifdef CONFIG_RTL8192CU
count = sprintf(_buf, "%s", "RTL8188CU");
printk("Current WiFi chip is RTL8188CU.\n");
#endif
if(type == WIFI_RK901) {
count = sprintf(_buf, "%s", "APRK901");
printk("Current WiFi chip is APRK901.\n");
}
#ifdef CONFIG_RTL8192DU
count = sprintf(_buf, "%s", "RTL8192DU");
printk("Current WiFi chip is RTL8192DU.\n");
#endif
if(type == WIFI_RK903) {
count = sprintf(_buf, "%s", "APRK903");
printk("Current WiFi chip is APRK903.\n");
}
if(type == WIFI_AP6181) {
count = sprintf(_buf, "%s", "AP6181");
printk("Current WiFi chip is AP6181.\n");
}
#ifdef CONFIG_RTL8188EU
count = sprintf(_buf, "%s", "RTL8188EU");
printk("Current WiFi chip is RTL8188EU.\n");
#endif
if(type == WIFI_AP6210) {
count = sprintf(_buf, "%s", "AP6210");
printk("Current WiFi chip is AP6210.\n");
}
if(type == WIFI_AP6234) {
count = sprintf(_buf, "%s", "AP6234");
printk("Current WiFi chip is AP6234.\n");
}
if(type == WIFI_AP6330) {
count = sprintf(_buf, "%s", "AP6330");
printk("Current WiFi chip is AP6330.\n");
}
if(type == WIFI_AP6335) {
count = sprintf(_buf, "%s", "AP6335");
printk("Current WiFi chip is AP6335.\n");
}
#ifdef CONFIG_RTL8723AU
count = sprintf(_buf, "%s", "RTL8723AU");
printk("Current WiFi chip is RTL8723AU.\n");
#endif
if(type == WIFI_AP6441) {
count = sprintf(_buf, "%s", "AP6441");
printk("Current WiFi chip is AP6441.\n");
}
#ifdef CONFIG_RTL8723BU
count = sprintf(_buf, "%s", "RTL8723BU");
printk("Current WiFi chip is RTL8723BU.\n");
#endif
if(type == WIFI_AP6476) {
count = sprintf(_buf, "%s", "AP6476");
printk("Current WiFi chip is AP6476.\n");
}
#ifdef CONFIG_RTL8723BS
count = sprintf(_buf, "%s", "RTL8723BS");
printk("Current WiFi chip is RTL8723BS.\n");
#endif
if(type == WIFI_AP6493) {
count = sprintf(_buf, "%s", "AP6493");
printk("Current WiFi chip is AP6493.\n");
}
#ifdef CONFIG_RTL8723BS_VQ0
count = sprintf(_buf, "%s", "RTL8723BS");
printk("Current WiFi chip is RTL8723BS.\n");
#endif
if(type == WIFI_RTL8188EU) {
count = sprintf(_buf, "%s", "RTL8188EU");
printk("Current WiFi chip is RTL8188EU.\n");
}
if(type == WIFI_RTL8723BS) {
count = sprintf(_buf, "%s", "RTL8723BS");
printk("Current WiFi chip is RTL8723BS.\n");
}
#ifdef CONFIG_RTL8189ES
count = sprintf(_buf, "%s", "RTL8189ES");
printk("Current WiFi chip is RTL8189ES.\n");
#endif
if(type == WIFI_RTL8723AS) {
count = sprintf(_buf, "%s", "RTL8723AS");
printk("Current WiFi chip is RTL8723AS.\n");
}
if(type == WIFI_RTL8723BS_VQ0) {
count = sprintf(_buf, "%s", "RTL8723BS_VQ0");
printk("Current WiFi chip is RTL8723BS_VQ0.\n");
}
if(type == WIFI_RTL8723BU) {
count = sprintf(_buf, "%s", "RTL8723BU");
printk("Current WiFi chip is RTL8723BU.\n");
}
#ifdef CONFIG_RTL8812AU
count = sprintf(_buf, "%s", "RTL8812AU");
printk("Current WiFi chip is RTL8812AU.\n");
#endif
if(type == WIFI_RTL8723AU) {
count = sprintf(_buf, "%s", "RTL8723AU");
printk("Current WiFi chip is RTL8723AU.\n");
}
if(type == WIFI_RTL8189ES) {
count = sprintf(_buf, "%s", "RTL8189ES");
printk("Current WiFi chip is RTL8189ES.\n");
}
}
if(type == WIFI_BCMWIFI) {
#ifdef CONFIG_BCM4330
count = sprintf(_buf, "%s", "BCM4330");
printk("Current WiFi chip is BCM4330.\n");
#endif
#ifdef CONFIG_RK901
count = sprintf(_buf, "%s", "RK901");
printk("Current WiFi chip is RK901.\n");
#endif
#ifdef CONFIG_RK903
count = sprintf(_buf, "%s", "RK903");
printk("Current WiFi chip is RK903.\n");
#endif
#ifdef CONFIG_AP6181
count = sprintf(_buf, "%s", "RK901");
printk("Current WiFi chip is AP6181.\n");
#endif
#ifdef CONFIG_AP6210
count = sprintf(_buf, "%s", "RK901");
printk("Current WiFi chip is AP6210.\n");
#endif
#ifdef CONFIG_AP6234
count = sprintf(_buf, "%s", "AP6234");
printk("Current WiFi chip is AP6234.\n");
#endif
#ifdef CONFIG_AP6330
count = sprintf(_buf, "%s", "RK903");
printk("Current WiFi chip is AP6330.\n");
#endif
#ifdef CONFIG_AP6335
count = sprintf(_buf, "%s", "AP6335");
printk("Current WiFi chip is AP6335.\n");
#endif
#ifdef CONFIG_AP6441
count = sprintf(_buf, "%s", "AP6441");
printk("Current WiFi chip is AP6441.\n");
#endif
#ifdef CONFIG_AP6476
count = sprintf(_buf, "%s", "RK901");
printk("Current WiFi chip is AP6476.\n");
#endif
#ifdef CONFIG_AP6493
count = sprintf(_buf, "%s", "RK903");
printk("Current WiFi chip is AP6493.\n");
#endif
#ifdef CONFIG_GB86302I
count = sprintf(_buf, "%s", "RK903");
printk("Current WiFi chip is GB86302I.\n");
#endif
}
#ifdef CONFIG_MTK_COMBO
count = sprintf(_buf, "%s", "MT6620");
printk("Current WiFi chip is MT6620.\n");
#endif
#ifdef CONFIG_MT5931
count = sprintf(_buf, "%s", "MT5931");
printk("Current WiFi chip is MT5931.\n");
#endif
#ifdef CONFIG_MT5931_MT6622
count = sprintf(_buf, "%s", "MT5931");
printk("Current WiFi chip is MT5931.\n");
#endif
#ifdef CONFIG_MTK_MT5931
count = sprintf(_buf, "%s", "MT5931");
printk("Current WiFi chip is MT5931.\n");
#endif
#ifdef CONFIG_MT7601
count = sprintf(_buf, "%s", "MT7601");
printk("Current WiFi chip is MT7601.\n");
#endif
if(type == WIFI_ESP8089) {
#ifdef CONFIG_ESP8089
count = sprintf(_buf, "%s", "ESP8089");
printk("Current WiFi chip is ESP8089.\n");
#endif
}
if(type == WIFI_ESP8089) {
count = sprintf(_buf, "%s", "ESP8089");
printk("Current WiFi chip is ESP8089.\n");
}
return count;
}
@ -197,25 +144,25 @@ static int wifi_init_exit_module(int enable)
{
int ret = 0;
int type = get_wifi_chip_type();
#ifdef CONFIG_RKWIFI
if (type == WIFI_BCMWIFI) {
//#ifdef CONFIG_RKWIFI
if (type < WIFI_AP6XXX_SERIES) {
if (enable > 0)
ret = rockchip_wifi_init_module_rkwifi();
else
rockchip_wifi_exit_module_rkwifi();
return ret;
}
#endif
#ifdef CONFIG_RTL_WIRELESS_SOLUTION
if (type == WIFI_RTKWIFI) {
//#endif
//#ifdef CONFIG_RTL_WIRELESS_SOLUTION
if (type < WIFI_RTL_SERIES) {
if (enable > 0)
ret = rockchip_wifi_init_module_rtkwifi();
else
rockchip_wifi_exit_module_rtkwifi();
return ret;
}
#endif
#ifdef CONFIG_ESP8089
//#endif
//#ifdef CONFIG_ESP8089
if (type == WIFI_ESP8089) {
if (enable > 0)
ret = rockchip_wifi_init_module_esp8089();
@ -223,16 +170,7 @@ static int wifi_init_exit_module(int enable)
rockchip_wifi_exit_module_esp8089();
return ret;
}
#endif
#if !defined(CONFIG_RKWIFI) && !defined(CONFIG_RTL_WIRELESS_SOLUTION) && !defined(CONFIG_ESP8089)
if (type >= 0) {
if (enable > 0)
ret = rockchip_wifi_init_module();
else
rockchip_wifi_exit_module();
}
#endif
//#endif
return ret;
}

View File

@ -43,8 +43,27 @@ struct rksdmmc_gpio_wifi_moudle {
};
enum {
WIFI_BCMWIFI,
WIFI_RTKWIFI,
WIFI_RK901,
WIFI_RK903,
WIFI_AP6181,
WIFI_AP6210,
WIFI_AP6234,
WIFI_AP6330,
WIFI_AP6335,
WIFI_AP6441,
WIFI_AP6476,
WIFI_AP6493,
WIFI_AP6XXX_SERIES,
WIFI_RTL8188EU,
WIFI_RTL8192DU,
WIFI_RTL8723AS,
WIFI_RTL8723BS,
WIFI_RTL8723BS_VQ0,
WIFI_RTL8723BU,
WIFI_RTL8723AU,
WIFI_RTL8189ES,
WIFI_RTL8812AU,
WIFI_RTL_SERIES,
WIFI_ESP8089,
TYPE_MAX,
};

47
net/rfkill/rfkill-wlan.c Normal file → Executable file
View File

@ -100,14 +100,48 @@ static char wifi_chip_type_string[64];
int get_wifi_chip_type(void)
{
int type;
if (strcmp(wifi_chip_type_string, "bcmwifi") == 0) {
type = WIFI_BCMWIFI;
} else if (strcmp(wifi_chip_type_string, "rtkwifi") == 0) {
type = WIFI_RTKWIFI;
if (strcmp(wifi_chip_type_string, "ap6210") == 0) {
type = WIFI_AP6210;
} else if (strcmp(wifi_chip_type_string, "rk901") == 0) {
type = WIFI_RK901;
} else if (strcmp(wifi_chip_type_string, "rk903") == 0) {
type = WIFI_RK903;
} else if (strcmp(wifi_chip_type_string, "ap6181") == 0) {
type = WIFI_AP6181;
} else if (strcmp(wifi_chip_type_string, "ap6234") == 0) {
type = WIFI_AP6234;
} else if (strcmp(wifi_chip_type_string, "ap6330") == 0) {
type = WIFI_AP6330;
} else if (strcmp(wifi_chip_type_string, "ap6335") == 0) {
type = WIFI_AP6335;
} else if (strcmp(wifi_chip_type_string, "ap6441") == 0) {
type = WIFI_AP6441;
} else if (strcmp(wifi_chip_type_string, "ap6476") == 0) {
type = WIFI_AP6476;
} else if (strcmp(wifi_chip_type_string, "ap6493") == 0) {
type = WIFI_AP6493;
} else if (strcmp(wifi_chip_type_string, "rtl8188eu") == 0) {
type = WIFI_RTL8188EU;
} else if (strcmp(wifi_chip_type_string, "rtl8192du") == 0) {
type = WIFI_RTL8192DU;
} else if (strcmp(wifi_chip_type_string, "rtl8723as") == 0) {
type = WIFI_RTL8723AS;
} else if (strcmp(wifi_chip_type_string, "rtl8723bs_vq0") == 0) {
type = WIFI_RTL8723BS_VQ0;
} else if (strcmp(wifi_chip_type_string, "rtl8723bs") == 0) {
type = WIFI_RTL8723BS;
} else if (strcmp(wifi_chip_type_string, "rtl8723au") == 0) {
type = WIFI_RTL8723AU;
} else if (strcmp(wifi_chip_type_string, "rtl8723bu") == 0) {
type = WIFI_RTL8723BU;
} else if (strcmp(wifi_chip_type_string, "rtl8189es") == 0) {
type = WIFI_RTL8189ES;
} else if (strcmp(wifi_chip_type_string, "rtl8812au") == 0) {
type = WIFI_RTL8812AU;
} else if (strcmp(wifi_chip_type_string, "esp8089") == 0) {
type = WIFI_ESP8089;
} else {
type = TYPE_MAX;
type = WIFI_AP6210;
}
return type;
}
@ -453,7 +487,8 @@ int rockchip_wifi_set_carddetect(int val)
chip = get_wifi_chip_type();
/* irq_type : 0, oob; 1, cap-sdio-irq */
if (chip == WIFI_BCMWIFI)
if (!strncmp(wifi_chip_type_string, "ap", 2) ||
!strncmp(wifi_chip_type_string, "rk", 2))
irq_type = 0;
else
irq_type = 1;