diff options
author | Ben Skeggs | 2017-10-31 18:56:20 +0100 |
---|---|---|
committer | Ben Skeggs | 2017-11-02 04:32:33 +0100 |
commit | 7f50762423b4825674ee7fe10fa37abdafdcf754 (patch) | |
tree | aa2b3bc36c6ed915f532827159299543ea07e87c /drivers/gpu/drm/nouveau/nouveau_drm.c | |
parent | drm/nouveau: pass handle of vmm object to channel allocation ioctls (diff) | |
download | kernel-qcow2-linux-7f50762423b4825674ee7fe10fa37abdafdcf754.tar.gz kernel-qcow2-linux-7f50762423b4825674ee7fe10fa37abdafdcf754.tar.xz kernel-qcow2-linux-7f50762423b4825674ee7fe10fa37abdafdcf754.zip |
drm/nouveau: determine memory class for each client
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_drm.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_drm.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c index a6aaddecd8c5..e82da06d82f0 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c @@ -128,6 +128,13 @@ nouveau_cli_init(struct nouveau_drm *drm, const char *sname, struct nouveau_cli *cli) { static const struct nvif_mclass + mems[] = { + { NVIF_CLASS_MEM_GF100, -1 }, + { NVIF_CLASS_MEM_NV50 , -1 }, + { NVIF_CLASS_MEM_NV04 , -1 }, + {} + }; + static const struct nvif_mclass mmus[] = { { NVIF_CLASS_MMU_GF100, -1 }, { NVIF_CLASS_MMU_NV50 , -1 }, @@ -201,11 +208,20 @@ nouveau_cli_init(struct nouveau_drm *drm, const char *sname, goto done; } + ret = nvif_mclass(&cli->mmu.object, mems); + if (ret < 0) { + NV_ERROR(drm, "No supported MEM class\n"); + goto done; + } + + cli->mem = &mems[ret]; + if (1) { cli->vm = cli->vmm.vm; nvxx_client(&cli->base)->vm = cli->vm; } + return 0; done: if (ret) nouveau_cli_fini(cli); |