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