Skip to content

Commit 33def1f

Browse files
committed
drm/i915: Simplify intel_engines_init
We do not want to carry on over missing constructors and don't need a duplicated engine mask checking which is already done in the setup phase. Signed-off-by: Tvrtko Ursulin <[email protected]> Reviewed-by: Chris Wilson <[email protected]>
1 parent 1f588ae commit 33def1f

File tree

1 file changed

+12
-24
lines changed

1 file changed

+12
-24
lines changed

drivers/gpu/drm/i915/intel_engine_cs.c

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -291,11 +291,9 @@ int intel_engines_init_mmio(struct drm_i915_private *dev_priv)
291291
*/
292292
int intel_engines_init(struct drm_i915_private *dev_priv)
293293
{
294-
struct intel_device_info *device_info = mkwrite_device_info(dev_priv);
295294
struct intel_engine_cs *engine;
296295
enum intel_engine_id id, err_id;
297-
unsigned int mask = 0;
298-
int err = 0;
296+
int err;
299297

300298
for_each_engine(engine, dev_priv, id) {
301299
const struct engine_class_info *class_info =
@@ -306,40 +304,30 @@ int intel_engines_init(struct drm_i915_private *dev_priv)
306304
init = class_info->init_execlists;
307305
else
308306
init = class_info->init_legacy;
309-
if (!init) {
310-
kfree(engine);
311-
dev_priv->engine[id] = NULL;
312-
continue;
313-
}
307+
308+
err = -EINVAL;
309+
err_id = id;
310+
311+
if (GEM_WARN_ON(!init))
312+
goto cleanup;
314313

315314
err = init(engine);
316-
if (err) {
317-
err_id = id;
315+
if (err)
318316
goto cleanup;
319-
}
320317

321318
GEM_BUG_ON(!engine->submit_request);
322-
mask |= ENGINE_MASK(id);
323319
}
324320

325-
/*
326-
* Catch failures to update intel_engines table when the new engines
327-
* are added to the driver by a warning and disabling the forgotten
328-
* engines.
329-
*/
330-
if (WARN_ON(mask != INTEL_INFO(dev_priv)->ring_mask))
331-
device_info->ring_mask = mask;
332-
333-
device_info->num_rings = hweight32(mask);
334-
335321
return 0;
336322

337323
cleanup:
338324
for_each_engine(engine, dev_priv, id) {
339-
if (id >= err_id)
325+
if (id >= err_id) {
340326
kfree(engine);
341-
else
327+
dev_priv->engine[id] = NULL;
328+
} else {
342329
dev_priv->gt.cleanup_engine(engine);
330+
}
343331
}
344332
return err;
345333
}

0 commit comments

Comments
 (0)