Skip to content

Commit 8dbb6e8

Browse files
ArseneWgCaesar-github
authored andcommitted
net: wireless: rtl8723ds: fixed some issues
1. fix disconnection during suspend/resume 2. fix unable to wake during suspend Change-Id: I3e1d535e7cee536a253446dc482d85f54a612323 Signed-off-by: Yao Xiao <xiaoyao@rock-chips.com>
1 parent 4311650 commit 8dbb6e8

3 files changed

Lines changed: 17 additions & 2 deletions

File tree

drivers/net/wireless/rockchip_wlan/rtl8723ds/hal/hal_com.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4451,6 +4451,11 @@ static u8 rtw_hal_set_wowlan_ctrl_cmd(_adapter *adapter, u8 enable, u8 change_un
44514451
gpio_pulse_cnt = 0x04;
44524452
}
44534453
#endif
4454+
if (enable) {
4455+
RTW_INFO("gpio_pulse_en\n");
4456+
gpio_pulse_en = 1;
4457+
gpio_pulse_cnt = 0x04;
4458+
}
44544459

44554460
SET_H2CCMD_WOWLAN_FUNC_ENABLE(u1H2CWoWlanCtrlParm, enable);
44564461
SET_H2CCMD_WOWLAN_PATTERN_MATCH_ENABLE(u1H2CWoWlanCtrlParm, enable);

drivers/net/wireless/rockchip_wlan/rtl8723ds/hal/rtl8723d/sdio/sdio_halinit.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1645,6 +1645,7 @@ u8 SetHwReg8723DS(PADAPTER padapter, u8 variable, u8 *val)
16451645
} else if (enable == _FALSE) {
16461646
RTW_INFO("%s: keep WLAN ctrl\n", __func__);
16471647
}
1648+
// 0x66[4,8]=0
16481649
/*0x66 bit4*/
16491650
value = rtw_read8(padapter, REG_PAD_CTRL_1 + 2);
16501651
if (enable && (value & BIT(4))) {
@@ -1664,7 +1665,15 @@ u8 SetHwReg8723DS(PADAPTER padapter, u8 variable, u8 *val)
16641665
value |= BIT(0);
16651666
rtw_write8(padapter, REG_PAD_CTRL_1 + 3, value);
16661667
}
1667-
RTW_INFO("%s: HW_SET_GPIO_WL_CTRL\n", __func__);
1668+
// 0x40[1:0] = 0 0x40[3] = 0
1669+
rtw_write32(padapter, 0x40, rtw_read32(padapter, 0x40) & 0xFFFFFFF4);
1670+
//0x44[30] = 0
1671+
rtw_write32(padapter, 0x44, rtw_read32(padapter, 0x44) & ~BIT(30));
1672+
//0x64[27]=0
1673+
rtw_write32(padapter, 0x64, rtw_read32(padapter, 0x64) & ~BIT(27));
1674+
//0x70[18]=0
1675+
rtw_write32(padapter, 0x70, rtw_read32(padapter, 0x70) & ~BIT(18));
1676+
RTW_INFO("%s: HW_SET_GPIO_WL_CTRL pinmux\n", __func__);
16681677
}
16691678
break;
16701679
#endif

drivers/net/wireless/rockchip_wlan/rtl8723ds/os_dep/linux/os_intfs.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4092,7 +4092,8 @@ int rtw_suspend_wow(_adapter *padapter)
40924092
else {
40934093
if (!(pwrpriv->wowlan_dis_lps)) {
40944094
rtw_wow_lps_level_decide(padapter, _TRUE);
4095-
rtw_set_ps_mode(padapter, PS_MODE_MAX, 0, 0, "WOWLAN");
4095+
RTW_INFO("[WIFIDBG] smart_ps = 2\n");
4096+
rtw_set_ps_mode(padapter, PS_MODE_MAX, 2, 0, "WOWLAN");
40964097
}
40974098
}
40984099
#endif /* #ifdef CONFIG_LPS */

0 commit comments

Comments
 (0)