Lines Matching +full:active +full:-

1 // SPDX-License-Identifier: MIT
17 engine->defaults.heartbeat_interval_ms); in reset_heartbeat()
25 fence = i915_active_fence_get(&tl->last_request); in timeline_sync()
39 return timeline_sync(engine->kernel_context->timeline); in engine_sync_barrier()
43 struct i915_active active; member
47 static int pulse_active(struct i915_active *active) in pulse_active() argument
49 kref_get(&container_of(active, struct pulse, active)->kref); in pulse_active()
57 i915_active_fini(&p->active); in pulse_free()
63 kref_put(&p->kref, pulse_free); in pulse_put()
66 static void pulse_retire(struct i915_active *active) in pulse_retire() argument
68 pulse_put(container_of(active, struct pulse, active)); in pulse_retire()
79 kref_init(&p->kref); in pulse_create()
80 i915_active_init(&p->active, pulse_active, pulse_retire, 0); in pulse_create()
87 wait_var_event_timeout(&p->active, i915_active_is_idle(&p->active), HZ); in pulse_unlock_wait()
100 return -ENOMEM; in __live_idle_pulse()
102 err = i915_active_acquire(&p->active); in __live_idle_pulse()
106 err = i915_active_acquire_preallocate_barrier(&p->active, engine); in __live_idle_pulse()
108 i915_active_release(&p->active); in __live_idle_pulse()
112 i915_active_acquire_barrier(&p->active); in __live_idle_pulse()
113 i915_active_release(&p->active); in __live_idle_pulse()
115 GEM_BUG_ON(i915_active_is_idle(&p->active)); in __live_idle_pulse()
116 GEM_BUG_ON(llist_empty(&engine->barrier_tasks)); in __live_idle_pulse()
122 GEM_BUG_ON(!llist_empty(&engine->barrier_tasks)); in __live_idle_pulse()
125 struct drm_printer m = drm_err_printer(&engine->i915->drm, "pulse"); in __live_idle_pulse()
127 drm_printf(&m, "%s: no heartbeat pulse?\n", engine->name); in __live_idle_pulse()
128 intel_engine_dump(engine, &m, "%s", engine->name); in __live_idle_pulse()
130 err = -ETIME; in __live_idle_pulse()
134 GEM_BUG_ON(READ_ONCE(engine->serial) != engine->wakeref_serial); in __live_idle_pulse()
138 if (!i915_active_is_idle(&p->active)) { in __live_idle_pulse()
139 struct drm_printer m = drm_err_printer(&engine->i915->drm, "pulse"); in __live_idle_pulse()
142 engine->name); in __live_idle_pulse()
143 i915_active_print(&p->active, &m); in __live_idle_pulse()
145 err = -EINVAL; in __live_idle_pulse()
187 if (err && err != -ENODEV) in live_idle_pulse()
202 engine->serial++; in __live_heartbeat_off()
203 flush_delayed_work(&engine->heartbeat.work); in __live_heartbeat_off()
204 if (!delayed_work_pending(&engine->heartbeat.work)) { in __live_heartbeat_off()
206 engine->name); in __live_heartbeat_off()
207 err = -EINVAL; in __live_heartbeat_off()
215 engine->serial++; in __live_heartbeat_off()
216 flush_delayed_work(&engine->heartbeat.work); in __live_heartbeat_off()
217 if (delayed_work_pending(&engine->heartbeat.work)) { in __live_heartbeat_off()
219 engine->name); in __live_heartbeat_off()
220 err = -EINVAL; in __live_heartbeat_off()
224 if (READ_ONCE(engine->heartbeat.systole)) { in __live_heartbeat_off()
226 engine->name); in __live_heartbeat_off()
227 err = -EINVAL; in __live_heartbeat_off()
274 saved_hangcheck = i915->params.enable_hangcheck; in intel_heartbeat_live_selftests()
275 i915->params.enable_hangcheck = INT_MAX; in intel_heartbeat_live_selftests()
279 i915->params.enable_hangcheck = saved_hangcheck; in intel_heartbeat_live_selftests()
285 engine->props.heartbeat_interval_ms = 0; in st_engine_heartbeat_disable()
295 engine->props.heartbeat_interval_ms = in st_engine_heartbeat_enable()
296 engine->defaults.heartbeat_interval_ms; in st_engine_heartbeat_enable()
301 engine->props.heartbeat_interval_ms = 0; in st_engine_heartbeat_disable_no_pm()
305 * makes the engines appear not-idle. Note that if/when unpark in st_engine_heartbeat_disable_no_pm()
317 engine->props.heartbeat_interval_ms = in st_engine_heartbeat_enable_no_pm()
318 engine->defaults.heartbeat_interval_ms; in st_engine_heartbeat_enable_no_pm()