Commit a708d8a7 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/kms/nv50-: add module option to select EVO/NVD push buffer location

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 7c1f6bbd
...@@ -220,6 +220,10 @@ nv50_dmac_wait(struct nvif_push *push, u32 size) ...@@ -220,6 +220,10 @@ nv50_dmac_wait(struct nvif_push *push, u32 size)
return 0; return 0;
} }
MODULE_PARM_DESC(kms_vram_pushbuf, "Place EVO/NVD push buffers in VRAM (default: auto)");
static int nv50_dmac_vram_pushbuf = -1;
module_param_named(kms_vram_pushbuf, nv50_dmac_vram_pushbuf, int, 0400);
int int
nv50_dmac_create(struct nvif_device *device, struct nvif_object *disp, nv50_dmac_create(struct nvif_device *device, struct nvif_object *disp,
const s32 *oclass, u8 head, void *data, u32 size, s64 syncbuf, const s32 *oclass, u8 head, void *data, u32 size, s64 syncbuf,
...@@ -241,7 +245,8 @@ nv50_dmac_create(struct nvif_device *device, struct nvif_object *disp, ...@@ -241,7 +245,8 @@ nv50_dmac_create(struct nvif_device *device, struct nvif_object *disp,
* *
* This appears to match NVIDIA's behaviour on Pascal. * This appears to match NVIDIA's behaviour on Pascal.
*/ */
if (device->info.family == NV_DEVICE_INFO_V0_PASCAL) if ((nv50_dmac_vram_pushbuf > 0) ||
(nv50_dmac_vram_pushbuf < 0 && device->info.family == NV_DEVICE_INFO_V0_PASCAL))
type |= NVIF_MEM_VRAM; type |= NVIF_MEM_VRAM;
ret = nvif_mem_ctor_map(&cli->mmu, "kmsChanPush", type, 0x1000, ret = nvif_mem_ctor_map(&cli->mmu, "kmsChanPush", type, 0x1000,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment