mirror of
https://github.com/torvalds/linux.git
synced 2026-04-19 07:13:56 -04:00
The GSC notifies us of a proxy request via the HECI2 interrupt. The interrupt must be enabled both in the HECI layer and in our usual gt irq programming; for the latter, the interrupt is enabled via the same enable register as the GSC CS, but it does have its own mask register. When the interrupt is received, we also need to de-assert it in both layers. The handling of the proxy request is deferred to the same worker that we use for GSC load. New flags have been added to distinguish between the init case and the proxy interrupt. v2: rename irq define, fix include ordering (Alan) Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Cc: Alan Previn <alan.previn.teres.alexis@intel.com> Cc: Suraj Kandpal <suraj.kandpal@intel.com> Reviewed-by: Alan Previn <alan.previn.teres.alexis@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240117182621.2653049-3-daniele.ceraolospurio@intel.com
21 lines
431 B
C
21 lines
431 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);
|
|
void xe_gsc_proxy_remove(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
|