mirror of
https://github.com/torvalds/linux.git
synced 2026-04-23 00:55:48 -04: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
667 B
C
26 lines
667 B
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2022 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _XE_UC_H_
|
|
#define _XE_UC_H_
|
|
|
|
struct xe_uc;
|
|
|
|
int xe_uc_init(struct xe_uc *uc);
|
|
int xe_uc_init_hwconfig(struct xe_uc *uc);
|
|
int xe_uc_init_post_hwconfig(struct xe_uc *uc);
|
|
int xe_uc_init_hw(struct xe_uc *uc);
|
|
int xe_uc_fini_hw(struct xe_uc *uc);
|
|
void xe_uc_gucrc_disable(struct xe_uc *uc);
|
|
int xe_uc_reset_prepare(struct xe_uc *uc);
|
|
void xe_uc_stop_prepare(struct xe_uc *uc);
|
|
void xe_uc_stop(struct xe_uc *uc);
|
|
int xe_uc_start(struct xe_uc *uc);
|
|
int xe_uc_suspend(struct xe_uc *uc);
|
|
int xe_uc_sanitize_reset(struct xe_uc *uc);
|
|
void xe_uc_declare_wedged(struct xe_uc *uc);
|
|
|
|
#endif
|