Symbol: g2h_fence
drivers/gpu/drm/xe/xe_guc_ct.c
1021
struct g2h_fence *g2h_fence)
drivers/gpu/drm/xe/xe_guc_ct.c
1028
xe_gt_assert(gt, !g2h_len || !g2h_fence);
drivers/gpu/drm/xe/xe_guc_ct.c
1029
xe_gt_assert(gt, !num_g2h || !g2h_fence);
drivers/gpu/drm/xe/xe_guc_ct.c
1051
if (g2h_fence) {
drivers/gpu/drm/xe/xe_guc_ct.c
1055
if (g2h_fence_needs_alloc(g2h_fence)) {
drivers/gpu/drm/xe/xe_guc_ct.c
1056
g2h_fence->seqno = next_ct_seqno(ct, true);
drivers/gpu/drm/xe/xe_guc_ct.c
1058
g2h_fence->seqno, g2h_fence,
drivers/gpu/drm/xe/xe_guc_ct.c
1064
seqno = g2h_fence->seqno;
drivers/gpu/drm/xe/xe_guc_ct.c
1076
ret = h2g_write(ct, action, len, seqno, !!g2h_fence);
drivers/gpu/drm/xe/xe_guc_ct.c
1104
u32 g2h_len, struct g2h_fence *g2h_fence,
drivers/gpu/drm/xe/xe_guc_ct.c
1137
g2h_fence ?
drivers/gpu/drm/xe/xe_guc_ct.c
1161
struct g2h_fence *g2h_fence)
drivers/gpu/drm/xe/xe_guc_ct.c
1167
xe_gt_assert(gt, !g2h_len || !g2h_fence);
drivers/gpu/drm/xe/xe_guc_ct.c
1173
g2h_fence);
drivers/gpu/drm/xe/xe_guc_ct.c
1176
if (!guc_ct_send_wait_for_retry(ct, len, g2h_len, g2h_fence,
drivers/gpu/drm/xe/xe_guc_ct.c
1192
u32 g2h_len, u32 num_g2h, struct g2h_fence *g2h_fence)
drivers/gpu/drm/xe/xe_guc_ct.c
1196
xe_gt_assert(ct_to_gt(ct), !g2h_len || !g2h_fence);
drivers/gpu/drm/xe/xe_guc_ct.c
1199
ret = guc_ct_send_locked(ct, action, len, g2h_len, num_g2h, g2h_fence);
drivers/gpu/drm/xe/xe_guc_ct.c
1268
struct g2h_fence g2h_fence;
drivers/gpu/drm/xe/xe_guc_ct.c
1281
g2h_fence_init(&g2h_fence, response_buffer);
drivers/gpu/drm/xe/xe_guc_ct.c
1283
ret = guc_ct_send(ct, action, len, 0, 0, &g2h_fence);
drivers/gpu/drm/xe/xe_guc_ct.c
1286
ret = xa_err(xa_store(&ct->fence_lookup, g2h_fence.seqno,
drivers/gpu/drm/xe/xe_guc_ct.c
1287
&g2h_fence, GFP_KERNEL));
drivers/gpu/drm/xe/xe_guc_ct.c
1299
if (!g2h_fence_needs_alloc(&g2h_fence))
drivers/gpu/drm/xe/xe_guc_ct.c
1300
xa_erase(&ct->fence_lookup, g2h_fence.seqno);
drivers/gpu/drm/xe/xe_guc_ct.c
1308
ret = wait_event_timeout(ct->g2h_fence_wq, READ_ONCE(g2h_fence.done), HZ);
drivers/gpu/drm/xe/xe_guc_ct.c
1311
if (READ_ONCE(g2h_fence.done)) {
drivers/gpu/drm/xe/xe_guc_ct.c
1313
g2h_fence.seqno, action[0]);
drivers/gpu/drm/xe/xe_guc_ct.c
1327
g2h_fence.seqno, action[0], str_yes_no(g2h_fence.done));
drivers/gpu/drm/xe/xe_guc_ct.c
1328
xa_erase(&ct->fence_lookup, g2h_fence.seqno);
drivers/gpu/drm/xe/xe_guc_ct.c
1333
if (g2h_fence.retry) {
drivers/gpu/drm/xe/xe_guc_ct.c
1335
action[0], g2h_fence.reason);
drivers/gpu/drm/xe/xe_guc_ct.c
1345
if (g2h_fence.fail) {
drivers/gpu/drm/xe/xe_guc_ct.c
1346
if (g2h_fence.cancel) {
drivers/gpu/drm/xe/xe_guc_ct.c
1352
action[0], g2h_fence.error, g2h_fence.hint);
drivers/gpu/drm/xe/xe_guc_ct.c
1357
ret = response_buffer ? g2h_fence.response_len : g2h_fence.response_data;
drivers/gpu/drm/xe/xe_guc_ct.c
1452
struct g2h_fence *g2h_fence;
drivers/gpu/drm/xe/xe_guc_ct.c
1485
g2h_fence = xa_erase(&ct->fence_lookup, fence);
drivers/gpu/drm/xe/xe_guc_ct.c
1486
if (unlikely(!g2h_fence)) {
drivers/gpu/drm/xe/xe_guc_ct.c
1494
xe_gt_assert(gt, fence == g2h_fence->seqno);
drivers/gpu/drm/xe/xe_guc_ct.c
1497
g2h_fence->fail = true;
drivers/gpu/drm/xe/xe_guc_ct.c
1498
g2h_fence->error = FIELD_GET(GUC_HXG_FAILURE_MSG_0_ERROR, hxg[0]);
drivers/gpu/drm/xe/xe_guc_ct.c
1499
g2h_fence->hint = FIELD_GET(GUC_HXG_FAILURE_MSG_0_HINT, hxg[0]);
drivers/gpu/drm/xe/xe_guc_ct.c
1501
g2h_fence->retry = true;
drivers/gpu/drm/xe/xe_guc_ct.c
1502
g2h_fence->reason = FIELD_GET(GUC_HXG_RETRY_MSG_0_REASON, hxg[0]);
drivers/gpu/drm/xe/xe_guc_ct.c
1503
} else if (g2h_fence->response_buffer) {
drivers/gpu/drm/xe/xe_guc_ct.c
1504
g2h_fence->response_len = hxg_len;
drivers/gpu/drm/xe/xe_guc_ct.c
1505
memcpy(g2h_fence->response_buffer, hxg, hxg_len * sizeof(u32));
drivers/gpu/drm/xe/xe_guc_ct.c
1507
g2h_fence->response_data = FIELD_GET(GUC_HXG_RESPONSE_MSG_0_DATA0, hxg[0]);
drivers/gpu/drm/xe/xe_guc_ct.c
1513
WRITE_ONCE(g2h_fence->done, true);
drivers/gpu/drm/xe/xe_guc_ct.c
198
static void g2h_fence_init(struct g2h_fence *g2h_fence, u32 *response_buffer)
drivers/gpu/drm/xe/xe_guc_ct.c
200
memset(g2h_fence, 0, sizeof(*g2h_fence));
drivers/gpu/drm/xe/xe_guc_ct.c
201
g2h_fence->response_buffer = response_buffer;
drivers/gpu/drm/xe/xe_guc_ct.c
202
g2h_fence->seqno = ~0x0;
drivers/gpu/drm/xe/xe_guc_ct.c
205
static void g2h_fence_cancel(struct g2h_fence *g2h_fence)
drivers/gpu/drm/xe/xe_guc_ct.c
207
g2h_fence->cancel = true;
drivers/gpu/drm/xe/xe_guc_ct.c
208
g2h_fence->fail = true;
drivers/gpu/drm/xe/xe_guc_ct.c
211
WRITE_ONCE(g2h_fence->done, true);
drivers/gpu/drm/xe/xe_guc_ct.c
214
static bool g2h_fence_needs_alloc(struct g2h_fence *g2h_fence)
drivers/gpu/drm/xe/xe_guc_ct.c
216
return g2h_fence->seqno == ~0x0;
drivers/gpu/drm/xe/xe_guc_ct.c
521
struct g2h_fence *g2h_fence;
drivers/gpu/drm/xe/xe_guc_ct.c
547
xa_for_each(&ct->fence_lookup, idx, g2h_fence)
drivers/gpu/drm/xe/xe_guc_ct.c
548
g2h_fence_cancel(g2h_fence);