From bc4f95ad2f038effac77fba8ea92a0412d5b9d81 Mon Sep 17 00:00:00 2001 From: hwg Date: Wed, 20 Aug 2014 19:03:55 +0800 Subject: [PATCH] rtl8723bs wifi: support rk3288 --- drivers/net/wireless/Kconfig | 2 +- .../rtl8723bs/core/rtw_ieee80211.c | 4 ++-- .../rtl8723bs/os_dep/linux/rtw_android.c | 5 ++++- .../rtl8723bs/os_dep/linux/sdio_intf.c | 21 +++++++------------ .../rockchip_wlan/wifi_sys/rkwifi_sys_iface.c | 2 +- 5 files changed, 16 insertions(+), 18 deletions(-) diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index 3fabd90ba02f..5bc85f34daaa 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig @@ -32,7 +32,7 @@ if WLAN source "drivers/net/wireless/rockchip_wlan/rtl8188eu/Kconfig" #source "drivers/net/wireless/rockchip_wlan/rtl8723au/Kconfig" #source "drivers/net/wireless/rockchip_wlan/rtl8723as/Kconfig" -#source "drivers/net/wireless/rockchip_wlan/rtl8723bs/Kconfig" +source "drivers/net/wireless/rockchip_wlan/rtl8723bs/Kconfig" source "drivers/net/wireless/rockchip_wlan/esp8089/Kconfig" source "drivers/net/wireless/rockchip_wlan/rkwifi/Kconfig" diff --git a/drivers/net/wireless/rockchip_wlan/rtl8723bs/core/rtw_ieee80211.c b/drivers/net/wireless/rockchip_wlan/rtl8723bs/core/rtw_ieee80211.c index 275a069acb9b..4eaf3809bd71 100755 --- a/drivers/net/wireless/rockchip_wlan/rtl8723bs/core/rtw_ieee80211.c +++ b/drivers/net/wireless/rockchip_wlan/rtl8723bs/core/rtw_ieee80211.c @@ -1326,7 +1326,7 @@ u8 convert_ip_addr(u8 hch, u8 mch, u8 lch) } extern char* rtw_initmac; -extern int rk29sdk_wifi_mac_addr(unsigned char *buf); +extern int rockchip_wifi_mac_addr(unsigned char *buf); void rtw_macaddr_cfg(u8 *mac_addr) { @@ -1349,7 +1349,7 @@ void rtw_macaddr_cfg(u8 *mac_addr) { printk("Wifi Efuse Mac => %02x:%02x:%02x:%02x:%02x:%02x\n", mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]); - if (!rk29sdk_wifi_mac_addr(macbuf)) { + if (!rockchip_wifi_mac_addr(macbuf)) { int jj,kk; printk("=========> get mac address from flash %s\n", macbuf); for( jj = 0, kk = 0; jj < ETH_ALEN; jj++, kk += 3 ) diff --git a/drivers/net/wireless/rockchip_wlan/rtl8723bs/os_dep/linux/rtw_android.c b/drivers/net/wireless/rockchip_wlan/rtl8723bs/os_dep/linux/rtw_android.c index 8f215868bbc7..90925fc15a9c 100755 --- a/drivers/net/wireless/rockchip_wlan/rtl8723bs/os_dep/linux/rtw_android.c +++ b/drivers/net/wireless/rockchip_wlan/rtl8723bs/os_dep/linux/rtw_android.c @@ -794,6 +794,7 @@ static void wifi_del_dev(void); int rtw_android_wifictrl_func_add(void) { int ret = 0; +#if 0 sema_init(&wifi_control_sem, 0); ret = wifi_add_dev(); @@ -808,17 +809,19 @@ int rtw_android_wifictrl_func_add(void) ret = -EINVAL; DBG_871X("%s: platform_driver_register timeout\n", __FUNCTION__); } - +#endif return ret; } void rtw_android_wifictrl_func_del(void) { +#if 0 if (g_wifidev_registered) { wifi_del_dev(); g_wifidev_registered = 0; } +#endif } void *wl_android_prealloc(int section, unsigned long size) diff --git a/drivers/net/wireless/rockchip_wlan/rtl8723bs/os_dep/linux/sdio_intf.c b/drivers/net/wireless/rockchip_wlan/rtl8723bs/os_dep/linux/sdio_intf.c index 98c94e00f073..aee42e9e2751 100755 --- a/drivers/net/wireless/rockchip_wlan/rtl8723bs/os_dep/linux/sdio_intf.c +++ b/drivers/net/wireless/rockchip_wlan/rtl8723bs/os_dep/linux/sdio_intf.c @@ -1419,11 +1419,10 @@ static void rtw_drv_halt(void) #include "wifi_version.h" -#ifdef CONFIG_RK_CHECK_UACCESS -static int __init rockchip_wifi_init_module(void) -#else +extern int rockchip_wifi_power(int on); +extern int rockchip_wifi_set_carddetect(int val); + int rockchip_wifi_init_module(void) -#endif { printk("\n"); printk("=======================================================\n"); @@ -1431,14 +1430,12 @@ int rockchip_wifi_init_module(void) printk("=======================================================\n"); printk("Realtek 8723BS SDIO WiFi driver (Powered by Rockchip,Ver %s) init.\n", RTL8192_DRV_VERSION); + rockchip_wifi_power(1); + rockchip_wifi_set_carddetect(1); return rtw_drv_entry(); } -#ifdef CONFIG_RK_CHECK_UACCESS -static void __exit rockchip_wifi_exit_module(void) -#else void rockchip_wifi_exit_module(void) -#endif { printk("\n"); printk("=======================================================\n"); @@ -1447,15 +1444,13 @@ void rockchip_wifi_exit_module(void) printk("Realtek 8723BS SDIO WiFi driver (Powered by Rockchip,Ver %s) init.\n", RTL8192_DRV_VERSION); rtw_drv_halt(); + + rockchip_wifi_set_carddetect(0); + rockchip_wifi_power(0); } -#ifdef CONFIG_RK_CHECK_UACCESS -late_initcall(rockchip_wifi_init_module); -module_exit(rockchip_wifi_exit_module); -#else EXPORT_SYMBOL(rockchip_wifi_init_module); EXPORT_SYMBOL(rockchip_wifi_exit_module); -#endif //module_init(rtw_drv_entry); //module_exit(rtw_drv_halt); 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 c3a0347b0354..879c1d2019cd 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 @@ -204,7 +204,7 @@ static int wifi_init_exit_module(int enable) #endif #if !defined(CONFIG_RKWIFI) && !defined(CONFIG_RTL8188EU) && !defined(CONFIG_ESP8089) - { + if (type > 0) { if (enable > 0) ret = rockchip_wifi_init_module(); else -- 2.34.1