mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 23:03:57 -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>
21 lines
434 B
C
21 lines
434 B
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2023 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _XE_GSC_PROXY_H_
|
|
#define _XE_GSC_PROXY_H_
|
|
|
|
#include <linux/types.h>
|
|
|
|
struct xe_gsc;
|
|
|
|
int xe_gsc_proxy_init(struct xe_gsc *gsc);
|
|
bool xe_gsc_proxy_init_done(struct xe_gsc *gsc);
|
|
int xe_gsc_proxy_start(struct xe_gsc *gsc);
|
|
|
|
int xe_gsc_proxy_request_handler(struct xe_gsc *gsc);
|
|
void xe_gsc_proxy_irq_handler(struct xe_gsc *gsc, u32 iir);
|
|
|
|
#endif
|