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()
127 pr_err("%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()
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()
200 return *a - *b; in cmp_u32()
227 GEM_BUG_ON(engine->heartbeat.systole); in __live_heartbeat_fast()
228 engine->serial++; /* pretend we are not idle! */ in __live_heartbeat_fast()
231 flush_delayed_work(&engine->heartbeat.work); in __live_heartbeat_fast()
232 if (!delayed_work_pending(&engine->heartbeat.work)) { in __live_heartbeat_fast()
234 engine->name, i); in __live_heartbeat_fast()
235 err = -EINVAL; in __live_heartbeat_fast()
240 rq = READ_ONCE(engine->heartbeat.systole); in __live_heartbeat_fast()
247 while (rq == READ_ONCE(engine->heartbeat.systole)) in __live_heartbeat_fast()
258 engine->name, in __live_heartbeat_fast()
261 times[ARRAY_SIZE(times) - 1]); in __live_heartbeat_fast()
272 engine->name, in __live_heartbeat_fast()
275 err = -EINVAL; in __live_heartbeat_fast()
311 engine->serial++; in __live_heartbeat_off()
312 flush_delayed_work(&engine->heartbeat.work); in __live_heartbeat_off()
313 if (!delayed_work_pending(&engine->heartbeat.work)) { in __live_heartbeat_off()
315 engine->name); in __live_heartbeat_off()
316 err = -EINVAL; in __live_heartbeat_off()
324 engine->serial++; in __live_heartbeat_off()
325 flush_delayed_work(&engine->heartbeat.work); in __live_heartbeat_off()
326 if (delayed_work_pending(&engine->heartbeat.work)) { in __live_heartbeat_off()
328 engine->name); in __live_heartbeat_off()
329 err = -EINVAL; in __live_heartbeat_off()
333 if (READ_ONCE(engine->heartbeat.systole)) { in __live_heartbeat_off()
335 engine->name); in __live_heartbeat_off()
336 err = -EINVAL; in __live_heartbeat_off()
384 saved_hangcheck = i915->params.enable_hangcheck; in intel_heartbeat_live_selftests()
385 i915->params.enable_hangcheck = INT_MAX; in intel_heartbeat_live_selftests()
389 i915->params.enable_hangcheck = saved_hangcheck; in intel_heartbeat_live_selftests()
395 engine->props.heartbeat_interval_ms = 0; in st_engine_heartbeat_disable()
405 engine->props.heartbeat_interval_ms = in st_engine_heartbeat_enable()
406 engine->defaults.heartbeat_interval_ms; in st_engine_heartbeat_enable()
411 engine->props.heartbeat_interval_ms = 0; in st_engine_heartbeat_disable_no_pm()
415 * makes the engines appear not-idle. Note that if/when unpark in st_engine_heartbeat_disable_no_pm()
427 engine->props.heartbeat_interval_ms = in st_engine_heartbeat_enable_no_pm()
428 engine->defaults.heartbeat_interval_ms; in st_engine_heartbeat_enable_no_pm()