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

Commit 82d23aea authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nvc0/dmaobj: stub bind function for now so we can call unconditionally



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 6c1689a0
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -23,13 +23,35 @@
 */

#include <core/device.h>
#include <core/gpuobj.h>
#include <core/class.h>

#include <subdev/fb.h>
#include <engine/dmaobj.h>

struct nvc0_dmaeng_priv {
	struct nouveau_dmaeng base;
};

static int
nvc0_dmaobj_bind(struct nouveau_dmaeng *dmaeng,
		 struct nouveau_object *parent,
		 struct nouveau_dmaobj *dmaobj,
		 struct nouveau_gpuobj **pgpuobj)
{
	int ret = 0;

	if (!nv_iclass(parent, NV_ENGCTX_CLASS)) {
		switch (nv_mclass(parent->parent)) {
		default:
			return -EINVAL;
		}
	} else
		return 0;

	return ret;
}

static int
nvc0_dmaeng_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
		 struct nouveau_oclass *oclass, void *data, u32 size,
@@ -44,6 +66,7 @@ nvc0_dmaeng_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
		return ret;

	nv_engine(priv)->sclass = nouveau_dmaobj_sclass;
	priv->base.bind = nvc0_dmaobj_bind;
	return 0;
}

+3 −6
Original line number Diff line number Diff line
@@ -64,12 +64,9 @@ nouveau_fifo_channel_create_(struct nouveau_object *parent,
		return -EINVAL;
	}

	if (dmaeng->bind) {
		ret = dmaeng->bind(dmaeng, parent, chan->pushdma,
				  &chan->pushgpu);
	ret = dmaeng->bind(dmaeng, parent, chan->pushdma, &chan->pushgpu);
	if (ret)
		return ret;
	}

	/* find a free fifo channel */
	spin_lock_irqsave(&priv->lock, flags);