mirror of
https://github.com/torvalds/linux.git
synced 2026-04-20 07:43:57 -04:00
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
32 lines
868 B
C
32 lines
868 B
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2023 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _XE_GSC_SUBMIT_H_
|
|
#define _XE_GSC_SUBMIT_H_
|
|
|
|
#include <linux/types.h>
|
|
|
|
struct iosys_map;
|
|
struct xe_device;
|
|
struct xe_gsc;
|
|
|
|
u32 xe_gsc_emit_header(struct xe_device *xe, struct iosys_map *map, u32 offset,
|
|
u8 heci_client_id, u64 host_session_id, u32 payload_size);
|
|
void xe_gsc_poison_header(struct xe_device *xe, struct iosys_map *map, u32 offset);
|
|
|
|
bool xe_gsc_check_and_update_pending(struct xe_device *xe,
|
|
struct iosys_map *in, u32 offset_in,
|
|
struct iosys_map *out, u32 offset_out);
|
|
|
|
int xe_gsc_read_out_header(struct xe_device *xe,
|
|
struct iosys_map *map, u32 offset,
|
|
u32 min_payload_size,
|
|
u32 *payload_offset);
|
|
|
|
int xe_gsc_pkt_submit_kernel(struct xe_gsc *gsc, u64 addr_in, u32 size_in,
|
|
u64 addr_out, u32 size_out);
|
|
|
|
#endif
|