Lines Matching +full:deep +full:- +full:sleep
1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2 /* Copyright(c) 2018-2019 Realtek Corporation
29 if (!test_bit(RTW_FLAG_POWERON, rtwdev->flags))
43 struct rtw_vif *rtwvif = (struct rtw_vif *)vif->drv_priv;
53 if (test_bit(RTW_FLAG_POWERON, rtwdev->flags))
74 request = rtw_read8(rtwdev, rtwdev->hci.rpwm_addr);
75 confirm = rtw_read8(rtwdev, rtwdev->hci.cpwm_addr);
87 if (rtw_fw_feature_check(&rtwdev->fw, FW_FEATURE_TX_WAKE))
90 rtw_write8(rtwdev, rtwdev->hci.rpwm_addr, request);
96 rtwdev->hci.cpwm_addr);
99 * The reason could be that hardware is locked at Deep sleep,
105 WARN(1, "firmware failed to ack driver for %s Deep Power mode\n",
139 return -EBUSY;
144 if (wait_for_completion_timeout(&rtwdev->lps_leave_check,
147 return -EBUSY;
155 if (test_bit(RTW_FLAG_WOWLAN, rtwdev->flags))
156 fw = &rtwdev->wow_fw;
158 fw = &rtwdev->fw;
176 if (test_bit(RTW_FLAG_WOWLAN, rtwdev->flags))
177 fw = &rtwdev->wow_fw;
179 fw = &rtwdev->fw;
182 reinit_completion(&rtwdev->lps_leave_check);
187 struct rtw_lps_conf *conf = &rtwdev->lps_conf;
189 conf->state = RTW_ALL_ON;
190 conf->awake_interval = 1;
191 conf->rlbm = 0;
192 conf->smart_ps = 0;
199 clear_bit(RTW_FLAG_LEISURE_PS, rtwdev->flags);
206 if (test_bit(RTW_FLAG_WOWLAN, rtwdev->flags))
207 return rtwdev->lps_conf.wow_deep_mode;
209 return rtwdev->lps_conf.deep_mode;
217 if (!test_bit(RTW_FLAG_LEISURE_PS, rtwdev->flags)) {
219 "Should enter LPS before entering deep PS\n");
231 struct rtw_lps_conf *conf = &rtwdev->lps_conf;
233 conf->state = RTW_RF_OFF;
234 conf->awake_interval = 1;
235 conf->rlbm = 1;
236 conf->smart_ps = 2;
243 set_bit(RTW_FLAG_LEISURE_PS, rtwdev->flags);
248 struct rtw_lps_conf *conf = &rtwdev->lps_conf;
250 if (test_bit(RTW_FLAG_LEISURE_PS, rtwdev->flags))
253 conf->mode = RTW_MODE_LPS;
254 conf->port_id = port_id;
261 struct rtw_lps_conf *conf = &rtwdev->lps_conf;
263 if (test_and_clear_bit(RTW_FLAG_LEISURE_PS_DEEP, rtwdev->flags)) {
265 "Should leave deep PS before leaving LPS\n");
269 if (!test_bit(RTW_FLAG_LEISURE_PS, rtwdev->flags))
272 conf->mode = RTW_MODE_ACTIVE;
279 lockdep_assert_held(&rtwdev->mutex);
281 if (rtwdev->coex.stat.wl_force_lps_ctrl)
290 lockdep_assert_held(&rtwdev->mutex);
298 lockdep_assert_held(&rtwdev->mutex);
312 if (data->count < 0)
315 if (vif->type != NL80211_IFTYPE_STATION) {
316 data->count = -1;
320 data->count++;
321 data->found_vif = vif;
337 if (data.count == 1 && data.found_vif->cfg.ps) {
338 rtwdev->ps_enabled = true;
340 rtwdev->ps_enabled = false;