Commit 183c8eff authored by Chin-Yen Lee's avatar Chin-Yen Lee Committed by Kalle Valo
Browse files

wifi: rtw89: support deep ps mode for rtw8852c



rtw8852c could support deep ps mode if the firmware version
is greater than 0.17.34.

Signed-off-by: default avatarChin-Yen Lee <timlee@realtek.com>
Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220908051257.25353-7-pkshih@realtek.com
parent 9ef9edb9
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1708,7 +1708,8 @@ static enum rtw89_ps_mode rtw89_update_ps_mode(struct rtw89_dev *rtwdev)
{
	const struct rtw89_chip_info *chip = rtwdev->chip;

	if (rtw89_disable_ps_mode || !chip->ps_mode_supported)
	if (rtw89_disable_ps_mode || !chip->ps_mode_supported ||
	    RTW89_CHK_FW_FEATURE(NO_DEEP_PS, &rtwdev->fw))
		return RTW89_PS_MODE_NONE;

	if (chip->ps_mode_supported & BIT(RTW89_PS_MODE_PWR_GATED))
+1 −0
Original line number Diff line number Diff line
@@ -2734,6 +2734,7 @@ enum rtw89_fw_feature {
	RTW89_FW_FEATURE_SCAN_OFFLOAD,
	RTW89_FW_FEATURE_TX_WAKE,
	RTW89_FW_FEATURE_CRASH_TRIGGER,
	RTW89_FW_FEATURE_NO_DEEP_PS,
};

struct rtw89_fw_suit {
+1 −0
Original line number Diff line number Diff line
@@ -225,6 +225,7 @@ static const struct __fw_feat_cfg fw_feat_tbl[] = {
	__CFG_FW_FEAT(RTL8852A, ge, 0, 13, 35, 0, SCAN_OFFLOAD),
	__CFG_FW_FEAT(RTL8852A, ge, 0, 13, 35, 0, TX_WAKE),
	__CFG_FW_FEAT(RTL8852A, ge, 0, 13, 36, 0, CRASH_TRIGGER),
	__CFG_FW_FEAT(RTL8852C, le, 0, 27, 33, 0, NO_DEEP_PS),
};

static void rtw89_fw_recognize_features(struct rtw89_dev *rtwdev)
+3 −1
Original line number Diff line number Diff line
@@ -3059,7 +3059,9 @@ const struct rtw89_chip_info rtw8852c_chip_info = {
	.rf_para_ulink		= rtw89_btc_8852c_rf_ul,
	.rf_para_dlink_num	= ARRAY_SIZE(rtw89_btc_8852c_rf_dl),
	.rf_para_dlink		= rtw89_btc_8852c_rf_dl,
	.ps_mode_supported	= 0,
	.ps_mode_supported	= BIT(RTW89_PS_MODE_RFOFF) |
				  BIT(RTW89_PS_MODE_CLK_GATED) |
				  BIT(RTW89_PS_MODE_PWR_GATED),
	.low_power_hci_modes	= BIT(RTW89_PS_MODE_CLK_GATED) |
				  BIT(RTW89_PS_MODE_PWR_GATED),
	.h2c_cctl_func_id	= H2C_FUNC_MAC_CCTLINFO_UD_V1,