drm/nouveau: if requested, try harder at disabling sysmem pushbufs

On >=nv50, userspace would still end up allocating pushbufs in GART.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
Ben Skeggs 2011-08-12 08:56:06 +10:00
parent fbba036a56
commit 8c06e60ed4
1 changed files with 10 additions and 6 deletions

View File

@ -411,13 +411,17 @@ nouveau_ioctl_fifo_alloc(struct drm_device *dev, void *data,
return ret; return ret;
init->channel = chan->id; init->channel = chan->id;
if (chan->dma.ib_max) if (nouveau_vram_pushbuf == 0) {
init->pushbuf_domains = NOUVEAU_GEM_DOMAIN_VRAM | if (chan->dma.ib_max)
NOUVEAU_GEM_DOMAIN_GART; init->pushbuf_domains = NOUVEAU_GEM_DOMAIN_VRAM |
else if (chan->pushbuf_bo->bo.mem.mem_type == TTM_PL_VRAM) NOUVEAU_GEM_DOMAIN_GART;
else if (chan->pushbuf_bo->bo.mem.mem_type == TTM_PL_VRAM)
init->pushbuf_domains = NOUVEAU_GEM_DOMAIN_VRAM;
else
init->pushbuf_domains = NOUVEAU_GEM_DOMAIN_GART;
} else {
init->pushbuf_domains = NOUVEAU_GEM_DOMAIN_VRAM; init->pushbuf_domains = NOUVEAU_GEM_DOMAIN_VRAM;
else }
init->pushbuf_domains = NOUVEAU_GEM_DOMAIN_GART;
if (dev_priv->card_type < NV_C0) { if (dev_priv->card_type < NV_C0) {
init->subchan[0].handle = NvM2MF; init->subchan[0].handle = NvM2MF;