Lines Matching +full:0 +full:xe

27 static bool has_samedia(const struct xe_device *xe)  in has_samedia()  argument
29 return xe->info.media_verx100 >= 1300; in has_samedia()
32 static bool rule_matches(const struct xe_device *xe, in rule_matches() argument
39 unsigned int i, rcount = 0; in rule_matches()
42 for (r = rules, i = 0; i < n_rules; r = &rules[++i]) { in rule_matches()
52 match = xe->info.platform == r->platform; in rule_matches()
55 match = xe->info.platform == r->platform && in rule_matches()
56 xe->info.subplatform == r->subplatform; in rule_matches()
59 match = xe->info.graphics_verx100 == r->ver_start && in rule_matches()
60 (!has_samedia(xe) || !xe_gt_is_media_type(gt)); in rule_matches()
63 match = xe->info.graphics_verx100 >= r->ver_start && in rule_matches()
64 xe->info.graphics_verx100 <= r->ver_end && in rule_matches()
65 (!has_samedia(xe) || !xe_gt_is_media_type(gt)); in rule_matches()
68 match = xe->info.graphics_verx100 == r->ver_start; in rule_matches()
71 match = xe->info.step.graphics >= r->step_start && in rule_matches()
72 xe->info.step.graphics < r->step_end && in rule_matches()
73 (!has_samedia(xe) || !xe_gt_is_media_type(gt)); in rule_matches()
76 match = xe->info.media_verx100 == r->ver_start && in rule_matches()
77 (!has_samedia(xe) || xe_gt_is_media_type(gt)); in rule_matches()
80 match = xe->info.media_verx100 >= r->ver_start && in rule_matches()
81 xe->info.media_verx100 <= r->ver_end && in rule_matches()
82 (!has_samedia(xe) || xe_gt_is_media_type(gt)); in rule_matches()
85 match = xe->info.step.media >= r->step_start && in rule_matches()
86 xe->info.step.media < r->step_end && in rule_matches()
87 (!has_samedia(xe) || xe_gt_is_media_type(gt)); in rule_matches()
90 match = xe->info.media_verx100 == r->ver_start; in rule_matches()
93 match = !xe->info.is_dgfx; in rule_matches()
96 match = xe->info.is_dgfx; in rule_matches()
99 if (drm_WARN_ON(&xe->drm, !hwe)) in rule_matches()
105 if (drm_WARN_ON(&xe->drm, !hwe)) in rule_matches()
114 drm_warn(&xe->drm, "Invalid RTP match %u\n", in rule_matches()
130 rcount = 0; in rule_matches()
137 if (drm_WARN_ON(&xe->drm, !rcount)) in rule_matches()
160 struct xe_device *xe, struct xe_gt *gt, in rtp_process_one_sr() argument
167 if (!rule_matches(xe, gt, hwe, entry->rules, entry->n_rules)) in rtp_process_one_sr()
170 for (i = 0, action = &entry->actions[0]; i < entry->n_actions; action++, i++) { in rtp_process_one_sr()
175 mmio_base = 0; in rtp_process_one_sr()
186 struct xe_device **xe) in rtp_get_context() argument
192 *xe = gt_to_xe(*gt); in rtp_get_context()
197 *xe = gt_to_xe(*gt); in rtp_get_context()
222 static void rtp_mark_active(struct xe_device *xe, in rtp_mark_active() argument
229 if (drm_WARN_ON(&xe->drm, idx >= ctx->n_entries)) in rtp_mark_active()
255 struct xe_device *xe = NULL; in xe_rtp_process_to_sr() local
257 rtp_get_context(ctx, &hwe, &gt, &xe); in xe_rtp_process_to_sr()
259 if (IS_SRIOV_VF(xe)) in xe_rtp_process_to_sr()
270 match |= rtp_process_one_sr(entry, xe, gt, in xe_rtp_process_to_sr()
273 match = rtp_process_one_sr(entry, xe, gt, hwe, sr); in xe_rtp_process_to_sr()
277 rtp_mark_active(xe, ctx, entry - entries); in xe_rtp_process_to_sr()
299 struct xe_device *xe; in xe_rtp_process() local
301 rtp_get_context(ctx, &hwe, &gt, &xe); in xe_rtp_process()
304 if (!rule_matches(xe, gt, hwe, entry->rules, entry->n_rules)) in xe_rtp_process()
307 rtp_mark_active(xe, ctx, entry - entries); in xe_rtp_process()
315 return hwe->instance % 2 == 0; in xe_rtp_match_even_instance()
338 dss = xe_dss_mask_group_ffs(gt->fuse_topo.g_dss_mask, 0, 0); in xe_rtp_match_first_gslice_fused_off()