13ea58029SMichal Wajdeczko /* SPDX-License-Identifier: MIT */
20f261b24SDaniele Ceraolo Spurio /*
33ea58029SMichal Wajdeczko  * Copyright © 2014-2019 Intel Corporation
40f261b24SDaniele Ceraolo Spurio  */
50f261b24SDaniele Ceraolo Spurio 
60f261b24SDaniele Ceraolo Spurio #ifndef _INTEL_GUC_ADS_H_
70f261b24SDaniele Ceraolo Spurio #define _INTEL_GUC_ADS_H_
80f261b24SDaniele Ceraolo Spurio 
977cdd054SUmesh Nerlige Ramappa #include <linux/types.h>
10*4801b995SLucas De Marchi #include <linux/iosys-map.h>
1177cdd054SUmesh Nerlige Ramappa 
120f261b24SDaniele Ceraolo Spurio struct intel_guc;
13731c2ad5SJohn Harrison struct drm_printer;
1477cdd054SUmesh Nerlige Ramappa struct intel_engine_cs;
150f261b24SDaniele Ceraolo Spurio 
160f261b24SDaniele Ceraolo Spurio int intel_guc_ads_create(struct intel_guc *guc);
170f261b24SDaniele Ceraolo Spurio void intel_guc_ads_destroy(struct intel_guc *guc);
18481d458cSJohn Harrison void intel_guc_ads_init_late(struct intel_guc *guc);
190f261b24SDaniele Ceraolo Spurio void intel_guc_ads_reset(struct intel_guc *guc);
20731c2ad5SJohn Harrison void intel_guc_ads_print_policy_info(struct intel_guc *guc,
21731c2ad5SJohn Harrison 				     struct drm_printer *p);
22*4801b995SLucas De Marchi struct iosys_map intel_guc_engine_usage_record_map(struct intel_engine_cs *engine);
2377cdd054SUmesh Nerlige Ramappa u32 intel_guc_engine_usage_offset(struct intel_guc *guc);
240f261b24SDaniele Ceraolo Spurio 
250f261b24SDaniele Ceraolo Spurio #endif
26