124f90d66SChris Wilson /* SPDX-License-Identifier: MIT */
2b5e8e954SChris Wilson /*
3b5e8e954SChris Wilson  * Copyright © 2019 Intel Corporation
4b5e8e954SChris Wilson  */
5b5e8e954SChris Wilson 
6b5e8e954SChris Wilson #ifndef INTEL_ENGINE_HEARTBEAT_H
7b5e8e954SChris Wilson #define INTEL_ENGINE_HEARTBEAT_H
8b5e8e954SChris Wilson 
9b5e8e954SChris Wilson struct intel_engine_cs;
10*c41ee287SMatthew Brost struct intel_gt;
11b5e8e954SChris Wilson 
12058179e7SChris Wilson void intel_engine_init_heartbeat(struct intel_engine_cs *engine);
13058179e7SChris Wilson 
14058179e7SChris Wilson int intel_engine_set_heartbeat(struct intel_engine_cs *engine,
15058179e7SChris Wilson 			       unsigned long delay);
16058179e7SChris Wilson 
17058179e7SChris Wilson void intel_engine_park_heartbeat(struct intel_engine_cs *engine);
18058179e7SChris Wilson void intel_engine_unpark_heartbeat(struct intel_engine_cs *engine);
19058179e7SChris Wilson 
20*c41ee287SMatthew Brost void intel_gt_park_heartbeats(struct intel_gt *gt);
21*c41ee287SMatthew Brost void intel_gt_unpark_heartbeats(struct intel_gt *gt);
22*c41ee287SMatthew Brost 
23b5e8e954SChris Wilson int intel_engine_pulse(struct intel_engine_cs *engine);
24b5e8e954SChris Wilson int intel_engine_flush_barriers(struct intel_engine_cs *engine);
25b5e8e954SChris Wilson 
26b5e8e954SChris Wilson #endif /* INTEL_ENGINE_HEARTBEAT_H */
27