Loading drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c +17 −10 Original line number Diff line number Diff line Loading @@ -245,9 +245,9 @@ gk104_fifo_chan_ctor(struct nvkm_object *parent, struct nvkm_object *engine, struct gk104_fifo *fifo = (void *)engine; struct gk104_fifo_base *base = (void *)parent; struct gk104_fifo_chan *chan; struct nvkm_subdev *subdev = &fifo->base.engine.subdev; struct nvkm_gpuobj *ramfc = &base->base.gpuobj; u64 usermem, ioffset, ilength; u32 engines; int ret, i; nvif_ioctl(parent, "create channel gpfifo size %d\n", size); Loading @@ -259,20 +259,27 @@ gk104_fifo_chan_ctor(struct nvkm_object *parent, struct nvkm_object *engine, } else return ret; for (i = 0; i < FIFO_ENGINE_NR; i++) { if (args->v0.engine & (1 << i)) { if (nvkm_engine(parent, fifo_engine[i].subdev)) { args->v0.engine = (1 << i); break; } for (i = 0, engines = 0; i < FIFO_ENGINE_NR; i++) { if (!nvkm_engine(parent, fifo_engine[i].subdev)) continue; engines |= (1 << i); } if (!args->v0.engine) { static struct nvkm_oclass oclass = { .ofuncs = &nvkm_object_ofuncs, }; args->v0.engine = engines; return nvkm_object_ctor(parent, engine, &oclass, NULL, 0, pobject); } if (i == FIFO_ENGINE_NR) { nvkm_error(subdev, "unsupported engines %08x\n", engines &= args->v0.engine; if (!engines) { nvif_ioctl(parent, "unsupported engines %08x\n", args->v0.engine); return -ENODEV; } i = __ffs(engines); ret = nvkm_fifo_channel_create(parent, engine, oclass, 1, fifo->user.bar.offset, 0x200, Loading Loading
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c +17 −10 Original line number Diff line number Diff line Loading @@ -245,9 +245,9 @@ gk104_fifo_chan_ctor(struct nvkm_object *parent, struct nvkm_object *engine, struct gk104_fifo *fifo = (void *)engine; struct gk104_fifo_base *base = (void *)parent; struct gk104_fifo_chan *chan; struct nvkm_subdev *subdev = &fifo->base.engine.subdev; struct nvkm_gpuobj *ramfc = &base->base.gpuobj; u64 usermem, ioffset, ilength; u32 engines; int ret, i; nvif_ioctl(parent, "create channel gpfifo size %d\n", size); Loading @@ -259,20 +259,27 @@ gk104_fifo_chan_ctor(struct nvkm_object *parent, struct nvkm_object *engine, } else return ret; for (i = 0; i < FIFO_ENGINE_NR; i++) { if (args->v0.engine & (1 << i)) { if (nvkm_engine(parent, fifo_engine[i].subdev)) { args->v0.engine = (1 << i); break; } for (i = 0, engines = 0; i < FIFO_ENGINE_NR; i++) { if (!nvkm_engine(parent, fifo_engine[i].subdev)) continue; engines |= (1 << i); } if (!args->v0.engine) { static struct nvkm_oclass oclass = { .ofuncs = &nvkm_object_ofuncs, }; args->v0.engine = engines; return nvkm_object_ctor(parent, engine, &oclass, NULL, 0, pobject); } if (i == FIFO_ENGINE_NR) { nvkm_error(subdev, "unsupported engines %08x\n", engines &= args->v0.engine; if (!engines) { nvif_ioctl(parent, "unsupported engines %08x\n", args->v0.engine); return -ENODEV; } i = __ffs(engines); ret = nvkm_fifo_channel_create(parent, engine, oclass, 1, fifo->user.bar.offset, 0x200, Loading