From b9730c3ace1edded5263844ec45610189562387b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Fri, 19 Feb 2021 12:15:51 +0100 Subject: [PATCH 129/391] 8723cs: Enable WoWLAN On PinePhone: iw dev # and write down mac address, eg. 02:ba:7c:9c:cc:78 echo clean > /proc/net/rtl8723cs/wlan0/wow_pattern_info iw phy0 wowlan enable any ... suspend to ram ... On other device: wol -i pinephone_ip_address 02:ba:7c:9c:cc:78 ... pinephone wakes up over wifi ... :) Figured out with help from by #linux-sunxi/Peetz0r. Signed-off-by: Ondrej Jirman --- arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi | 1 + drivers/staging/rtl8723cs/Makefile | 4 ++-- drivers/staging/rtl8723cs/os_dep/linux/sdio_intf.c | 6 ++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi index 53f4c1f66..3c3b3e933 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -720,6 +720,7 @@ &mmc1 { non-removable; post-power-on-delay-ms = <1>; /* wifi power is always on */ status = "okay"; + keep-power-in-suspend; rtl8723cs: wifi@1 { reg = <1>; diff --git a/drivers/staging/rtl8723cs/Makefile b/drivers/staging/rtl8723cs/Makefile index 60c1c864d..b428d679e 100644 --- a/drivers/staging/rtl8723cs/Makefile +++ b/drivers/staging/rtl8723cs/Makefile @@ -108,7 +108,7 @@ CONFIG_RTW_LOG_LEVEL = 6 CONFIG_PROC_DEBUG = y ######################## Wake On Lan ########################## -CONFIG_WOWLAN = n +CONFIG_WOWLAN = y #bit3: ARP enable, bit2: deauth, bit1: unicast, bit0: magic pkt. CONFIG_WAKEUP_TYPE = 0xf CONFIG_WOW_LPS_MODE = default @@ -127,7 +127,7 @@ CONFIG_PNO_SUPPORT = n CONFIG_PNO_SET_DEBUG = n CONFIG_AP_WOWLAN = n ######### Notify SDIO Host Keep Power During Syspend ########## -CONFIG_RTW_SDIO_PM_KEEP_POWER = n +CONFIG_RTW_SDIO_PM_KEEP_POWER = y ###################### MP HW TX MODE FOR VHT ####################### CONFIG_MP_VHT_HW_TX_MODE = n ###################### ROAMING ##################################### diff --git a/drivers/staging/rtl8723cs/os_dep/linux/sdio_intf.c b/drivers/staging/rtl8723cs/os_dep/linux/sdio_intf.c index c20c136d1..d6494bad9 100644 --- a/drivers/staging/rtl8723cs/os_dep/linux/sdio_intf.c +++ b/drivers/staging/rtl8723cs/os_dep/linux/sdio_intf.c @@ -269,9 +269,8 @@ static u8 gpio_hostwakeup_alloc_irq(PADAPTER padapter) } else RTW_INFO("allocate gpio irq %d ok\n", oob_irq); -#ifndef CONFIG_PLATFORM_ARM_SUN8I enable_irq_wake(oob_irq); -#endif + return _SUCCESS; } @@ -282,9 +281,8 @@ static void gpio_hostwakeup_free_irq(PADAPTER padapter) if (oob_irq == 0) return; -#ifndef CONFIG_PLATFORM_ARM_SUN8I disable_irq_wake(oob_irq); -#endif + free_irq(oob_irq, padapter); } #endif -- 2.35.3