drm/xe/gsc: add support for GSC proxy interrupt
authorDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Wed, 17 Jan 2024 18:26:20 +0000 (10:26 -0800)
committerDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Thu, 18 Jan 2024 19:04:37 +0000 (11:04 -0800)
commiteb08104f90fc474054211244d668d3fe1d84bccb
tree7ce6166cc027558b88e065fa51b10a276aca246b
parent997a55caa1c3b770979836bbfd82b311addf95c7
drm/xe/gsc: add support for GSC proxy interrupt

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
drivers/gpu/drm/xe/regs/xe_gt_regs.h
drivers/gpu/drm/xe/xe_gsc.c
drivers/gpu/drm/xe/xe_gsc_proxy.c
drivers/gpu/drm/xe/xe_gsc_proxy.h
drivers/gpu/drm/xe/xe_gsc_types.h
drivers/gpu/drm/xe/xe_irq.c