Lines Matching +full:cs +full:- +full:out
1 // SPDX-License-Identifier: MIT
45 * xe_gsc_create_host_session_id - Creates a random 64 bit host_session id with
46 * bits 56-63 masked.
48 * Returns: random host_session_id which can be used to send messages to gsc cs
60 * xe_gsc_emit_header - write the MTL GSC header in memory
90 * xe_gsc_poison_header - poison the MTL GSC header in memory
101 * xe_gsc_check_and_update_pending - check the pending bit and update the input
106 * @out: the iosys map containing the output buffer
113 struct iosys_map *out, u32 offset_out) in xe_gsc_check_and_update_pending() argument
115 if (mtl_gsc_header_rd(xe, out, offset_out, flags) & GSC_OUTFLAG_MSG_PENDING) { in xe_gsc_check_and_update_pending()
116 u64 handle = mtl_gsc_header_rd(xe, out, offset_out, gsc_message_handle); in xe_gsc_check_and_update_pending()
127 * xe_gsc_read_out_header - reads and validates the output header and returns
135 * Returns: -errno value on failure, 0 otherwise
145 u32 payload_size = size - GSC_HDR_SIZE; in xe_gsc_read_out_header()
148 return -EPROTO; in xe_gsc_read_out_header()
151 drm_err(&xe->drm, "GSC header readout indicates error: %d\n", in xe_gsc_read_out_header()
153 return -EINVAL; in xe_gsc_read_out_header()
157 return -ENODATA; in xe_gsc_read_out_header()
166 * xe_gsc_pkt_submit_kernel - submit a kernel heci pkt to the GSC
183 return -ENODATA; in xe_gsc_pkt_submit_kernel()
186 return -ENOMEM; in xe_gsc_pkt_submit_kernel()
192 bb->cs[bb->len++] = GSC_HECI_CMD_PKT; in xe_gsc_pkt_submit_kernel()
193 bb->cs[bb->len++] = lower_32_bits(addr_in); in xe_gsc_pkt_submit_kernel()
194 bb->cs[bb->len++] = upper_32_bits(addr_in); in xe_gsc_pkt_submit_kernel()
195 bb->cs[bb->len++] = size_in; in xe_gsc_pkt_submit_kernel()
196 bb->cs[bb->len++] = lower_32_bits(addr_out); in xe_gsc_pkt_submit_kernel()
197 bb->cs[bb->len++] = upper_32_bits(addr_out); in xe_gsc_pkt_submit_kernel()
198 bb->cs[bb->len++] = size_out; in xe_gsc_pkt_submit_kernel()
199 bb->cs[bb->len++] = 0; in xe_gsc_pkt_submit_kernel()
201 job = xe_bb_create_job(gsc->q, bb); in xe_gsc_pkt_submit_kernel()
208 fence = dma_fence_get(&job->drm.s_fence->finished); in xe_gsc_pkt_submit_kernel()
217 return -ETIME; in xe_gsc_pkt_submit_kernel()