Lines Matching +full:class +full:- +full:d

2  * SPDX-License-Identifier: MIT
17 intel_engine_lookup_user(struct drm_i915_private *i915, u8 class, u8 instance) in intel_engine_lookup_user() argument
19 struct rb_node *p = i915->uabi_engines.rb_node; in intel_engine_lookup_user()
25 if (class < it->uabi_class) in intel_engine_lookup_user()
26 p = p->rb_left; in intel_engine_lookup_user()
27 else if (class > it->uabi_class || in intel_engine_lookup_user()
28 instance > it->uabi_instance) in intel_engine_lookup_user()
29 p = p->rb_right; in intel_engine_lookup_user()
30 else if (instance < it->uabi_instance) in intel_engine_lookup_user()
31 p = p->rb_left; in intel_engine_lookup_user()
41 llist_add((struct llist_node *)&engine->uabi_node, in intel_engine_add_user()
42 (struct llist_head *)&engine->i915->uabi_engines); in intel_engine_add_user()
59 if (uabi_classes[a->class] < uabi_classes[b->class]) in engine_cmp()
60 return -1; in engine_cmp()
61 if (uabi_classes[a->class] > uabi_classes[b->class]) in engine_cmp()
64 if (a->instance < b->instance) in engine_cmp()
65 return -1; in engine_cmp()
66 if (a->instance > b->instance) in engine_cmp()
74 return llist_del_all((struct llist_head *)&i915->uabi_engines); in get_engines()
86 list_add((struct list_head *)&engine->uabi_node, engines); in sort_engines()
111 if (engine->schedule) in set_scheduler_caps()
119 if (engine->flags & BIT(map[i].engine)) in set_scheduler_caps()
126 i915->caps.scheduler = enabled & ~disabled; in set_scheduler_caps()
127 if (!(i915->caps.scheduler & I915_SCHEDULER_CAP_ENABLED)) in set_scheduler_caps()
128 i915->caps.scheduler = 0; in set_scheduler_caps()
131 const char *intel_engine_class_repr(u8 class) in intel_engine_class_repr() argument
140 if (class >= ARRAY_SIZE(uabi_names) || !uabi_names[class]) in intel_engine_class_repr()
143 return uabi_names[class]; in intel_engine_class_repr()
148 u8 class; member
163 if (GEM_DEBUG_WARN_ON(ring->class >= ARRAY_SIZE(map))) in legacy_ring_idx()
166 if (GEM_DEBUG_WARN_ON(ring->instance >= map[ring->class].max)) in legacy_ring_idx()
169 return map[ring->class].base + ring->instance; in legacy_ring_idx()
175 if (engine->gt != ring->gt || engine->class != ring->class) { in add_legacy_ring()
176 ring->gt = engine->gt; in add_legacy_ring()
177 ring->class = engine->class; in add_legacy_ring()
178 ring->instance = 0; in add_legacy_ring()
181 engine->legacy_idx = legacy_ring_idx(ring); in add_legacy_ring()
182 if (engine->legacy_idx != INVALID_ENGINE) in add_legacy_ring()
183 ring->instance++; in add_legacy_ring()
197 p = &i915->uabi_engines.rb_node; in intel_engines_driver_register()
202 char old[sizeof(engine->name)]; in intel_engines_driver_register()
204 if (intel_gt_has_unrecoverable_error(engine->gt)) in intel_engines_driver_register()
207 GEM_BUG_ON(engine->class >= ARRAY_SIZE(uabi_classes)); in intel_engines_driver_register()
208 engine->uabi_class = uabi_classes[engine->class]; in intel_engines_driver_register()
210 GEM_BUG_ON(engine->uabi_class >= ARRAY_SIZE(uabi_instances)); in intel_engines_driver_register()
211 engine->uabi_instance = uabi_instances[engine->uabi_class]++; in intel_engines_driver_register()
214 memcpy(old, engine->name, sizeof(engine->name)); in intel_engines_driver_register()
215 scnprintf(engine->name, sizeof(engine->name), "%s%u", in intel_engines_driver_register()
216 intel_engine_class_repr(engine->class), in intel_engines_driver_register()
217 engine->uabi_instance); in intel_engines_driver_register()
218 DRM_DEBUG_DRIVER("renamed %s to %s\n", old, engine->name); in intel_engines_driver_register()
220 rb_link_node(&engine->uabi_node, prev, p); in intel_engines_driver_register()
221 rb_insert_color(&engine->uabi_node, &i915->uabi_engines); in intel_engines_driver_register()
224 engine->uabi_class, in intel_engines_driver_register()
225 engine->uabi_instance) != engine); in intel_engines_driver_register()
230 prev = &engine->uabi_node; in intel_engines_driver_register()
231 p = &prev->rb_right; in intel_engines_driver_register()
238 int class, inst; in intel_engines_driver_register() local
241 for (class = 0; class < ARRAY_SIZE(uabi_instances); class++) { in intel_engines_driver_register()
242 for (inst = 0; inst < uabi_instances[class]; inst++) { in intel_engines_driver_register()
244 class, inst); in intel_engines_driver_register()
246 pr_err("UABI engine not found for { class:%d, instance:%d }\n", in intel_engines_driver_register()
247 class, inst); in intel_engines_driver_register()
252 if (engine->uabi_class != class || in intel_engines_driver_register()
253 engine->uabi_instance != inst) { in intel_engines_driver_register()
254 pr_err("Wrong UABI engine:%s { class:%d, instance:%d } found for { class:%d, instance:%d }\n", in intel_engines_driver_register()
255 engine->name, in intel_engines_driver_register()
256 engine->uabi_class, in intel_engines_driver_register()
257 engine->uabi_instance, in intel_engines_driver_register()
258 class, inst); in intel_engines_driver_register()
271 unsigned int bit = BIT(engine->uabi_class); in intel_engines_driver_register()
272 unsigned int expected = engine->default_state ? bit : 0; in intel_engines_driver_register()
275 pr_err("mismatching default context state for class %d on engine %s\n", in intel_engines_driver_register()
276 engine->uabi_class, engine->name); in intel_engines_driver_register()
281 if (drm_WARN(&i915->drm, errors, in intel_engines_driver_register()
283 i915->uabi_engines = RB_ROOT; in intel_engines_driver_register()
296 if (engine->default_state) in intel_engines_has_context_isolation()
297 which |= BIT(engine->uabi_class); in intel_engines_has_context_isolation()