Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f0d13e3a authored by Ilia Mirkin's avatar Ilia Mirkin Committed by Ben Skeggs
Browse files

drm/nouveau/device: provide a way for devinit to mark engines as disabled

parent cf336014
Loading
Loading
Loading
Loading
+18 −5
Original line number Diff line number Diff line
@@ -42,12 +42,25 @@ nouveau_engine_create_(struct nouveau_object *parent,
	if (ret)
		return ret;

	if ( parent &&
	    !nouveau_boolopt(nv_device(parent)->cfgopt, iname, enable)) {
	if (parent) {
		struct nouveau_device *device = nv_device(parent);
		int engidx = nv_engidx(nv_object(engine));

		if (device->disable_mask & (1ULL << engidx)) {
			if (!nouveau_boolopt(device->cfgopt, iname, false)) {
				nv_debug(engine, "engine disabled by hw/fw\n");
				return -ENODEV;
			}

			nv_warn(engine, "ignoring hw/fw engine disable\n");
		}

		if (!nouveau_boolopt(device->cfgopt, iname, enable)) {
			if (!enable)
				nv_warn(engine, "disabled, %s=1 to enable\n", iname);
			return -ENODEV;
		}
	}

	INIT_LIST_HEAD(&engine->contexts);
	spin_lock_init(&engine->lock);
+1 −0
Original line number Diff line number Diff line
@@ -71,6 +71,7 @@ struct nouveau_device {
	const char *dbgopt;
	const char *name;
	const char *cname;
	u64 disable_mask;

	enum {
		NV_04    = 0x04,