Lines Matching +full:self +full:- +full:powered

2  * SPDX-License-Identifier: MIT
26 int count = atomic_read(&gt->user_wakeref); in user_forcewake()
34 GEM_BUG_ON(count > atomic_read(&gt->wakeref.count)); in user_forcewake()
35 atomic_sub(count, &gt->wakeref.count); in user_forcewake()
37 atomic_add(count, &gt->wakeref.count); in user_forcewake()
45 struct drm_i915_private *i915 = gt->i915; in __gt_unpark()
62 gt->awake = intel_display_power_get(i915, POWER_DOMAIN_GT_IRQ); in __gt_unpark()
63 GEM_BUG_ON(!gt->awake); in __gt_unpark()
65 intel_rc6_unpark(&gt->rc6); in __gt_unpark()
66 intel_rps_unpark(&gt->rps); in __gt_unpark()
77 intel_wakeref_t wakeref = fetch_and_zero(&gt->awake); in __gt_park()
78 struct drm_i915_private *i915 = gt->i915; in __gt_park()
86 intel_rps_park(&gt->rps); in __gt_park()
87 intel_rc6_park(&gt->rc6); in __gt_park()
108 intel_wakeref_init(&gt->wakeref, gt->uncore->rpm, &wf_ops); in intel_gt_pm_init_early()
114 * Enabling power-management should be "self-healing". If we cannot in intel_gt_pm_init()
118 intel_rc6_init(&gt->rc6); in intel_gt_pm_init()
119 intel_rps_init(&gt->rps); in intel_gt_pm_init()
124 if (INTEL_INFO(gt->i915)->gpu_reset_clobbers_display) in reset_engines()
139 wakeref = intel_runtime_pm_get(gt->uncore->rpm); in gt_sanitize()
140 intel_uncore_forcewake_get(gt->uncore, FORCEWAKE_ALL); in gt_sanitize()
153 intel_uc_sanitize(&gt->uc); in gt_sanitize()
156 if (engine->reset.prepare) in gt_sanitize()
157 engine->reset.prepare(engine); in gt_sanitize()
159 intel_uc_reset_prepare(&gt->uc); in gt_sanitize()
162 if (engine->sanitize) in gt_sanitize()
163 engine->sanitize(engine); in gt_sanitize()
171 if (engine->reset.finish) in gt_sanitize()
172 engine->reset.finish(engine); in gt_sanitize()
174 intel_rps_sanitize(&gt->rps); in gt_sanitize()
176 intel_uncore_forcewake_put(gt->uncore, FORCEWAKE_ALL); in gt_sanitize()
177 intel_runtime_pm_put(gt->uncore->rpm, wakeref); in gt_sanitize()
182 intel_rc6_fini(&gt->rc6); in intel_gt_pm_fini()
207 intel_uncore_forcewake_get(gt->uncore, FORCEWAKE_ALL); in intel_gt_resume()
208 intel_rc6_sanitize(&gt->rc6); in intel_gt_resume()
210 err = -EIO; in intel_gt_resume()
214 /* Only when the HW is re-initialised, can we replay the requests */ in intel_gt_resume()
217 i915_probe_error(gt->i915, in intel_gt_resume()
222 intel_rps_enable(&gt->rps); in intel_gt_resume()
223 intel_llc_enable(&gt->llc); in intel_gt_resume()
228 engine->serial++; /* kernel context lost */ in intel_gt_resume()
233 drm_err(&gt->i915->drm, in intel_gt_resume()
235 engine->name, err); in intel_gt_resume()
240 intel_rc6_enable(&gt->rc6); in intel_gt_resume()
242 intel_uc_resume(&gt->uc); in intel_gt_resume()
247 intel_uncore_forcewake_put(gt->uncore, FORCEWAKE_ALL); in intel_gt_resume()
261 if (intel_gt_wait_for_idle(gt, I915_GEM_IDLE_TIMEOUT) == -ETIME) { in wait_for_suspend()
278 intel_uc_suspend(&gt->uc); in intel_gt_suspend_prepare()
300 GEM_BUG_ON(gt->awake); in intel_gt_suspend_late()
306 * However, not all suspend-states disable the device. S0 (s2idle) in intel_gt_suspend_late()
307 * is effectively runtime-suspend, the device is left powered on in intel_gt_suspend_late()
315 with_intel_runtime_pm(gt->uncore->rpm, wakeref) { in intel_gt_suspend_late()
316 intel_rps_disable(&gt->rps); in intel_gt_suspend_late()
317 intel_rc6_disable(&gt->rc6); in intel_gt_suspend_late()
318 intel_llc_disable(&gt->llc); in intel_gt_suspend_late()
328 intel_uc_runtime_suspend(&gt->uc); in intel_gt_runtime_suspend()
337 intel_ggtt_restore_fences(gt->ggtt); in intel_gt_runtime_resume()
339 return intel_uc_runtime_resume(&gt->uc); in intel_gt_runtime_resume()