mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 02:44:41 +01:00
The only thing in xe_gt_remove() that really needs to happen on the device remove callback is the xe_uc_remove(). That's because of the following call chain: xe_gt_remove() xe_uc_remove() xe_gsc_remove() xe_gsc_proxy_remove() Move xe_gsc_proxy_remove() to be handled as a xe_device_remove_action, so it's recorded when it should run during device removal. The rest can be handled normally by devm infra. Besides removing the deep call chain above, xe_device_probe() doesn't have to unwind the gt loop and it's also more in line with the xe_device_probe() style. Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Reviewed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20250213192909.996148-7-lucas.demarchi@intel.com Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
26 lines
613 B
C
26 lines
613 B
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2023 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _XE_GSC_H_
|
|
#define _XE_GSC_H_
|
|
|
|
#include <linux/types.h>
|
|
|
|
struct drm_printer;
|
|
struct xe_gsc;
|
|
struct xe_gt;
|
|
struct xe_hw_engine;
|
|
|
|
int xe_gsc_init(struct xe_gsc *gsc);
|
|
int xe_gsc_init_post_hwconfig(struct xe_gsc *gsc);
|
|
void xe_gsc_wait_for_worker_completion(struct xe_gsc *gsc);
|
|
void xe_gsc_load_start(struct xe_gsc *gsc);
|
|
void xe_gsc_hwe_irq_handler(struct xe_hw_engine *hwe, u16 intr_vec);
|
|
|
|
void xe_gsc_wa_14015076503(struct xe_gt *gt, bool prep);
|
|
|
|
void xe_gsc_print_info(struct xe_gsc *gsc, struct drm_printer *p);
|
|
|
|
#endif
|