xref: /linux/drivers/gpu/drm/xe/xe_gsc.h (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
10d1caff4SDaniele Ceraolo Spurio /* SPDX-License-Identifier: MIT */
20d1caff4SDaniele Ceraolo Spurio /*
30d1caff4SDaniele Ceraolo Spurio  * Copyright © 2023 Intel Corporation
40d1caff4SDaniele Ceraolo Spurio  */
50d1caff4SDaniele Ceraolo Spurio 
60d1caff4SDaniele Ceraolo Spurio #ifndef _XE_GSC_H_
70d1caff4SDaniele Ceraolo Spurio #define _XE_GSC_H_
80d1caff4SDaniele Ceraolo Spurio 
92291c091SMichal Wajdeczko #include <linux/types.h>
100d1caff4SDaniele Ceraolo Spurio 
11*5ee2d63cSDaniele Ceraolo Spurio struct drm_printer;
122291c091SMichal Wajdeczko struct xe_gsc;
13aae84bf1SDaniele Ceraolo Spurio struct xe_gt;
14cc244ce5SDaniele Ceraolo Spurio struct xe_hw_engine;
15aae84bf1SDaniele Ceraolo Spurio 
160d1caff4SDaniele Ceraolo Spurio int xe_gsc_init(struct xe_gsc *gsc);
17dd0e89e5SDaniele Ceraolo Spurio int xe_gsc_init_post_hwconfig(struct xe_gsc *gsc);
18dd0e89e5SDaniele Ceraolo Spurio void xe_gsc_wait_for_worker_completion(struct xe_gsc *gsc);
19dd0e89e5SDaniele Ceraolo Spurio void xe_gsc_load_start(struct xe_gsc *gsc);
20997a55caSDaniele Ceraolo Spurio void xe_gsc_remove(struct xe_gsc *gsc);
21cc244ce5SDaniele Ceraolo Spurio void xe_gsc_hwe_irq_handler(struct xe_hw_engine *hwe, u16 intr_vec);
220d1caff4SDaniele Ceraolo Spurio 
23aae84bf1SDaniele Ceraolo Spurio void xe_gsc_wa_14015076503(struct xe_gt *gt, bool prep);
24aae84bf1SDaniele Ceraolo Spurio 
25*5ee2d63cSDaniele Ceraolo Spurio void xe_gsc_print_info(struct xe_gsc *gsc, struct drm_printer *p);
26*5ee2d63cSDaniele Ceraolo Spurio 
270d1caff4SDaniele Ceraolo Spurio #endif
28