drm/xe/gsc: Initialize GSC proxy
authorDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Wed, 17 Jan 2024 18:26:19 +0000 (10:26 -0800)
committerDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Thu, 18 Jan 2024 19:04:34 +0000 (11:04 -0800)
commit997a55caa1c3b770979836bbfd82b311addf95c7
tree167f99c546cf91c6d712b6054c48a7701dcb3656
parent6af7ee08279cdb2e1d832f718f2f3c3dcbef5a14
drm/xe/gsc: Initialize GSC proxy

The GSC uC needs to communicate with the CSME to perform certain
operations. Since the GSC can't perform this communication directly on
platforms where it is integrated in GT, the graphics driver needs to
transfer the messages from GSC to CSME and back. The proxy flow must be
manually started after the GSC is loaded to signal to GSC that we're
ready to handle its messages and allow it to query its init data from
CSME.

Note that the component must be removed before the pci_remove call
completes, so we can't use a drmm helper for it and we need to instead
perform the cleanup as part of the removal flow.

v2: add function documentation, more targeted memory clear, clearer logs
and variable names (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-2-daniele.ceraolospurio@intel.com
14 files changed:
drivers/gpu/drm/xe/Makefile
drivers/gpu/drm/xe/abi/gsc_proxy_commands_abi.h [new file with mode: 0644]
drivers/gpu/drm/xe/xe_device.c
drivers/gpu/drm/xe/xe_gsc.c
drivers/gpu/drm/xe/xe_gsc.h
drivers/gpu/drm/xe/xe_gsc_proxy.c [new file with mode: 0644]
drivers/gpu/drm/xe/xe_gsc_proxy.h [new file with mode: 0644]
drivers/gpu/drm/xe/xe_gsc_submit.c
drivers/gpu/drm/xe/xe_gsc_submit.h
drivers/gpu/drm/xe/xe_gsc_types.h
drivers/gpu/drm/xe/xe_gt.c
drivers/gpu/drm/xe/xe_gt.h
drivers/gpu/drm/xe/xe_uc.c
drivers/gpu/drm/xe/xe_uc.h